[FFmpeg-trac] #3251(FFmpeg:new): Since version 1.1 ffmpeg produces DNxHD files with wrong codec time base.
FFmpeg
trac at avcodec.org
Sat Dec 28 10:28:08 CET 2013
#3251: Since version 1.1 ffmpeg produces DNxHD files with wrong codec time base.
-------------------------------------+-------------------------------------
Reporter: martastain | Type: defect
Status: new | Priority: normal
Component: FFmpeg | Version: git-
Keywords: dnxhd, | master
timebase, quicktime, mov | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Version 1.0.8 is the latest stable unaffected by this behaviour. Let's
create DNxHD QuickTime from png sequence:
{{{
root at dcore:~$ ffmpeg -i render/test%04d.png -s 1920x1080 -r 25 -pix_fmt
yuv422p -c:v dnxhd -b:v 120M -an test.mov
ffmpeg version 1.0.8 Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 31 2013 13:06:33 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix= --enable-libmp3lame --enable-librtmp --enable-
libx264 --enable-libfaac --enable-libvorbis --enable-pic --enable-shared
--enable-gpl --enable-nonfree --enable-libtheora
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, image2, from 'render/test%04d.png':
Duration: 00:00:10.00, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgb24, 1920x1080, 25 fps, 25 tbr, 25 tbn, 25
tbc
Output #0, mov, to 'test.mov':
Metadata:
encoder : Lavf54.29.104
Stream #0:0: Video: dnxhd (AVdn / 0x6E645641), yuv422p, 1920x1080,
q=2-1024, 120000 kb/s, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png -> dnxhd)
Press [q] to stop, [?] for help
frame= 250 fps= 20 q=1.0 Lsize= 148002kB time=00:00:10.00
bitrate=121243.1kbits/s
video:148000kB audio:0kB subtitle:0 global headers:0kB muxing overhead
0.001243%
root at dcore:~$ ffprobe test.mov
ffprobe version 1.0.8 Copyright (c) 2007-2013 the FFmpeg developers
built on Oct 31 2013 13:06:33 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix= --enable-libmp3lame --enable-librtmp --enable-
libx264 --enable-libfaac --enable-libvorbis --enable-pic --enable-shared
--enable-gpl --enable-nonfree --enable-libtheora
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf54.29.104
Duration: 00:00:10.00, start: 0.000000, bitrate: 121243 kb/s
Stream #0:0(eng): Video: dnxhd (AVdn / 0x6E645641), yuv422p,
1920x1080, 121241 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
handler_name : DataHandler
}}}
You can see the resulting mov file has fps = tbr = tbn = tbc = 25 as
expected. If you run the same command with ffmpeg >= 1.1, resulting file
is different:
{{{
root at magrathea:~# ffmpeg -i render/test%04d.png -s 1920x1080 -r 25
-pix_fmt yuv422p -c:v dnxhd -b:v 120M -an test.mov
ffmpeg version 1.1.7 Copyright (c) 2000-2013 the FFmpeg developers
built on Nov 18 2013 12:09:08 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix= --enable-libmp3lame --enable-librtmp --enable-
libx264 --enable-libfaac --enable-libvorbis --enable-pic --enable-shared
--enable-gpl --enable-nonfree --enable-libtheora
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, image2, from 'render/test%04d.png':
Duration: 00:00:10.00, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgb24, 1920x1080 [SAR 2835:2835 DAR 16:9], 25
fps, 25 tbr, 25 tbn, 25 tbc
Output #0, mov, to 'test.mov':
Metadata:
encoder : Lavf54.59.106
Stream #0:0: Video: dnxhd (AVdn / 0x6E645641), yuv422p, 1920x1080 [SAR
1:1 DAR 16:9], q=2-1024, 120000 kb/s, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png -> dnxhd)
Press [q] to stop, [?] for help
frame= 250 fps= 16 q=1.0 Lsize= 148002kB time=00:00:10.00
bitrate=121243.1kbits/s
video:148000kB audio:0kB subtitle:0 global headers:0kB muxing overhead
0.001243%
}}}
You can see, that tbn and tbc values differ - they are always 12800
instead of expected 25. This issue is still present in latest git version
and can be reproduced also using zeranoe builds.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3251>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list