On 5/12/2021 10:02 AM, Danny Wu wrote:
Fixes ticket 9086.

Since early 2021, some of YouTube's VP9 encodes have non-monotonous DTS.
This makes ffmpeg fatally fail when trying to copy or encode the V9 video.

ffmpeg already includes functionality to correct this, however it was
disabled without explanation for VP9 stream copies in
2e6636aa87303d37b112e79f093ca39500f92364

The reason is that a bitstream filter that merges frames into superframes (1 visible + up to 7 invisible) was implemented.


This patch restores the DTS correction logic, and allows ffmpeg to correctly
encode (invalid) videos produced by youtube.com. I have verified that frames
are NOT being cut (so it does not re-introduce 4313).

Shouldn't google not produce invalid files? Also, can you link one of these videos to test this issue?

---
  fftools/ffmpeg.c | 1 -
  1 file changed, 1 deletion(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 3ad11452da..67deb7762f 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -823,7 +823,6 @@ static void write_packet(OutputFile *of, AVPacket
*pkt, OutputStream *ost, int u
          }
          if ((st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO ||
st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO ||
st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) &&
              pkt->dts != AV_NOPTS_VALUE &&
-            !(st->codecpar->codec_id == AV_CODEC_ID_VP9 && ost->stream_copy) &&
              ost->last_mux_dts != AV_NOPTS_VALUE) {
              int64_t max = ost->last_mux_dts + !(s->oformat->flags &
AVFMT_TS_NONSTRICT);
              if (pkt->dts < max) {

Your mail client mangled the patch.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to