[FFmpeg-trac] #11451(avformat:new): Duplicate frames dropped when copying Theora streams
FFmpeg
trac at avcodec.org
Wed Feb 5 10:32:16 EET 2025
#11451: Duplicate frames dropped when copying Theora streams
------------------------------------+------------------------------------
Reporter: Bernat | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Changes (by Bernat):
* component: undetermined => avformat
* version: unspecified => git-master
Old description:
> Hi. I'm working on Theora decoding support for Godot. Almost everything
> is working fine except for some kind of video streams.
>
> Theora encodes duplicate frames (frames identical to the previous one) as
> empty packets. Those empty packets seem to be discarded by FFmpeg when
> doing an operation that involves copying a Theora stream.
>
> Example: ffmpeg -i input.ogv -c:v copy -a:n copy output.ogv
>
> I've tried to find the issue in the source code, and although I'm not
> familiar with FFmpeg, I think the issue is here:
> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavformat/oggenc.c#l693
>
> I've read on some commit that empty packets are dropped to fix some issue
> with FLAC streams but they shouldn't be discarded for Theora streams as
> they encode duplicate frames.
>
> I hope this can be easily fixed. Thanks in advance. Cheers.
New description:
Hi. I'm working on Theora decoding support for Godot. Almost everything is
working fine except for some kind of video streams.
Theora encodes duplicate frames (frames identical to the previous one) as
empty packets. Those empty packets seem to be discarded by FFmpeg when
doing an operation that involves copying a Theora stream. It doesn't
happen when encoding.
Example: ffmpeg -i input.ogv -c:v copy -a:n copy output.ogv
Although I'm not familiar with the code, I've searched the code for the
cause and I think I found a possible regression in this commit:
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/18f24527eb4b520585e55f922cdbc234aa9f0f18
The following line in the Ogg encoder is dropping empty packets:
https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavformat/oggenc.c#l693
I hope this can be easily fixed. Thanks in advance. Cheers.
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11451#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list