代码之家  ›  专栏  ›  技术社区  ›  Maxime Dupré

如何停止将视频流中的最后一帧保留为使用ffmpeg编码的mp4容器的一部分?

  •  0
  • Maxime Dupré  · 技术社区  · 6 年前

    我将一个虚拟mp3文件(7秒的白噪声)和一个虚拟mp4文件(4秒的红色背景图像静音)编码在一起,形成一个mp4文件。生成此文件的命令是:

    ffmpeg -i dummy.mp3 -itsoffset 0 -t 2 -ss 0 -i dummy.mp4 -c:v copy -map 1:v -map 0:a -copyts output.mp4 
    

    如你们所见,我截断了dummy。mp4至2秒(最初为4秒)。然而,当我玩的时候 output.mp4 在QuickTime Player中,我看到整个7秒钟的红色背景图像。

    我想要的是假人。mp4的红色背景图像持续2秒,然后是黑色(无)。

    我怎样才能做到这一点?

    干杯

    0 回复  |  直到 6 年前
        1
  •  0
  •   Gyan    6 年前

    这实际上取决于玩家-是否在最后一帧显示其持续时间后使用空白画布重新绘制。

    您可以通过创建空白以迂回的方式执行此操作。mp4具有与dummy相同的属性。mp4,当然除了视觉效果。

    创建一个文本文件,

    file dummy.mp4
    outpoint 2
    file blank.mp4
    

    然后,

    ffmpeg -i dummy.mp3 -itsoffset 0 -f concat -i list.txt -c:v copy -map 1:v -map 0:a output.mp4

    附则副本仅适用于输入