CasparCG Server 2.0b
From CasparCG Wiki
This page is the collected documentation of the CasparCG Server 2.0 beta 3 release. The rest of the wiki documentation will be updated when we release 2.0.
Contents |
Change Log
- June 23, 2011: Initial alpha release of CasparCG Server 2.0a
- June 24, 2011: Patch 1 released
- September 9, 2011: Beta 1 released
- December 12, 2011: Beta 3 released
New Features in beta 3
New and fixed in CasparCG Server 2.0 Beta 3
- ProRes support for both encoding and decoding.
- NTSC Support
- Updated the audio pipeline for native NTSC support.
- Previous implementation did not fully support NTSC audio
- and could cause incorrect behavior or even crashes.
- File Consumer added. See updated wiki or ask in forum for more information. Should support anything FFmpeg supports, but main focus we will be DNxHD, ProRes and H.264.
- - Key-only is not supported in the File Consumer.
- Bluefish Consumer
- 24 bit audio support.
- - Embedded SDI audio does not work with Bluefish Epoch cards.
- Decklink Consumer
- Low latency enabled by default.
- Added graphs for driver buffers.
- Screen Consumer
- Changed screen consumer square PAL to the more common wide-square PAL.
- Can now be closed.
- Fixed interpolation artifacts when running non-square video-modes.
- Automatically deinterlace interlaced input.
- Decklink Producer
- Improved color quality be avoiding uneccessary conversion to BGRA.
- FFmpeg Producer
- Fixed missing alpha for (RGB)A formats when deinterlacing.
- Updated buffering to work better with files with long audio/video interleaving.
- Seekable while running and after reaching EOF. CALL 1-1 SEEK 200.
- Enable/disable/query looping while running. CALL 1-1 LOOP 1.
- Fixed bug with duration calculation.
- Fixed bug with fps calculation.
- Improved auto-transcode accuracy.
- Improved seeking accuracy.
- Fixed bug with looping and LENGTH.
- Updated to newer ffmpeg version.
- Fixed incorrect scaling of NTSC DV files.
- Optimized color conversion when using YADIF filters.
- Flash Producer
- Release flash-player when empty.
- Use native resolution template-host.
- Template hosts are now choosen automatically if not configured. The template host with the corresponding video mode name is now chosen.
- Uses square pixel dimensions.
- AMCP
- When possible, commands will no longer wait for rendering pipeline. This reduces command execution latencies, especially when sending a lot of commands in a short timespan.
- Fixed CINF command.
- ADD/REMOVE no longer require subindex, e.g. "ADD 1 SCREEN" / "REMOVE 1 SCREEN" instead of "ADD 1-1 SCREEN" / ...
- PARAM is renamed to CALL.
- STATUS command is replaced by INFO.
- INFO command has been extended:
- INFO (lists channels).
- INFO 1 (channel info).
- INFO 1-1 (layer info).
- INFO 1-1 F (foreground producer info).
- INFO 1-1 B (background producer info).
- INFO TEMPLATE mytemplate (template meta-data info, e.g. field names).
- CG INFO command has been extended.
- CG INFO 1 (template-host information, e.g. what layers are occupied).
- Mixer
- Fixed alpha with blend modes.
- Automatically deinterlace for MIXER FILL commands.
- Channel
- SET MODE now reverts back to old video-mode on failure.
- Diagnostics
- Improved graphs and added more status information.
- Print configuration into log at startup.
- Use the same log file for the entire day, instead of one per startup as previously.
- Diagnostics window is now closable.
- Configuration
- Simplified.
New Features in beta 1
Changes since the alpha release:
- Real-time GPU-accelerated Blending Modes between layers. Supports Add, Overlay, Screen, Multiply and many more.
- Real-time GPU-accelerated Image adjustments on all playing media (including Flash templates.) * Change Brightness, Saturation, Contrast and Levels on the fly!
- Added additive keyer in addition to linear keyer.
- Support for FFmpeg-filters such as yadif de-interlacer (optimized in CasparCG for full multi-core support,) De-noising, Dithering, Box Blur and many more. See http://ffmpeg.org/libavfilter.html for more info.
- 32-bit SSE optimized audio pipeline.
- The Decklink Consumer now uses external key by default.
- The Decklink Consumer now has 32-bit embedded-audio support.
- The Decklink Producer now has 32-bit embedded-audio support.
- LOADBG command now has AUTO feature which automatically playes queued clip when foreground clip has ended.
- STATUS command for layers.
- LOG LEVEL command for log filtering.
- MIX transitation now work with transparent clips.
- When a video clip played by the FFmpeg Producer reaches the last frame, that frame remains as a freeze frame.
- Producer and Consumer buffering are now configurable.
- Now possible to configure Flash template-hosts for different video-modes. Previously they were always hosted in HD.
- Added auto transcoder for the FFmpeg Producer which automatically transcodes input video into a compatible video format for the channel:
- interlacing (50p -> 50i)
- deinterlacing (50i -> 25p)
- bob-deinterlacing (50i -> 50p)
- bob-deinterlacing and reinterlacing (w1xh150i -> w2xh250i)
- doubling (25p -> 50p)
- halfing (50p -> 25p)
- field-order swap (upper <-> lower)
- The Screen Consumer now automatically de-interlaces when receiveing interlaced content.
- Optimized renderer.
- Renderer can now be run asynchronously with a producer by using a producer-buffer size greater than 0.
- Improved error and crash recovery.
- Improved logging.
- Added an Image Scroll Producer that will automatically scroll a large bitmap in the specified direction and speed. Great for credit rolls!
- Outputting as key only has now has near zero performance overhead.
- Reduced memory requirements
- Removed 99% of "warm up lag" which occured when playing the first media clip after the server has started.
- Added read-back fence for OpenGL device for improved multi-channel performance.
Memory support increased from standard 2 GB to 4 GB on 64-bit Win 7 OS.
- Added support for 2* DeckLink cards in Full HD (1080p50.) More than two simultaneous DeckLink cards might be possible, but have not yet been tested.
- Misc bugs fixes and performance improvements.
- The Color producer now support some color codes in addition to color codes, e.g. EMPTY, BLACK, RED etc...
- Alpha value in color codes is now optional.
New features for end-users
- Play NTSC, PAL and HD output with progressive, and upper-field and lower-field interlacing to all supported video cards.
- Use multiple video cards and cards with several outputs, supporting both Bluefish and DeckLink cards.
- Now works on Windows 7, Windows Vista and Windows XP.
- Better performance by taking advantage of all your processors (fully multi-threaded,) and moving many operations to the graphics card.
- Stack multiple videos, Flash graphics and images in any order and output (both fill and key) to one or several video cards and screens. You can even swap the stacking-order in real-time!
- Generate key (alpha) from separate files (video, Flash and images) with support for non-alpha-capable codecs, such as H.264. You can even generate key (alpha) from different media types, for example using a Flash template to cut out a part of a video file.
- Play many types of bitmap images with the new Image Producer which replaces the TGA Producer.
- The new Screen Consumer replaces the Fullscreen Consumer and the GDI Consumer and supports both fullscreen and windowed output at different resolutions. (GPU accelerated)
- Scale, move, mask and change the opacity and video gain of one or several clips with the new real-time Mixer. Use a number of animation types for professional results.
- Display all available channels (with content such as videos, images, Flash templates and colors) in a grid.
- Use input video+audio fed into DeckLink video cards just like any other media type.
- Select a custom loop in-point for video files.
- Pause both videos and Flash graphics.
- All video transitions can now be animated with a number of animation types.
- Fully interlaced video transitions (previously they were only progressive, even when running in interlaced mode.)
- Audio is now mixed during video transitions.
- Audio levels can be changed in real-time using gain.
- Embedded SDI audio support with both Bluefish and DeckLink video cards.
- Monitor the performance with graphs in the new Diagnostics window.
- Video, audio and image files can now be placed in subfolders, just like Flash files.
- Smoother animations and better interlacing in the Flash Producer.
- Blend modes between layers (coming in later release.)
New features for techies
- No installer required, all configuration is now done in an XML text file instead of in the Windows Registry.
- Consumers can now be added and removed at run-time, without having to restart the Server.
- Swap producers between layers and channels during run-time.
- Asynchronous file I/O with improved buffering.
- Parallel decoding of audio and video.
- Real-time commands viewable in the new Console window.
- Improved logging with full exception details, and a new log file for every server start.
- Backwards-compatible AMCP protocol supporting all new Server features.
- Find out the running version of the CasparCG Server and the TemplateHost via a network query.
- DeckLink output is now using the card's hardware clock.
- BlueFish drivers are now loaded on-demand, making it possible to have a single Server application.
- Per-sample mixing between source and destination clips during video transitions.
- The Flash Producer now uses DirectDraw access, resulting in improved performance.
- All new GPU-accelerated internal pipeline with the following functions all being done on the GPU:
- Compositing
- Colorspace transforms (rgba, bgra, argb, yuv, yuva, yuv-hd, yuva-hd).
- Interlacing
- Per-layer image-transforms: opacity, gain, scaling, clipping, transform
- The Color Producer
New features for developers
- Major code refactoring for improved readability and maintainability. 66% of legacy code removed.
- Rewritten to take advantage of common standardized libraries instead of custom solutions.
- Work done to facilitate cross-platform porting (the greatest challenge for full platform-independence being the Flash Producer.)
System requirements
- Windows 7 (32-bit and 64-bit,) Windows Vista (32-bit + 64-bit) or Windows XP SP2 (32-bit.)
- A graphics card (GPU) capable of OpenGL 3.0 is required. The software has currently only been tested with Nvidia Quadro cards. Please see the lists of nVidia graphics cards to make sure your card supports at least OpenGL 3.0 or higher.
- Microsoft Visual C++ 2010 Redistributable Package.
- Flash Player (the recommended build of version 10.3 and an uninstaller is included in the download package version in the Flash folder.)
Known issues
- Swapping between channels with different video formats is not supported.
Feedback
- Please provide feedback on how this release works in the CasparCG Forum.
Downloads
- CasparCG Server 2.0b including sample videos and Flash files, and a sample Demo Client that can be used to test the new features. The recommended build of Flash Player 10.3 and an uninstaller is also included.
- Microsoft Visual C++ 2010 Redistributable Package (required).
Source Code
The source code can be found in our public source code repository.
Overview
The CasparCG 2.0 Server is based open tree components types; "producers", "mixers" and "consumers" which in combined configurations make up a "video_channel". The server also has "protocols" for communication and controlling.
- Producer - Renders and plays media such as video, animations, images and audio. A producer listens for commands and data sent from a client controller, then loads and renders that media and sends it to the next stage in the rendering pipeline (the mixer).
- Consumer - Receives playing media such as video, animations, images and audio from a producer and displays that media on a specified output, for example a window on the computer monitor or an SDI card.
- Mixer - Composites video- and audio-streams received from producers on different layers. Also performs various video and audio transformations on the video-streams.
- Protocol - Recevies, parses and executes commands.
Configuration
All configuration of CasparCG Server 2.0a is done in the text file caspar.config which can be edited in any text editor. If you want to change the location (for example to a faster disk) you just change the paths in the casparcg.config file.
Use the \ character in front of any special character, so that C:\CasparCG\ is written C:\\CasparCG\\
At the bottom of the casparcg.config file you will find comments which document additional settings.
Paths
You can change these paths to any path you'd like, for example L:\\CasparCG\\ or \\\\my-server\\
We recommend that you place your media and templates files locally, on a fast disk that is not the same disk used for the operating system.
Please note: All paths should be terminated with a backslash (meaning that it should be entered as \\.
media-path
By default, CasparCG Server will look in the media folder (and its subfolders) for videos, audio and images files.
data-path
By default, CasparCG Server will look in the data folder (and its subfolders) for data loaded by Flash templates.
template-path
By default, CasparCG Server will look in the templates folder (and its subfolders) for Flash templates.
Diagnostics
Settings for the Diagnostics windows.
graphs
Choose if you want the Diagnostics window to display graphs.
- true or false
Note: The middle dashed line indicates "real-time", thus no "time" graphs should exceed that line.
video_channel
mix-time
Time spent mixing the video streams, this include GPU image rendering and CPU audio mixing.
If this graph exceeds the "real-time" graph then the GPU is most likely a bottleneck.
output-time
Time spent sending the frame to the consumers, this time includes both consumer frame processing time and synchronization.
produce-time
Time spent rendering the video-streams, note that asynchronous producers (such as the flash-producers) are not included here.
tick-time
Time spent on one frame. This shows the total time spent on a frame, including processing and synchronization.
This graph should be on the "real-time" line, with minor spikes which are hidden through buffering.
ffmpeg
buffer-count
Number of packets in the file read buffer.
buffer-size
Total size of packets in the file read buffer.
frame-time
Time spent rendering frames.
seek
Displayed when the producer seeks. Usually while looping.
underflow
Displayed when producer does not receive enough data from the file, usually due to disc performance bottlenecks.
Producers
CasparCG 2.0 currently (fully or partially) supports the following producers:
Name File Extensions Description --------------------------------------------------- flash swf cg ft ct ct Plays "compressed templates" zip file containing a flash-template together with required media and data xml. ffmpeg mpg, mpeg, avi, mov, qt, Plays regular video and/or audio webm, dv, mp4, f4v, flw, mkv, mka, wmv, ogg, divx, xvid, wav, mp3, m2v image tga, png, bmp, jpg, jpeg, gif Plays images. tiff and more decklink Plays input from a DeckLink device.
Consumers
CasparCG 2.0 supports the following consumers:
Name Description ------------------------------------------ bluefish Plays video and/or audio to a Bluefish-device. decklink Plays video and/or audio to a DeckLink-device. ffmpeg Plays video and/or audio to a file. ogl Plays video to a windowed or fullscreen window. oal Plays audio to the default system audio-device.
How to enable the Screen Consumer
Open the casparcg.config in a text editor and use the following node for consumers:
<consumers> <screen/> </consumers>
How to enable the DeckLink Consumer
To get video in and key output, open casparcg.config in a text editor and use the following node for consumers:
<consumers> <decklink/> </consumers>
Mixers
CasparCG 2.0 Mixer features requires a GPU-accelerated OpenGL 3.0 card.
Please see the Mixer section of the AMCP 2.0 protocol for commands.
Protocols
Please see the CasparCG 2.0 AMCP Protocol page.
Animation Types
The following list specifies all supported tweens. You can also see a preview of the animation types.
- linear
- easenone
- easeinquad
- easeoutquad
- easeinoutquad
- easeoutinquad
- easeincubic
- easeoutcubic
- easeinoutcubic
- easeoutincubic
- easeinquart
- easeoutquart
- easeinoutquart
- easeoutinquart
- easeinquint
- easeoutquint
- easeinoutquint
- easeoutinquint
- easeinsine
- easeoutsine
- easeinoutsine
- easeoutinsine
- easeinexpo
- easeoutexpo
- easeinoutexpo
- easeoutinexpo
- easeincirc
- easeoutcirc
- easeinoutcirc
- easeoutincirc
- easeinelastic
- easeoutelastic
- easeinoutelastic
- easeoutinelastic
- easeinback
- easeoutback
- easeinoutback
- easeoutintback
- easeoutbounce
- easeinbounce
- easeinoutbounce
- easeoutinbounce
Blend Modes
The following list specifies all supported blend modes in the Mixers.
- normal
- lighten
- darken
- multiply
- average
- add
- subtract
- difference
- negation
- exclusion
- screen
- overlay
- soft_light
- hard_light
- color_dodge
- color_burn
- linear_dodge
- linear_burn
- linear_light
- vivid_light
- pin_light
- hard_mix
- reflect
- glow
- phoenix
- contrast
- saturation
- color
- luminosity


