[FFmpeg-user] How to generate IRT conform D10 MXFs (IMX50) with FFmpeg?
Christoph Gerstbauer
christophgerstbauer at gmail.com
Thu Apr 30 08:20:22 CEST 2015
Hello
I am making tests with IMX50/MXF encodings with FFMBC and FFMPEG. (with
24bit audio and 16bit audio)
The tests compare the final files with the IRT MXF Analyzer Pro tool to
be shure to be IRT conform.
(My commandline outputs are at the bottom of this mail)
Both files (generated with ffmbc and ffmpeg) are working very well in
editing tools but there is a little difference:
The IMX50 generated by ffmbc has no errors/warnings at IRT MXF Analyzer
(with 16bit audio). It is really perfect. In fact (with one exception) I
NEVER had a clean "green" MXF by testing other probes from other
encoding tools. Only the IRT probes itself are clean (of course). So
ffmbc MXF is IRT conform when using the
standard target preset "imx50". (it automatically uses 16bit audio)
When I use 24bit audio encoding at ffmbc, I got this error from IRT MXF
Analyzer:
ERROR: "The Sound Essence Descriptor signals that the number if
quantization bits is 24, which is higher than actually required (16) as
detemined by parsing the essence."
I tried the same with ffmpeg:
When using 16bit audio, I got no audio error. But I get always this warning:
WARNING:
"Fill Item Key with a wrong RP210 (SMPTE Metadata Dictionary) version
number of 0x01. The correct version number is 0x02"
When using 24bit audio I get the same error like in ffmbc with 24bit audio:
ERROR: "The Sound Essence Descriptor signals that the number if
quantization bits is 24, which is higher than actually required (16) as
detemined by parsing the essence."
So, I could always prevent the audio WARNING by producing 16bit audio.
But is there a problem in the MXF when producing 24bit? Sound works in
editing tools.
So I have 2 questions (because I want to use ffmpeg instead of ffmbc)
1.) Is there an syntax option in ffmpeg/ffmbc for 24bit audio encoding to
prevent this ERROR:
"The Sound Essence Descriptor signals that the number if quantization
bits is 24, which is higher than actually required (16) as detemined by
parsing the essence."
2.) Is there an syntax option in ffmpeg to prevent this warning?
WARNING:
"Fill Item Key with a wrong RP210 (SMPTE Metadata Dictionary) version
number of 0x01. The correct version number is 0x02"
Every hint would be very helpful, thank you!
Best Regards
Christoph
USED SYNTAX:
-------------------------------------------------------------
FFmbc (16bit audio):
ffmbc -i I:\IMX_tests\IMX50_CARBON.avi -target imx50
I:\IMX_tests\_FFMBC_PAL_IMX_16bit_2.mxf -loglevel debug
FFmbc version 0.7-rc7
Copyright (c) 2008-2012 Baptiste Coudurier and the FFmpeg developers
Input #0, avi, from 'I:\IMX_tests\IMX50_CARBON.avi':
Metadata:
encoder: Lavf55.0.100
ISMP: 00:00:00:00
Duration: 00:00:20.00, start: 0.000000, bitrate: 113291 kb/s
Stream #0.0(und): Video: ffvhuff, yuv422p, 720x608p, PAR 152:135
DAR 4:3, 25.00 fps
Stream #0.1(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
File 'I:\IMX_tests\_FFMBC_PAL_IMX_16bit_2.mxf' already exists. Overwrite
? [y/N] y
[buffer @ 00000000018E07E0] w:720 h:608 pixfmt:yuv422p tb:1/1000000
sar:152/135 sws_param:
Incompatible sample format 's32' for codec 'pcm_s16le', auto-selecting
format 's16'
Warning, QMAT_SHIFT is larger than 21, overflows possible
Last message repeated 1 times
Output #0, mxf_d10, to 'I:\IMX_tests\_FFMBC_PAL_IMX_16bit_2.mxf':
Metadata:
encoder: FFmbc 0.7
Stream #0.0(und), 0, 1/25: Video: mpeg2video, yuv422p, 720x608i tff
[PAR 152:135 DAR 4:3], tbc 1/25, cbr, 50000 kb/s, 25.00 fps
Stream #0.1(und), 0, 1/48000: Audio: pcm_s16le, 48000 Hz, stereo,
s16, 1536 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
[mxf_d10 @ 000000000037C9C0] package type:1
[mxf_d10 @ 000000000037C9C0] package type:2
[mxf_d10 @ 000000000037C9C0] edit units count 0
frame= 239 fps= 25 q=3.0 size= 72409kB time=00:00:09.52
bitrate=62307.8kbits/s eta=00:00:10.51
-------------------------------------------------------------
FFmbc (24bit audio):
ffmbc -i I:\IMX_tests\IMX50_CARBON.avi -target imx50 -acodec pcm_s24le
I:\IMX_tests\_FFMBC_PAL_IMX_24bit_2.mxf -loglevel debug
FFmbc version 0.7-rc7
Copyright (c) 2008-2012 Baptiste Coudurier and the FFmpeg developers
Input #0, avi, from 'I:\IMX_tests\IMX50_CARBON.avi':
Metadata:
encoder: Lavf55.0.100
ISMP: 00:00:00:00
Duration: 00:00:20.00, start: 0.000000, bitrate: 113291 kb/s
Stream #0.0(und): Video: ffvhuff, yuv422p, 720x608p, PAR 152:135
DAR 4:3, 25.00 fps
Stream #0.1(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
[buffer @ 00000000002EFF60] w:720 h:608 pixfmt:yuv422p tb:1/1000000
sar:152/135 sws_param:
Warning, QMAT_SHIFT is larger than 21, overflows possible
Last message repeated 1 times
Output #0, mxf_d10, to 'I:\IMX_tests\_FFMBC_PAL_IMX_24bit_2.mxf':
Metadata:
encoder: FFmbc 0.7
Stream #0.0(und), 0, 1/25: Video: mpeg2video, yuv422p, 720x608i tff
[PAR 152:135 DAR 4:3], tbc 1/25, cbr, 50000 kb/s, 25.00 fps
Stream #0.1(und), 0, 1/48000: Audio: pcm_s24le, 48000 Hz, stereo,
s32, 2304 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
[mxf_d10 @ 00000000003BF460] package type:1
[mxf_d10 @ 00000000003BF460] package type:2
[mxf_d10 @ 00000000003BF460] edit units count 0
frame= 341 fps= 25 q=3.0 size= 103570kB time=00:00:13.60
bitrate=62385.4kbits/s eta=00:00:06.41
-------------------------------------------------------------
FFMPEG (24bit audio):
ffmpegnew -i I:\IMX_tests\IMX50_CARBON.avi -map 0:v -map 0:a -c:v
mpeg2video -r 25 -pix_fmt yuv422p -aspect 4:3 -minrate 50000k -maxrate
50000k -b:v 50000k -intra -flags +ildct+low_del
ay -intra_vlc 1 -non_linear_quant 1 -ps 1 -qmin 1 -qmax 3 -top 1 -dc 10
-bufsize 2000000 -rc_init_occupancy 2000000 -rc_max_vbv_use 1
-rc_min_vbv_use 1 -c:a pcm_s24le -ar 48000 -f mxf_d10 I:\IMX_tests
\_FFMPEGNEW_PAL_IMX_24bit_2.mxf
ffmpeg version N-71727-g46778ab Copyright (c) 2000-2015 the FFmpeg
developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libblu
ray --enable-libbs2b --enable-libcaca --enable-libdcadec
--enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus
--enable-librtmp --enable-libschroedinger --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame
--enable-libvidstab --ena
ble-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
libavutil 54. 23.101 / 54. 23.101
libavcodec 56. 35.101 / 56. 35.101
libavformat 56. 31.100 / 56. 31.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 14.100 / 5. 14.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, avi, from 'I:\IMX_tests\IMX50_CARBON.avi':
Metadata:
encoder : Lavf55.0.100
timecode : 00:00:00:00
Duration: 00:00:20.00, start: 0.000000, bitrate: 113291 kb/s
Stream #0:0: Video: ffvhuff (FFVH / 0x48564646), yuv422p, 720x608,
111196 kb/s, SAR 152:135 DAR 4:3, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream #0:1: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
File 'I:\IMX_tests\_FFMPEGNEW_PAL_IMX_24bit_2.mxf' already exists.
Overwrite ? [y/N] y
Output #0, mxf_d10, to 'I:\IMX_tests\_FFMPEGNEW_PAL_IMX_24bit_2.mxf':
Metadata:
timecode : 00:00:00:00
encoder : Lavf56.31.100
Stream #0:0: Video: mpeg2video, yuv422p, 720x608 [SAR 152:135 DAR
4:3], q=1-3, 50000 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.35.101 mpeg2video
Stream #0:1: Audio: pcm_s24le, 48000 Hz, stereo, s32 (24 bit), 2304
kb/s
Metadata:
encoder : Lavc56.35.101 pcm_s24le
Stream mapping:
Stream #0:0 -> #0:0 (ffvhuff (native) -> mpeg2video (native))
Stream #0:1 -> #0:1 (pcm_s24le (native) -> pcm_s24le (native))
Press [q] to stop, [?] for help
[mxf_d10 @ 00000000003bf240] the number of audio channels shall be 4 or
8 : the output will not comply to MXF D-10 specs, use -d10_channelcount
to fix this
frame= 500 fps=347 q=1.6 Lsize= 152756kB time=00:00:20.00
bitrate=62568.9kbits/s
video:122070kB audio:5625kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 19.625412%
More information about the ffmpeg-user
mailing list