首页 > 解决方案 > 如何使用 ffmpeg Android 合并两个视频

问题描述

我有两个要合并的视频。两者具有相同的分辨率。第二个视频没有任何音频

ffmpeg -i test.mp4 -i picture.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] concat=n=1:v=2:a=1 [v] [a]" -map "[vv]" -map "[aa]" 合并视频.mp4

这是我正在使用的命令,但我在 filtergraph 描述 [0:v] [0:a] [1:v] [1:a] concat=n=2 中收到以下错误 Stream specifier ':a': v=2:a=1 [v] [a] 不匹配任何流。

我对 ffmpeg 命令不是很熟悉,但我想我给出了一些错误的过滤器复杂值

标签: javavideoffmpegcommand-lineandroid-ffmpeg

解决方案


缺少音频

  • picture.mp4没有音频。
  • 您不能将带音频的输入与不带音频的输入连接起来。
  • 解决方案是使用anullsrc 过滤器添加静音/虚拟/填充音频。或添加音频文件。

例子

ffmpeg -i test.mp4 -i picture.mp4 -t 0.1 -f lavfi -i anullsrc -filter_complex "[0:v] [0:a] [1:v] [2:a] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" mergedVideo.mp4

其他问题

  • 在您的第一个命令中,您告诉 concat 过滤器您有 1 组段 ( n=1) 而不是 2 ( n=2)。请参阅concat 过滤器文档
  • 您告诉 concat 过滤器您有 2 个视频输出 ( v=2) 而不是 1 ( v=1)。请参阅concat 过滤器文档
  • 您的-map标签指的是不存在的标签。请参阅FFmpeg 维基:地图
  • 可能还有其他问题需要解决,但您没有包含完整的日志。

推荐阅读