ffmpeg 将静态图像添加到视频中

ffmpeg 将静态图像添加到视频中

免责声明:我根本不擅长视频编辑;这几乎是我的第一次尝试,所以我可能会遗漏一些非常基本的东西。如果需要,请宽容并将我重定向到相关教程。

我尝试搜索,结果是我的尝试(失败了)。

我有一个.mp4视频:

  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 377 kb/s, 25 fps, 25 tbr, 30k tbn (default)
    Metadata:
      handler_name    : H.264/AVC video
      vendor_id       : [0][0][0][0]
      encoder         : AVC Coding
  Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 126 kb/s (default)
    Metadata:
      handler_name    : AAC audio
      vendor_id       : [0][0][0][0]
  Stream #1:2[0x3](eng): Data: bin_data (text / 0x74786574), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler

我需要在其前面添加一个由一张.png保存 15 秒的图像组成的“标题”。

我使用以下方法转换了图像:

ffmpeg -loop 1 -i Cover.png -c:v libx264 -t 15 -pix_fmt yuv420p -vf scale=1920:1080 cover.mp4

得到稍微不同的格式(我怀疑这是导致我的问题的原因):

  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 195 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 libx264

我尝试了几种不同的策略来连接(当然可能不需要重新编码)这两个文件,但是:

ffmpeg -i cover.mp4 -i video.mp4 -c copy out.mp4

制作一段在整个曲目持续时间内带有固定封面图像的视频,但音频会在 15 秒后开始播放。

echo file cover.mp4  >out.lst
echo file video.mp4 >>out.lst
ffmpeg -f concat -safe 0 -i out.lst -c copy out.mp4

产生混乱的视频(我看到了“正确的” I 帧,但此后图像立即变得混乱:全是绿色并有一些“差异噪音”);音频正常。

ffmpeg -i cover.mp4 -i video.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=2:v=1:a=1 [vv] [aa]" -map "[vv]" -map "[aa]" out.mp4

抱怨缺少音频流cover.mp4,我无法找到正确的咒语来跳过它。

我错过了什么?

相关内容