[FFmpeg-devel] ffmpeg latest git - rewrapping (codec copy) breaks container fps/tbr values

Michael Niedermayer michaelni at gmx.at
Tue Apr 14 00:11:58 CEST 2015


On Mon, Apr 13, 2015 at 04:11:41PM -0500, David Favor wrote:
> David Favor wrote:
> >The following command:
> >
> >    ffmpeg -i clip.mts -c:v copy -c:a copy clip.mp4 (or clip.mov)
> >
> >seems to incorrectly write container values for fps + tbr which
> >causes .mp4/.mov files to play with very odd jerky movements.
> >
> >imac> avinfo clip.mts
> >clip.mts
> >   length: 00:01:00.03, start: 1.433367, bitrate: 24821 kb/s
> >   stream: #0:0[0x100]: Video: h264 (High) ([27][0][0][0] /
> >0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97
> >tbr, 90k tbn, 59.94 tbc
> >   stream: #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081),
> >48000 Hz, stereo, fltp, 256 kb/s
> >
> >imac> avinfo clip.mp4
> >clip.mp4
> >   length: 00:01:00.04, start: 0.000000, bitrate: 22955 kb/s
> >   stream: #0:0(und): Video: h264 (High) (avc1 / 0x31637661),
> >yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 22690 kb/s, 59.94 fps,
> >59.94 tbr, 90k tbn, 59.94 tbc (default)
> >   stream: #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz,
> >stereo, fltp, 256 kb/s (default)
> >
> >Notice both fps + tbr have changed from 29.97 to 59.94 which seems
> >the problem.
> >
> >Someone let me know if this is really a bug or if this has changed
> >+ no longer works.
> >
> >Thanks.
> >
> >_______
> >
> >ffmpeg run log...
> >
> >imac> ffmpeg -i clip.mts -c:v copy -c:a copy clip.mp4
> >ffmpeg version 2.6.2-2015-04-13-71430-g4d74c8d Copyright (c)
> >2000-2015 the FFmpeg developers
> >  built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
> >  configuration: --cc=/usr/bin/clang
> >--prefix=/david-favor/osx-10.9.5
> >--mandir=/david-favor/osx-10.9.5/share/man --enable-gpl
> >--enable-yasm --arch=x86_64 --enable-version3 --enable-pthreads
> >--enable-shared --disable-static --disable-debug
> >--extra-cflags='-pipe -I/david-favor/osx-10.9.5/include
> >-I/opt/local/include -I/usr/local/include -I/usr/include'
> >--extra-ldflags='-Wl,-rpath,/david-favor/osx-10.9.5/lib
> >-Wl,-rpath,/opt/local/lib -Wl,-rpath,/usr/local/lib
> >-Wl,-rpath,/usr/lib -L/david-favor/osx-10.9.5/lib -L/opt/local/lib
> >-L/usr/local/lib -L/usr/lib' --enable-ffplay --enable-ffprobe
> >--enable-ffserver --enable-indev=qtkit --enable-indev=avfoundation
> >--enable-runtime-cpudetect --enable-nonfree --enable-zlib
> >--enable-bzlib --enable-openssl --enable-gnutls --enable-swscale
> >--enable-avfilter --enable-avresample --enable-postproc
> >--enable-vda --enable-libfribidi --enable-libmp3lame
> >--enable-libfaac --enable-libfdk_aac --enable-libvpx
> >--enable-libtheora --enable-libvorbis --enable-libxvid
> >--enable-libopus --enable-libopenjpeg --enable-libschroedinger
> >--enable-libspeex --enable-libbluray --enable-libx264
> >--enable-libx265 --enable-postproc --enable-frei0r
> >--enable-libopencv --enable-libopencore-amrnb --enable-fontconfig
> >--enable-libfreetype --enable-libmodplug --enable-libass
> >  libavutil      54. 22.101 / 54. 22.101
> >  libavcodec     56. 34.100 / 56. 34.100
> >  libavformat    56. 30.100 / 56. 30.100
> >  libavdevice    56.  4.100 / 56.  4.100
> >  libavfilter     5. 14.100 /  5. 14.100
> >  libavresample   2.  1.  0 /  2.  1.  0
> >  libswscale      3.  1.101 /  3.  1.101
> >  libswresample   1.  1.100 /  1.  1.100
> >  libpostproc    53.  3.100 / 53.  3.100
> >Input #0, mpegts, from 'clip.mts':
> >  Duration: 00:01:00.03, start: 1.433367, bitrate: 24821 kb/s
> >  Program 1
> >    Metadata:
> >      service_name    : Service01
> >      service_provider: FFmpeg
> >    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] /
> >0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97
> >tbr, 90k tbn, 59.94 tbc
> >    Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 0x0081),
> >48000 Hz, stereo, fltp, 256 kb/s
> >File 'clip.mp4' already exists. Overwrite ? [y/N] y
> >[mp4 @ 0x7f8d5e81dc00] Codec for stream 0 does not use global
> >headers but container format requires global headers
> >[mp4 @ 0x7f8d5e81dc00] Codec for stream 1 does not use global
> >headers but container format requires global headers
> >[mp4 @ 0x7f8d5e81dc00] track 1: codec frame size is not set
> >Output #0, mp4, to 'clip.mp4':
> >  Metadata:
> >    encoder         : Lavf56.30.100
> >    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p,
> >1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k
> >tbn, 90k tbc
> >    Stream #0:1: Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz,
> >stereo, 256 kb/s
> >Stream mapping:
> >  Stream #0:0 -> #0:0 (copy)
> >  Stream #0:1 -> #0:1 (copy)
> >Press [q] to stop, [?] for help
> >[mp4 @ 0x7f8d5e81dc00] pts has no value
> >    Last message repeated 392 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value1kB time=00:00:13.12
> >bitrate=23053.4kbits/s
> >    Last message repeated 308 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value65kB time=00:00:23.42
> >bitrate=22964.7kbits/s
> >    Last message repeated 279 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value11kB time=00:00:32.76
> >bitrate=22977.7kbits/s
> >    Last message repeated 222 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value29kB time=00:00:40.19
> >bitrate=22976.6kbits/s
> >    Last message repeated 311 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value63kB time=00:00:50.62
> >bitrate=22972.5kbits/s
> >    Last message repeated 279 times
> >[mp4 @ 0x7f8d5e81dc00] pts has no value52kB time=00:00:59.96
> >bitrate=22956.9kbits/s
> >[mp4 @ 0x7f8d5e81dc00] pts has no value
> >frame= 3599 fps=1190 q=-1.0 Lsize=  168254kB time=00:01:00.00
> >bitrate=22972.3kbits/s
> >video:166308kB audio:1875kB subtitle:0kB other streams:0kB global
> >headers:0kB muxing overhead: 0.042559%
> >_______________________________________________
> >ffmpeg-devel mailing list
> >ffmpeg-devel at ffmpeg.org
> >http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> Work around to escape jittery playback.
> 
>     ffmpeg -fflags +genpts -i clip.mts -c:v copy -c:a copy clip.mp4

yes, if there are missing pts in the input (thats allowed generally
in mpegts)
then genpts may be needed for stream copy

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The educated differ from the uneducated as much as the living from the
dead. -- Aristotle 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150414/0a01ba6d/attachment.asc>


More information about the ffmpeg-devel mailing list