登录后更精彩...O(∩_∩)O...
您需要 登录 才可以下载或查看,没有账号?立即注册
×
使用FFmpeg命令合并音视频
1.合并音频和视频
[Bash shell] 纯文本查看 复制代码 ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -bsf:a aac_adtstoasc output.mp4
如果视频中已经包含了音频,替换视频中的音频,使用下面命令行
[Bash shell] 纯文本查看 复制代码 ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -bsf:a aac_adtstoascmap 0:v:0 -map 1:a:0 output.mp4
2.横向合并视频
[Bash shell] 纯文本查看 复制代码 ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4
上面的命令虽然可以合并视频,两个视频可以正常播放,但是只保留了
input1.mp4的音频。input1和input2必须同样的高度,如果不一样的高度可以使用-shortest参数来保证同样的高度。
合并多个视频,可以使用下面命令行:
[Bash shell] 纯文本查看 复制代码 ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4
其中input=3表示希望合并的视频的个数
3.纵向合并视频
[Bash shell] 纯文本查看 复制代码 ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4
4.网格合并视频
当多个视频时,还可以合并成网格状,比如2x2,3x3这种。但是视频个数不一定需要是偶数,如果是奇数,可以用黑色图片来占位。
[Bash shell] 纯文本查看 复制代码 ffmpeg -f lavfi -i color=c=black:s=1280x720 -vframes 1 black.png
该命令将创建一张1280*720的图片
然后就可以使用下面这个命令来合并成网格视频了,如果只有三个视频,可以选择上面创建的黑色图片替代。
[Bash shell] 纯文本查看 复制代码 ffmpeg -i top_left.mp4 -i top_right.mp4 -i bottom_left.mp4 -i bottom_right.mp4 \ -lavfi "[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack" -shortest 2by2grid.mp4
上面创建的是正规的2x2网格视频。想象一下,现在只有三个视频,我想把第一个视频摆放在第一行的中间,然后把第二、三个视频摆放在第二行。那么就可以使用下面两个命令了。
[Bash shell] 纯文本查看 复制代码 ffmpeg -f lavfi -i color=c=black:s=640x720 -vframes 1 black.png ffmpeg -i black.png -i top_center.mp4 -i bottom_left.mp4 -i bottom_right.mp4 -lavfi "[0:v][1:v][0:v]hstack=inputs=3[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack" -shortest 3_videos_2x2_grid.mp4
————————————————
版权声明:本文为CSDN博主「流星雨的飞翔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33349051/article/details/104061448
|