#7972: Gif output not preserving source duration for last frame
-------------------------------------+-------------------------------------
Reporter: bjorn | Owner:
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: unspecified | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by jagraff):
One fix for this in fftools/ffmpeg.c is to copy the duration from the
frame to the packet during do_video_out calls, eg:
{{{
while (1) {
ret = avcodec_receive_packet(enc, &pkt);
if (pkt.duration <= 0)
pkt.duration = av_rescale_q(in_picture->pkt_duration,
ost->mux_timebase, enc->time_base);
}}}
And then use the packet duration, rather than the pts, during the gif
encode step. However, this fix is probably not general enough, since other
which attempts to write out gif packets could still face this issue.
Ideally, packet duration should always be copied (and not zeroed out)
during filtering, however it appears that at some point between reading
packets in and writing them out, the duration gets dropped.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7972#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".