[FFmpeg-user] Any Actual Solution to "Past Duration Too Large"?

Roger Pack rogerdpack2 at gmail.com
Wed Jun 6 09:37:28 EEST 2018


There are a few tracs on it, and this:
https://superuser.com/questions/902661/ffmpeg-past-duration-0-xxxxxx-too-large
Seems to be a bug somehow to me but I never looked closely enough.

On Mon, Apr 16, 2018 at 7:50 PM, Gabriel Balaich <roderrooder at gmail.com>
wrote:

> Hey all, I'm having an issue with the "Past duration too large" warning
> being spammed in my console.
>
> Suggestions range from silencing the console to applying the "fps=xxx"
> filter, but when I apply the fps filter it adds stutter to my
> video, and silencing my console isn't really an actual solution as I lose
> visibility of everything else. For example I can't view what
> segment I'm on, or other warnings and error messages that may be important.
> Oddly enough I have found that doubling my input framerate and then calling
> the actual framerate I want before the output gets rid
> of the warning completely:
>
> ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f
> dshow -video_size 3440x1440 -rtbufsize 2147.48M ^
> -framerate 200 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI
> 4K+)":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" ^
> -map 0:0,0:1 -map 0:1 -c:v h264_nvenc -r 100 -rc-lookahead 200 -forced-idr
> 1 -strict_gop 1 -sc_threshold 0 -flags +cgop ^
> -force_key_frames expr:gte(t,n_forced*2) -preset: llhp -pix_fmt nv12 -b:v
> 250M -minrate 250M -maxrate 250M -bufsize 250M ^
> -c:a aac -ar 44100 -b:a 384k -ac 2 -af "atrim=0.035, asetpts=PTS-STARTPTS,
> aresample=async=250" -vsync 1 -ss 00:00:01.096 ^
> -max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9
> -reset_timestamps 1 ^
> C:\Users\djcim\Videos\PC\PC\PC%02d.ts
>
> As you can see I have -framerate on the input at 200 and -r on the output
> at 100, I have absolutely no idea why this would negate,
> hide, or prevent the warning message. And while this has solved my issue
> with this specific video input device, it doesn't work with
> just any video input device. The Magewell is a really high end card and
> allows 200 fps recording at certain resolutions, and while it
> doesn't actually support 200 fps at the resolution I am recording I believe
> that it's ability to do so at other resolutions is why ffmpeg
> is allowing me to set that option in the first place. When I try to do the
> same thing with my Elgato capture card it throws an error
> and won't even let me start recording, as one would expect:
>
> ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f
> dshow -video_size 1920x1080 -rtbufsize 2147.48M ^
> -framerate 120 -pixel_format yuyv422 -i video="Game Capture HD60 Pro
> (Video) (#01)":audio="ADAT (5+6) (RME Fireface UC)" ^
> -map 0:0,0:1 -map 0:1 -c:v h264_nvenc -r 60 -rc-lookahead 120 -forced-idr 1
> -strict_gop 1 -sc_threshold 0 -flags +cgop ^
> -force_key_frames expr:gte(t,n_forced*2) -preset: llhp -pix_fmt yuv420p
> -b:v 40M -minrate 40M -maxrate 40M -bufsize 40M ^
> -c:a aac -ar 44100 -b:a 384k -ac 2 -af "pan=mono|c0=c0, adelay=120|120,
> aresample=async=250" -vsync 1 ^
> -max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9
> -reset_timestamps 1 ^
> C:\Users\djcim\Videos\PC\Camera\CPC%02d.ts
>
> So in the end I have to change -framerate back to 60 in-which the "Past
> duration too large" error is spammed at an alarming, and
> sometimes even console breaking rate. From what I gather looking at the
> source code the error occurs when the delta between
> input PTS and output PTS is less than -.06. I'm not entirely sure what that
> entails but would there be a way for me to adjust either
> the output or input PTS so the threshold is never crossed? I've tried a few
> things with setpts but nothing seems to work, I just
> really don't have a concrete understanding of PTS and how to adjust them.
>
> With my experience and limited knowledge it would seem the only solutions I
> have are:
> A) Dispose of my Elgato capture card and purchase another Magewell so I can
> double the input framerate.
> B) Modify the if statement in the source code and compile FFmpeg myself.
>
> Magewell capture cards are extremely expensive, and while I really wish I
> could just double the framerate and be done with it, it is
> pretty clear that that is not a conventional or "actual" solution. And
> constantly modifying the source code and compiling everything
> myself every time I want to update sounds tiresome. I am fairly confident
> there is a solution to this but I lack the knowledge, any
> help or advice would be much appreciated. Keep in mind that I need to
> maintain a constant integer framerate so I can force
> keyframes at correct intervals, keep segments at consistent lengths, and
> maintain a/v synchronization. Basically, if possible, I'd like
> to keep all my existing options but add something to stop, or prevent the
> warning message without silencing my console.
>
> Thanks for any help
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list