image - FFMPEG > 以静止图像结束视频

标签 image ffmpeg

这是我使用的命令:

ffmpeg -loop 1 -i image.png -i test.mp3 -ignore_loop 0 -i waves_hori.png -filter_complex "overlay=2:H-200" -c:a copy -c:v h264 -shortest -y test.mp4
是否可以添加5s的结束图像?

最佳答案

您可以通过使用管道自动执行此操作,而不必获取音频持续时间并减去时间。

ffmpeg -loop 1 -i background.png -i audio.mp3 -i overlay.png -filter_complex "overlay=2:H-200=format=auto,format=yuv420p" -c:v rawvideo -c:a pcm_s16le -shortest -f matroska - | ffmpeg -y -ss 5 -an -i - -loop 1 -t 5 -i end.jpg -i test.mp3 -filter_complex "[0][1]concat=n=2:v=1:a=0" -shortest output.mp4
为什么有 2 个命令和一个管道?
  • 第一个 ffmpeg 命令与您的原始命令类似,但输出给了另一个 ffmpeg。这使您可以利用 -shortest自动使视频与音频持续时间相匹配。
  • 第二个 ffmpeg 命令从上一个命令中获取视频,跳过视频的开头 5 秒,然后使用 concat过滤器将 5 秒的图像连接到视频。
  • 使用管道可以避免临时文件和生成损失。
  • end.jpg必须与 background.png 具有相同的宽度、高度和纵横比正确连接。如果不是,则添加 scale、scale2ref、crop 或 pad filters .

    关于image - FFMPEG > 以静止图像结束视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69521595/

    相关文章:

    c# - 从图像生成视频并添加音频时,视频无法播放

    css - 如何将 SVG(或 CSS)中的图像转换为非平行四边形形状?

    python - 使用python增加图像中特定像素的亮度

    c# - 使用 C# 不显示实际图像时裁剪图像问题

    jquery - 使用 jquery 从 anchor onclick 更改图像 src?

    ffmpeg - FFMPEG 中缺少 DirectShow 过滤器

    Python FFmpeg查询rtsp太慢

    typescript - 如何更改 m3u8 文件中的 .ts 文件名

    ffmpeg - 如何使用 libavformat 连接 2 个具有相同编解码器的视频文件(重新混合)?

    java - jframe 中的多个 'imageviews'