1 使用ffmpeg将两个视频拼接成一左一右或者一上一下的视频
将两个视频拼接成一左一右的视频
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2" output.mp4
将两个视频拼接成一上一下的视频
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v][1:v]vstack=inputs=2" output.mp4
其中:
- -i:表示输入视频;
- -filter_complex "[0:v][1:v]hstack=inputs=2" 定义了一个复杂的过滤器链,其中 [0:v] 表示第一个输入的视频流,[1:v] 表示第二个输入的视频流,而 hstack=inputs=2 则表示水平排列这两个视频流,vstack=inputs=2则表示垂直排列视频;
- output.mp4 是输出文件名;
如果有一个相同内容的视频,但是这个视频有两个不同帧率的视频,比如说30fps或者60fps,这种情况直接使用上述的命令会出现问题,我们首先需要将其中一个视频的帧率调整到与另外一个视频相同,然后两个视频保持相同的分辨率,具体的命令如下
将两个不同帧率的视频拼接成一左一右的视频
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v]scale=3840:2160,fps=fps=100[left];[1:v]scale=3840:2160,fps=fps=100[right];[left][right]hstack=inputs=2" output_video.mp4
将两个不同帧率的视频拼接成一上一下的视频
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex "[0:v]scale=3840:2160,fps=fps=100[top];[1:v]scale=3840:2160,fps=fps=100[bottom];[top][bottom]vstack=inputs=2" output_video.mp4
其中:
-
-i:表示输入视频;
-
scale=3840:2160表示设置输入视频的分辨率为3840x2160
-
fps=fps=30 表示设置输入视频的帧率为30fps
-
其他的与上述保持一致
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:ffmpeg将两个视频拼接成一左一右或者一上一下的视频
原文链接:https://www.stubbornhuang.com/3119/
发布于:2025年01月13日 19:39:45
修改于:2025年01月13日 19:39:45
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52