[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