Open gcapizzi opened 4 years ago
I've never had problems with rtve videos, maybe is your ffmeg config? Tell me example
@felisucoibi nope, you can see the ffmpeg
command in the debug output. Also, I have a local copy of youtube-dl patched to put the opts before the input files and it fixes the problem.
For a video example of the problem + an explanation of why it happens and a fix, see the Stack Overflow answer I linked to.
If you can give me a example of video of rtve with this problem, i don't have any problems and i downloaded a lot fo them. (or maybe i don't see it, please give a example), wait you mean this "fixing malformed aac)
I pasted the output of a download (including the URL) in the issue. Alternatively, just try any episode of Estoy Vivo or El Ministerio del Tiempo.
And you can see the problem when watching the video? i never noticed something strange in the video.
Have you tried my example? The playback it not fluid and almost trembling, like this example.
If you try to run the ffmpeg command manually, you'll see a lot of errors like these:
[mpegts @ 0x7fabfe802a00] Invalid timestamps stream=1, pts=21153600, dts=21160800, size=1936
[mpegts @ 0x7fabfe802a00] Invalid timestamps stream=1, pts=21160800, dts=21164400, size=2827
[mp4 @ 0x7fabff005000] Invalid DTS: 10800 PTS: 3600 in output stream 0:0, replacing by guess
[mp4 @ 0x7fabff005000] Invalid DTS: 14400 PTS: 10800 in output stream 0:0, replacing by guess
The reason is that the RTVE stream has invalid presentation timestamps. Here is an explanation from someone who helped me fix the issue:
Frames in video streams with B-frames are not encoded or stored in presentation order, so the presentation timestamps have to be correctly offset for fluid playback. In this TS sample, you have presentation timestamps earlier than decoding timestamps, which are invalid, and ffmpeg defaults to assigning the DTS as the new PTS.
This can be fixed by passing -fflags +igndts
to ffmpeg before the input file, e.g.:
ffmpeg -fflags +igndts -i all.ts -c copy all.mp4
There is PR to fix this? some of the movies downloaded from rtve does not andthere are errors in the mkv probably due to this sync problem.
Checklist
Verbose log
Description
After post-processing, videos downloaded from RTVE Alacarta don't look fluid. This is due to the TS stream containing invalid PTS and
ffmpeg
correcting them in a way that results in non-fluid playback. More details can be found at this SO answer.As the answer suggests, this can be fixed by using ffmpeg's
igndts
format flag. I'm trying to pass--postprocessor-args '-fflags +igndts'
toyoutube-dl
but it's not helping, as ffmpeg options need to be specified before the file they apply on:This is unfortunate, as output options only work when applied before the output file (but after the input file) and viceversa. We have no way to tell what the user wants, unless we introduce separate options for input args and output args.
My questions:
--postprocessor-input-args
flag?Happy to help with PRs once we find out a way forward. Thanks!