[FFmpeg-trac] #4951(undetermined:closed): Different frame rate using ts and mov containers

FFmpeg trac at avcodec.org
Thu Oct 22 15:19:14 CEST 2015


#4951: Different frame rate using ts and mov containers
-------------------------------------+-------------------------------------
             Reporter:  liamf91      |                    Owner:
                 Type:  defect       |                   Status:  closed
             Priority:  normal       |                Component:
              Version:  2.8.1        |  undetermined
             Keywords:  h264 mov     |               Resolution:
  mpegts                             |  needs_more_info
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by liamf91):

 I have written video data from a stream to a .ts file using -codec copy.
 The file is 1080i 25FPS 25Mb/s bitrate.

 I have then tried to convert the file using the latest git head and the
 following is the command and console output.


 {{{
 ffmpeg -i ffmpeg_test_video.ts -vcodec copy -acodec pcm_s24le -top 1
 ffmpeg_test_video.mov
 ffmpeg version N-76159-gda43e9e Copyright (c) 2000-2015 the FFmpeg
 developers
   built with gcc 4.9.2 (Debian 4.9.2-10)
   configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-
 postproc --enable-x11grab --enable-libopencore-amrnb --enable-libopencore-
 amrwb --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-
 libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex
 --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
 --enable-libxvid
   libavutil      55.  4.100 / 55.  4.100
   libavcodec     57.  8.100 / 57.  8.100
   libavformat    57. 10.101 / 57. 10.101
   libavdevice    57.  0.100 / 57.  0.100
   libavfilter     6. 12.100 /  6. 12.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.100 /  2.  0.100
   libpostproc    54.  0.100 / 54.  0.100
 Input #0, mpegts, from 'ffmpeg_test_video.ts':
   Duration: 00:04:59.95, start: 1.450600, bitrate: 25138 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
 yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc
     Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000
 Hz, stereo, fltp, 127 kb/s
 [mov @ 0x34b9780] Codec for stream 0 does not use global headers but
 container format requires global headers
 Output #0, mov, to 'ffmpeg_test_video.mov':
   Metadata:
     encoder         : Lavf57.10.101
     Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR
 1:1 DAR 16:9], q=2-31, 25 fps, 50 tbr, 90k tbn, 90k tbc
     Stream #0:1: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo,
 s32, 2304 kb/s
     Metadata:
       encoder         : Lavc57.8.100 pcm_s24le
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (aac (native) -> pcm_s24le (native))
 Press [q] to stop, [?] for help
 frame=14955 fps= 95 q=-1.0 Lsize=  932056kB time=00:04:59.96
 bitrate=25454.1kbits/s
 video:847498kB audio:84366kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 0.020640%
 }}}

 I then use ffprobe on the finished file with the following output.

 {{{
 ffprobe ffmpeg_test_video.mov
 ffprobe version N-76159-gda43e9e Copyright (c) 2007-2015 the FFmpeg
 developers
   built with gcc 4.9.2 (Debian 4.9.2-10)
   configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-
 postproc --enable-x11grab --enable-libopencore-amrnb --enable-libopencore-
 amrwb --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-
 libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex
 --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
 --enable-libxvid
   libavutil      55.  4.100 / 55.  4.100
   libavcodec     57.  8.100 / 57.  8.100
   libavformat    57. 10.101 / 57. 10.101
   libavdevice    57.  0.100 / 57.  0.100
   libavfilter     6. 12.100 /  6. 12.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.100 /  2.  0.100
   libpostproc    54.  0.100 / 54.  0.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ffmpeg_test_video.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf57.10.101
   Duration: 00:04:59.97, start: 0.000000, bitrate: 25454 kb/s
     Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
 1920x1080 [SAR 1:1 DAR 16:9], 23211 kb/s, 50 fps, 50 tbr, 90k tbn, 50 tbc
 (default)
     Metadata:
       handler_name    : DataHandler
     Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz,
 stereo, s32 (24 bit), 2304 kb/s (default)
     Metadata:
       handler_name    : DataHandler
 }}}

 As you can see the file is showing 50FPS although when I was running the
 first command it claimed that the file output is at 25FPS.

 The file I have used as the source is 900MB, just an FYI you would like me
 to upload it somewhere.

 Thanks

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4951#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list