java - 如何使用 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 命令不是很熟悉,但我想我给出了一些错误的过滤器复杂值
解决方案
缺少音频
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
保持
-t 0.1
原样。concat 过滤器将填充其余的音频以匹配相应的视频。有关更多示例,请参阅如何在具有不同属性的 ffmpeg 中连接视频?
其他问题
- 在您的第一个命令中,您告诉 concat 过滤器您有 1 组段 (
n=1
) 而不是 2 (n=2
)。请参阅concat 过滤器文档。 - 您告诉 concat 过滤器您有 2 个视频输出 (
v=2
) 而不是 1 (v=1
)。请参阅concat 过滤器文档。 - 您的
-map
标签指的是不存在的标签。请参阅FFmpeg 维基:地图。 - 可能还有其他问题需要解决,但您没有包含完整的日志。
推荐阅读
- python - 如何修复 concurrent.futures 线程中的“TypeError:'int' object is not iterable”错误?
- jquery - 在 Rails 中将数据从循环传递到部分点击
- reactjs - 如何更改剑道反应中详细信息行的详细信息展开/折叠列的标题?
- c - 宏扩展期间出现意外的语法错误
- reactjs - history.push 仅在 react 应用程序中使用 BrowserRouter 时更新 URL
- excel - 从excel vba中的宏正确调用单元格公式
- intel-pin - 查找检测系统调用的调用站点
- c# - 在嵌套类中,如何控制重复信息不记录在表中
- reactjs - 更改样式组件的脚本注入顺序
- python - 有没有办法在关闭或退出 Django 项目时删除目录内容?