[FFmpeg-user] Frame rate reduction issues

Stefan Moro stefan.moro at gmail.com
Mon Apr 11 10:38:14 CEST 2016


On 8 April 2016 at 12:07, Stefan Moro <stefan.moro at gmail.com> wrote:

>
>
> On 5 April 2016 at 16:09, Stefan Moro <stefan.moro at gmail.com> wrote:
>
>> Hi guys,
>>
>> After upgrading to (more or less latest) master of ffmpeg I got this
>> error when trying to perform frame rate reduction of a video:
>>
>> root at 9462c135d114:/# ffmpeg -v debug -y -i file.mov -map 0:v:0 -filter:v
>> "framestep=step=2" -codec:v libx264 -f mp4 -movflags +faststart /tmp/ncdsncj
>> ffmpeg version N-79160-gb73c271 Copyright (c) 2000-2016 the FFmpeg
>> developers
>>   built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
>>   configuration: --prefix=/tmp/tmp_build_dir --pkg-config-flags=--static
>> --extra-cflags=-I/tmp/tmp_build_dir/include
>> --extra-ldflags=-L/tmp/tmp_build_dir/lib --bindir=/root/bin --enable-gpl
>> --enable-nonfree --enable-libx264 --enable-libsoxr --enable-libfdk-aac
>>   libavutil      55. 19.100 / 55. 19.100
>>   libavcodec     57. 32.100 / 57. 32.100
>>   libavformat    57. 29.101 / 57. 29.101
>>   libavdevice    57.  0.101 / 57.  0.101
>>   libavfilter     6. 40.102 /  6. 40.102
>>   libswscale      4.  0.100 /  4.  0.100
>>   libswresample   2.  0.101 /  2.  0.101
>>   libpostproc    54.  0.100 / 54.  0.100
>> Splitting the commandline.
>> Reading option '-v' ... matched as option 'v' (set logging level) with
>> argument 'debug'.
>> Reading option '-y' ... matched as option 'y' (overwrite output files)
>> with argument '1'.
>> Reading option '-i' ... matched as input file with argument 'file.mov'.
>> Reading option '-map' ... matched as option 'map' (set input stream
>> mapping) with argument '0:v:0'.
>> Reading option '-filter:v' ... matched as option 'filter' (set stream
>> filtergraph) with argument 'framestep=step=2'.
>> Reading option '-codec:v' ... matched as option 'codec' (codec name) with
>> argument 'libx264'.
>> Reading option '-f' ... matched as option 'f' (force format) with
>> argument 'mp4'.
>> Reading option '-movflags' ... matched as AVOption 'movflags' with
>> argument '+faststart'.
>> Reading option '/tmp/ncdsncj' ... matched as output file.
>> Finished splitting the commandline.
>> Parsing a group of options: global .
>> Applying option v (set logging level) with argument debug.
>> Applying option y (overwrite output files) with argument 1.
>> Successfully parsed a group of options.
>> Parsing a group of options: input file file.mov.
>> Successfully parsed a group of options.
>> Opening an input file: file.mov.
>> [file @ 0x4065c00] Setting default whitelist 'file,crypto'
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] Format mov,mp4,m4a,3gp,3g2,mj2
>> probed with size=2048 and score=100
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] ISO: File Type Major Brand: qt
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] Unknown dref type 0x08206c7275 size
>> 12
>>     Last message repeated 2 times
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] Before avformat_find_stream_info()
>> pos: 11392998 bytes read:76094 seeks:3
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] All info found
>> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4065500] After avformat_find_stream_info()
>> pos: 6401 bytes read:108862 seeks:4 frames:3
>> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mov':
>>   Metadata:
>>     major_brand     : qt
>>     minor_version   : 512
>>     compatible_brands: qt
>>     encoder         : Lavf56.36.100
>>   Duration: 00:00:10.01, start: 0.000000, bitrate: 9105 kb/s
>>     Stream #0:0(eng), 1, 1/30000: Video: h264 (Main), 2 reference frames
>> (avc1 / 0x31637661), yuv420p(tv, bt709, left), 1920x1080 (1920x1088),
>> 1/60000, 8973 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc (default)
>>     Metadata:
>>       handler_name    : DataHandler
>>       encoder         : H.264
>>       timecode        : 00:21:42;27
>>     Stream #0:1(eng), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D),
>> 48000 Hz, stereo, fltp, 123 kb/s (default)
>>     Metadata:
>>       handler_name    : DataHandler
>>     Stream #0:2(eng), 1, 1/30000: Data: none (tmcd / 0x64636D74), 1/30, 0
>> kb/s
>>     Metadata:
>>       handler_name    : DataHandler
>>       timecode        : 00:21:42;27
>> Successfully opened the file.
>> Parsing a group of options: output file /tmp/ncdsncj.
>> Applying option map (set input stream mapping) with argument 0:v:0.
>> Applying option filter:v (set stream filtergraph) with argument
>> framestep=step=2.
>> Applying option codec:v (codec name) with argument libx264.
>> Applying option f (force format) with argument mp4.
>> Successfully parsed a group of options.
>> Opening an output file: /tmp/ncdsncj.
>> [file @ 0x406abc0] Setting default whitelist 'file,crypto'
>> Successfully opened the file.
>> detected 4 logical cores
>> [Parsed_framestep_0 @ 0x406a700] Setting 'step' to value '2'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'video_size' to value
>> '1920x1080'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'pix_fmt' to value '0'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'time_base' to value
>> '1/30000'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'pixel_aspect' to
>> value '0/1'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'sws_param' to value
>> 'flags=2'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] Setting 'frame_rate' to value
>> '30000/1001'
>> [graph 0 input from stream 0:0 @ 0x406a3a0] w:1920 h:1080 pixfmt:yuv420p
>> tb:1/30000 fr:30000/1001 sar:0/1 sws_param:flags=2
>> [format @ 0x40a6b40] compat: called with
>> args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21]
>> [format @ 0x40a6b40] Setting 'pix_fmts' to value
>> 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21'
>> [AVFilterGraph @ 0x40774a0] query_formats: 4 queried, 3 merged, 0 already
>> done, 0 delayed
>> [Parsed_framestep_0 @ 0x406a700] step:2 frame_rate:30000/1001(29.970030)
>> -> frame_rate:15000/1001(14.985015)
>> [libx264 @ 0x4094960] using mv_range_thread = 88
>> [libx264 @ 0x4094960] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
>> AVX FMA3 AVX2 LZCNT BMI2
>> [libx264 @ 0x4094960] profile High, level 4.0
>> [libx264 @ 0x4094960] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft
>> 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3
>> deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
>> mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11
>> fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1
>> sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
>> constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1
>> weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=14 scenecut=40
>> intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0
>> qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
>> [mp4 @ 0x4097880] timecode: tbc=15000/1001 invalid, fallback on 15000/1001
>> [mp4 @ 0x4097880] Drop frame is only allowed with 30000/1001 or
>> 60000/1001 FPS
>> Output #0, mp4, to '/tmp/ncdsncj':
>>   Metadata:
>>     major_brand     : qt
>>     minor_version   : 512
>>     compatible_brands: qt
>>     encoder         : Lavf57.29.101
>>     Stream #0:0(eng), 0, 1/15000: Video: h264 (libx264), -1 reference
>> frame ([33][0][0][0] / 0x0021), yuv420p(left), 1920x1080, 1001/15000,
>> q=-1--1, 14.99 fps, 15k tbn, 14.99 tbc (default)
>>     Metadata:
>>       handler_name    : DataHandler
>>       timecode        : 00:21:42;27
>>       encoder         : Lavc57.32.100 libx264
>>     Side data:
>>       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
>> Stream mapping:
>>   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
>> Could not write header for output file #0 (incorrect codec parameters ?):
>> Invalid argument
>> [AVIOContext @ 0x40a6d00] Statistics: 0 seeks, 1 writeouts
>> [AVIOContext @ 0x406df60] Statistics: 108862 bytes read, 4 seeks
>>
>>
>> It worked with previous versions of ffmpeg, and the error message doesn't
>> make much sense to me. It works on many other files with same, and
>> different, frame rates.
>>
>> The source file can be downloaded here:
>> https://www.dropbox.com/s/txho2a2u62rw5uf/file.mov?dl=0
>>
>> Any ideas of why this doesn't work anymore?
>>
>> Regards
>> Stefan
>>
>
> Hi again,
>
> This definitely seems to be a bug that has appeared in some of the latest
> commits to FFmpeg. The command above works fine and generates the expected
> result in FFmpeg 3.0.1.
> I have not had time to pinpoint the exact commit which introduced this
> issue though...
>
> Regards Stefan
>

Hi,

FYI, ticket created: https://trac.ffmpeg.org/ticket/5414

Stefan


More information about the ffmpeg-user mailing list