

|
|
White Papers and Technical Briefings
Real-Time Play-out of YUV Video in a Broadcast Environment UPDATE: Drastic Technologies now supports direct play-out of all Tvids on HD-SDI using Aja and BlueFish boards - contact TestVid for details (links on YUV viewers page).IntroductionTvids are provided as uncompressed video files, in ‘YUV’ format. (See wikipedia http://en.wikipedia.org/wiki/YUV for a general description of YUV format.) In many instances - for example in broadcast applications - it is required to be able to play video files in real-time for example on an SDI,ASI, HDMI or DVI link, to be used as input to a video server, video encoder, transcoder, set-top box or video transmission chain, or to a display device such as a TV or projector. Therefore some hardware is required to take the Tvids stored on a disk, and output them on the required link. This white paper provides information on possible means of playing out the YUV files that comprise Tvids, in real-time, over an SDI, ASI, HDMI or DVI link.
Option 1: Using a Video Server - copy the Tvids directly to disk A ‘video server’ is a specialised computer (usually rack mount) that has been configured in hardware and software to play out video from disk in real-time onto an SDI, ASI or HDMI link, or ‘ingest’ video from an SDI or ASI link in real-time, or do both (often with multiple channels concurrently). Typically the video data is stored on the video server in compressed format, such as MPEG-2, H.264 (video) within a ‘container file’ such as MPEG-2 Transport Stream or MOV (QuickTime) file. The container file wraps together or references the video and audio files and provides information on them, to allow the server to play the video/audio correctly. The container file and/or the video part within that container gives information to the video server about such things as the codec used, frame rate, resolution, bit-depth, etc. There are two problems to be overcome in playing out the YUV Tvids files on such a video server:
With the video servers listed below, neither of these is a problem (and likely the same applies with almost all video servers). All the video servers listed have some form of cabled network connection separate from the video path, such as Gigabit Ethernet or fibre-optic connection, as illustrated schematically below:
Problem 1 solved As illustrated, to load the Tvids onto the video server is straight-forward: the video server would be available as a location on the broadcast network and the Tvids are simply copied to the internal disk of the video server via the Gig-E / fibre port shown in blue (under the control of the video server or asset management software).
Problem 2 solved The next issue is then informing the video server about the details of the YUV files so that it knows how to play them out. This also is straight-forward, as the software which controls the video server provides for scheduling and association of particular play-out parameters with files or groups of files. (And the reason that YUV play-out is supported in all video servers is that this is the standard format that is used for input with video encoders.) From the information available to TestVid, the following vendors provide video servers which will play out the Tvids in real-time as described above (note that this is by no means an exhaustive list, nor an endorsement of any of these vendors/video servers):
Option 2: Using Transcoder / Video Encoder software (or hardware) ‘Transcoder’ software typically reads a video/audio file in one format, decodes it, and then re-encodes it in another format (or possibly multiple other formats). Well-known vendors of such software are:
Typically this software runs on a powerful PC or multiple PCs, connected on the broadcaster’s Gigabit Ethernet or fibre-channel network, receiving multiple files and producing multiple file outputs under the control of an asset management or automation system which schedules the transcodes. As these transcoders are working purely on files and doing their I/O over Ethernet or fibre-channel, the ‘play-out’ is not actually real-time or on SDI / ASI / HDMI / DVI. However, all the above transcoders can take uncompressed YUV files as inputs, and in this way these files can be transferred to a hardware video server for real-time play-out. In this way, ‘Problem 1’ and ‘Problem 2’ (as described above) are both solved. In addition to the above list many other vendors offer transcoding capability in their hardware and/or software components, such as Harris, Omneon, Thomson Grass Valley, Sony, Evertz, Harmonic, Snell.
Option 3: “Roll your own” Video Server Using a ‘Standard’ PC/Mac Putting the Tvids YUV files onto a PC disk is trivial: just copy them from the USB disk unit provided. However, the problem then becomes: how to get the video out as a real-time stream on an SDI / ASI / HDMI / DVI port? This problem has three parts:
Part A solved: the right output This is solved easily by using dedicated boards as follows:
(There may well be others) Note: check the above vendor’s websites for the latest information
Part B solved: fast video transfer from disk to output
- essentially the items in dark green with white text, in the diagram on the left
The video data rates can be large for HD video, particularly when playing out YUV 4:4:4 (or YUV 4:2:0 which has been converted to RGB for play-out):
(1MByte is defined here as 1,000,000 bytes)
However, the websites for Aja, BlackMagic Design and Bluefish444 indicate that these data rates are achievable with the correct set up of hard disk, disk controller and PC (HD 1080p60 requires specifically fast hardware). Information and recommendations for PC systems, disk drives and disk controllers is available from these companies at (all these companies also provide recommendations on suitable Mac-based systems):
The information on these websites is kept up-to-date by the companies concerned, so is not replicated here.
Part C solved: software to control the video play-out There are various options:
As playing out ‘raw’ YUV files is not a feature that is frequently used for Aja / BlackMagic Design / Bluefish444, the information on their respective websites is not very clear, however there are the following options:
Option 1: play-out using low-level software There are various YUV viewers but these play the YUV video on the main PC screen rather than on an SDI (although it may be possible to configure play-out to an SDI port instead as the primary video output, there will still be the usual Windows menus, scroll bars etc. around the video). An alternative with the BlackMagic Design DeckLink card is to use DirectShow to play the YUV video, although this is dependent upon the specific codecs loaded and requires various installations - this option is currently under investigation at TestVid. Overall, Option 1 is not straightforward.
Option 2: wrap the YUV in AVI / MOV This has two stages: - first wrap the video in an AVI file (wrapping in an MOV file is not straightforward) - play out the video using one of several software packages
To wrap the video in an AVI file there are two straightforward options using freely available software: I. FFMPEG, downloadable from: http://www.ffmpeg.org/download.html II. VirtualDub, downloadable from: http://www.virtualdub.org/download.html
To use FFMPEG to make an AVI file: a) download and install FFMPEG b) open a command prompt window or use a batch file with the following command ffmpeg -s 1920x1080 -i T2V001002_Stars_n_Stripes_1920x1080p.yuv -vcodec copy T2V001002_out.avi (the input and output filenames can be whatever appropriate of course, although the file extensions should be .yuv for input and .avi for output) FFMPEG has the benefit that (when using the above command line) the YUV video data is inserted into the AVI file with no conversion or changes of any sort. However, it will not output 10-bit video and although a valid .mov file can be generated, with YUV 4:2:0 in the file it is not correctly interpreted by QuickTime or Adobe Premiere Pro CS4.
An alternative is to use VirtualDub to make an AVI file (although using FFMPEG is the recommended method): a) download and install VirtualDub b) download and install AviSynth, downloadable from: http://www.avisynth.org/ c) download and install RawSource.dll, downloadable from: http://avisynth.org/warpenterprises/ d) make a text file (e.g. using Notepad) as follows; save it to test.avs (or other filename with .avs extension): loadplugin("c:\vidtools\avisynth\rawsource\rawsource.dll") RawSource("C:\Temp\T2V001002_Stars_n_Stripes_1920x1080p.yuv", pixel_type="I420", width=1920, height=1080) (Note that the above assumes the given installation folders) e) Open VirtualDub and on the File menu, click ‘Open video file’ and browse to find testsave.avs and click to open it f) On the File menu, click ‘Save as AVI’: this then saves the AVI (e.g. as test.avi, BUT NOTE that this also converts the video from YUV 4:2:0 to RGB 4:4:4
Once the file is in AVI format it can be played out on SDI:
Option 4: .. and finally .. If you don’t want to do any of the above, TestVid may be able to connect you with a company that can offer a complete packaged solution with the right hardware and software - please contact TestVid for more information.
NOTE: there will be updates to this white paper in June 2010 (and probably later) so please check back, or contact TestVid to be notified when there are updates to this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vendor |
URL |
Possible product(s) |
Real-time video outputs |
|
Aja |
Kona 3 Kona LHi |
SDI dual-link; analog component & composite 3G SDI; HDMI; analog component & composite | |
|
BlackMagic Design |
DeckLink HD Extreme 3D DeckLink Studio |
2 x SDI (incl. 3 Gb/s), HDMI; analog component & composite SDI, HDMI; analog component & composite | |
|
BlueFish444 |
Epoch (various options) Create |
3G SDI; HDMI; DVI; dual link 3G SDI; HDMI; DVI; dual link; with multi-channel |
|
Video resolution |
Progressive / Interlaced |
Frame rate (fps) |
Sustained data rate required; MBytes/second | |
|
YUV 4:2:0 |
YUV 4:4:4 (or RGB) | |||
|
SD NTSC 720x480 |
Interlaced |
29.97 |
16 |
31 |
|
SD PAL 720x576 |
Interlaced |
25 |
16 |
31 |
|
HD 720p25 1280x720 |
Progressive |
25 |
35 |
69 |
|
HD 720p30 1280x720 |
Progressive |
29.97 |
41 |
83 |
|
HD 1080i50 1920X1080 |
Interlaced |
25 |
78 |
156 |
|
HD 1080i60 1920X1080 |
Interlaced |
29.97 |
93 |
186 |
|
HD 1080p25 1920X1080 |
Progressive |
25 |
78 |
156 |
|
HD 1080p30 1920X1080 |
Progressive |
29.97 |
93 |
186 |
|
HD 1080p60 1920X1080 |
Progressive |
60 |
187 |
373 |
|
2K D-Cinema 2048x1152 |
Progressive |
24 |
YUV 4:2:2 10-bit (2 bytes/sample) 113 | |
|
2K 3D D-Cinema 2048x1152 |
Progressive |
24 |
YUV 4:2:2 10-bit (2 bytes/sample) 226 | |