[FFmpeg-user] Pipe concat doubles frame rate (was: Re: Duplicated frames warnings when processing video) after pipe concatenation but not when processing source files
Joel Roth
joelz at pobox.com
Wed Feb 21 22:29:30 EET 2018
Joel Roth wrote:
> Following up my own post.
>
> Joel Roth wrote:
> > Hi list,
> >
> > First of all, thanks to the ffmpeg developers and community
> > for this awesome software.
> >
> > I'm using a two-pass workflow, where I pipe concatenate
> > source files in the first pass, then trim and process the
> > result in a second pass. I am not changing framerates.
> >
> > Quoting from https://video.stackexchange.com/questions/20958/ffmpeg-dropping-duplicate-frames
> >
> > FFmpeg duplicates or drops frames when the input and output framerates differ.
> >
> > If I apply an ffmpeg command line to process a raw MTS file
> > from a camera, I do not get "More than 1000 frames duplicated"
> > warnings during processing.
> >
> > However if I combine MTS files using pipe concatenation,
> > e.g.
> >
> > ffmpeg -i concat:"./00000.MTS|./00001.MTS" -codec copy ./00000.mp4
> >
> > then run the same command line on the mp4 result, I get
> > plentiful duplicate frame warnings.
> >
> > I'm using Jon Van Sickle's statically ffmpeg, to wit, ffmpeg-git-20180216-64bit-static/ffmpeg
> > from https://www.johnvansickle.com/ffmpeg/
> >
> > The command line is:
> >
> > ffmpeg -i ./00000.mp4 -to 3:31 -c:v libx264 -preset:v medium -profile:v main -tune:v film -s:v 640x360 -c:a aac -b:a 80k -ac 2 -ar 24000 -level 3 -strict -2 -copyts -ss 1:29 ../final/20180220-1.mp4
>
> According to ffprobe, the frame rate of the pipe-concatenated video is double.
>
>
> ffprobe version N-45077-g8a8d0b319-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2018 the FFmpeg developers
> built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
> configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
> libavutil 56. 7.101 / 56. 7.101
> libavcodec 58. 11.101 / 58. 11.101
> libavformat 58. 9.100 / 58. 9.100
> libavdevice 58. 1.100 / 58. 1.100
> libavfilter 7. 12.100 / 7. 12.100
> libswscale 5. 0.101 / 5. 0.101
> libswresample 3. 0.101 / 3. 0.101
> libpostproc 55. 0.100 / 55. 0.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '00000.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf58.9.100
> Duration: 00:58:26.02, start: 0.000000, bitrate: 6903 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 6637 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc (default)
> Metadata:
> handler_name : VideoHandler
> Stream #0:1(und): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> Side data:
> audio service type: main
> /mnt/ba1/buenos-aires-1/20180220/raw $ ffprobe *0.MTS
> ffprobe version N-45077-g8a8d0b319-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2018 the FFmpeg developers
> built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
> configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
> libavutil 56. 7.101 / 56. 7.101
> libavcodec 58. 11.101 / 58. 11.101
> libavformat 58. 9.100 / 58. 9.100
> libavdevice 58. 1.100 / 58. 1.100
> libavfilter 7. 12.100 / 7. 12.100
> libswscale 5. 0.101 / 5. 0.101
> libswresample 3. 0.101 / 3. 0.101
> libpostproc 55. 0.100 / 55. 0.100
> Input #0, mpegts, from '00000.MTS':
> Duration: 00:37:25.73, start: 0.800300, bitrate: 7279 kb/s
> Program 1
> Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(top first), 1440x1080 [SAR 4:3 DAR 16:9], 29.97 fps, 59.94 tbr, 90k tbn, 59.94 tbc
> Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s
>
By adding the -r argument with the correct frame rate in the
second pass, I avoid the duplicate frame warnings.
The doubled frame rate using pipe concat appears to be a
bug.
cheers
--
Joel Roth
More information about the ffmpeg-user
mailing list