【问题标题】:Force FFMPEG to reuse gif frames强制 FFMPEG 重用 gif 帧
【发布时间】:2019-07-23 19:31:41
【问题描述】:

我正在使用带有以下代码的 ffmpeg 从 mov 文件中导出 gif:

 ffmpeg -i movie.mov -i mypalette.png -lavfi "paletteuse,scale=600:-1" -r "25" -loop "0" movie.gif

电影有很多停顿,帧没有改变。我注意到在 Photoshop 中打开 gif 时,它使用的是同一帧的副本,而不是在该帧暂停 2 秒。 有没有强制FFMEG重复使用相同帧的方法?

【问题讨论】:

    标签: ffmpeg gif


    【解决方案1】:

    使用

    ffmpeg -i movie.mov -i mypalette.png -lavfi "mpdecimate,paletteuse,scale=600:-1" -vsync 0 -r 25 -loop 0 movie.gif

    mpdecimate 将从输入中删除重复的帧。 -vsync 0 将防止 ffmpeg 使用重复帧填充 mpdecimate 创建的间隙。

    【讨论】:

    • 谢谢,这确实创建了一个较小的 gif,但最后一帧没有延迟,就像视频中的那样。这在 Photoshop 中是可能的
    • 添加 -final_delay 5 以将最后一帧的延迟设置为 500 毫秒。
    • 糟糕,final_delay 以厘秒为单位,因此 5 导致最终帧持续时间为 50 毫秒。
    • 行得通!最后一个问题:我在特定地点添加延迟?例如:在 2 秒时
    • 您必须使用 setpts 过滤器。基本模板是这里的答案:stackoverflow.com/q/56524334
    猜你喜欢
    • 2021-05-12
    • 2017-02-18
    • 2018-11-05
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    相关资源
    最近更新 更多