Longer videos have broken audio
Component Versions
- 4.6.1-win32-full
Symptom
Trying to upscale a 23 minute video results in nearly empty audio, with occasional pops and crackles but no music or dialogue. Doing the same process on a 54-second clip of the same video file works perfectly. Perhaps there is an issue with the final ffmpeg script?
Error Log or Screenshots
The log shows no obvious errors.
I don't think there are any errors in the FFmpeg commands. Could you please send me the clip? I'll take a look.
Also try the new 4.7.0 release.
I'm trying it with the new release now. Which bits do you think would be most helpful, and how should I send it? Uploading the full 400MB output to a GitHub issue seems silly (if it'll even allow that), but I'm not sure if cutting a clip out of it with OpenShot would destroy some of the info you need, etc.
I know it's been a while but.. I'm back on top of things again. Please try the newest release, since it now has a much better logging system. You can send the error log here, and upload the video to Google Drive or something. I can also provide you a SFTP account if that works for you.
I encountered a similar bug when upscaling a 20 minute video that contained a small amount of subtitles (just subtitles for the opening song), where the audio would play just fine at the start and would continue to play fine unless I skipped to another section of the video. Then there would be no sound unless I went all the way to the beginning. This is a bug with ffmpeg's interleaving of the streams and adding -max_interleave_delta 0 seems to fix it, though reading the documentation implies that it changes things and might introduce issues with buffering, I have not encountered any issues though
The following is from the documentation: max_interleave_delta integer (output)
Set maximum buffering duration for interleaving. The duration is expressed in microseconds, and defaults to 10000000 (10 seconds).
To ensure all the streams are interleaved correctly, libavformat will wait until it has at least one packet for each stream before actually writing any packets to the output file. When some streams are "sparse" (i.e. there are large gaps between successive packets), this can result in excessive buffering.
This field specifies the maximum difference between the timestamps of the first and the last packet in the muxing queue, above which libavformat will output a packet regardless of whether it has queued a packet for all the streams.
If set to 0, libavformat will continue buffering packets until it has a packet for each stream, regardless of the maximum timestamp difference between the buffered packets.
Could this be related to variable frame rate? #382