This post follows on from an old blog post about OSS DPP Creation, which many people have used to deliver DPP MXF files. It’s fair to say that this entirely vendor neutral method of creating AVC-Intra based MXF files raised of important questions about interoperability. Many manufacturers were only capable of decoding files from a single vendor. To this day there is ongoing debate about whether certain manufacturers are capable of delivering advertised features when their equipment fails to decode legal, but difficult to decode test files (notably CABAC AVC-I).

A lot of these issues have subsequently been followed up in the groundbreaking interoperability programme from the DPP, something which should be applauded. At the same time it is rather sad that after over a decade of file-based workflows in broadcast, manufacturers need to be schooled by their customers on how to interpret specifications which should be unambiguous in the first-place, or in some cases how to follow the prescribed document instead of a secret, proprietary document.

Recently, the Institut fur Rundfundtechnik (Broadcast Technology institute for German speaking broadcasters) have published their set of incredibly precise delivery requirements. Using OSS software, an IRT compliant file can now be be delivered to German broadcasters in the ARD_ZDF_HDF format. Files created with this method have also been tested at the IRT plugfest (see http://sourceforge.net/p/bmxlib/discussion/general/thread/68352f5a/?page=1 for more information)

1: x264

x264 is a best-in-class MPEG-4/AVC encoder that's used for a variety of uses such as web video, Blu-ray disc and broadcast television encoding. It supports 10-bit 4:2:2 as required by IRT - a 10-bit build of x264 is required to make AVC-Intra files. x264 will warn you if you encode AVC-Intra using an 8-bit build. x264 can be downloaded from: http://download.videolan.org/pub/x264/binaries/  (choose the latest and remember to get a 10-bit build) or better still, compiled from scratch.

1080i

x264.exe input.file --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --tune psnr --fps 25/1 --interlaced --force-cfr --avcintra-class 100 --output-csp i422 -o out.h264

720p

x264.exe input.file --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --tune psnr --fps 50/1 --interlaced --force-cfr --avcintra-class 100 --output-csp i422 -o out.h264

(If you get errors about avcintra-class it means your x264 is too old)

2: BMXlib

BMXlib is a library from BBC R&D that is designed to manipulate MXF files. Recent versions of bmxlib have been updated to support the IRT delivery requirements. http://sourceforge.net/projects/bmxlib/

Note that your wav files must be 24-bit encoded and silence tracks used where required. The AFD value should be altered as required.

1080i

raw2bmx.exe -y 09:58:00:00 -t op1a --afd 8 --ard-zdf-hdf -o out.mxf --avci100_1080i out.h264 --wave in.wav --wave in.wav --wave in.wav --wave in.wav

720p

raw2bmx.exe -y 09:58:00:00 -t op1a --afd 8 --ard-zdf-hdf -o out.mxf --avci100_720p  out.h264 --wave in.wav --wave in.wav --wave in.wav --wave in.wav

(note that the IRT does not specify a timecode start so this needs to be changed as advised)

Please let is know if you have any issues. Thanks to the people and organisations who tested this.

 

Introduction

From time to time we work on other things beyond DVB broadcast encoding where Open Source can be used to transform closed broadcast workflows. The file delivery specification from the Digital Production Partnership (DPP) is one such area. However, the AVC-Intra codec used in DPP is effectively a proprietary codec with implementation in the real world being more complex than the SMPTE RP2027 that AS-11 recommends and in a number of areas implemented incorrectly. However, we have now successfully reverse engineered AVC-Intra from available samples which allows a fully open source DPP creation workflow. Leveraging existing Open Source projects for manipulation and creation of mxf files, a fully compliant DPP file can be delivered to UK broadcasters. Tests at interoperability events have showed that this implementation has no interoperability issues.