ffmpeg - 如何使用 FFMPEG 连接两个视频(一个没有音频,一个有音频)
问题描述
ffmpeg -i video1.avi -i video2.avi -filter complex “[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v =1:a=1 [v] [a]” -map “[v]” -map “[a]” output_video.avi
video1.avi ---> 这个视频没有音频流,只有视频流 video2.avi ---> 有视频和音频流
[错误]
filtergraph 描述中的流说明符 ':a:0' [0:v] [0:a:0] [1:v] [1:a:0] concat=n=2:v=1:a=1 [v ] [a] 不匹配任何流。
如何连接这两个视频?
使用下面的命令,可以把这两个视频集中起来,但是输出的视频没有音频,这个问题怎么解决?
ffmpeg.exe -i video1.avi -y 1.ts
ffmpeg.exe -i video2.avi -y 2.ts
ffmpeg.exe -i concat:1.ts|2.ts -f output.mp4
解决方案
我使用 Laravel,这段代码对我有用:
无音频:
exec("ffmpeg -i " . $URLVIDEO1 . " -i " . $URLVIDEO2 . " -filter_complex \"[0:v:0] [1:v:0] concat=n=2:v=1 [v]\" -map \"[v]\" " . $URLVIDEOFINAL);
带音频:
exec("ffmpeg -i " . $URLVIDEO1 . " -i " . $URLVIDEO2 . " -filter_complex \"[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]\" -map \"[v]\" -map \"[a]\" " . $URLVIDEOFINAL);
显然,原始变量不是这样命名的。我希望我能帮助你
推荐阅读
- java - 带有 Java GUI Swing 的游戏板
- python - 找到的节点离我的纬度、经度坐标太远(osmnx)
- r - 如何通过粘贴为对象分配名称
- asp.net - 关于使用 Angular JS 的开发人员的系统管理员视角
- google-maps-api-3 - 仅用于开发目的的错误地图加载
- java - Tomcat中使用springboot App的rest api路径问题
- javascript - 如何将从服务器接收到的数组分配给 javascript 数组?
- python - 用于向潜在客户插入新记录的 API (ODOO 12)
- jquery - jquery在嵌套的孩子中设置了一个fontawesome图标的css类
- python - 带有 MVar 的 Gurobi addConstr:索引 0 超出属性“X”的范围