【音视频处理】使用ffmpeg实现多个视频合成一个视频(按宫格视图)

先上结果

环境

硬件:通用PC

系统:Windows 测试有效

软件:ffmpeg

解决

0、命令

shell 复制代码
ffmpeg.exe -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex  "[0:v]scale=iw/2:ih/2,pad=2*iw:2*ih[a]; [1:v]scale=iw/2:ih/2[b]; [2:v]scale=iw/2:ih/2[c];  [3:v]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h[v];[0:a][1:a][2:a][3:a]amix=inputs=4[a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac output.mp4

1、参数说明

  1. -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4:这些是输入文件的参数,指定了四个视频文件作为输入。为了简单我这里采用一个视频复制4份使用。
  2. -filter_complex:这个参数用来指定一个复杂的过滤器图,用于处理和组合视频和音频流。

    0:v\]scale=iw/2:ih/2,pad=2*iw:2* ih\[a\];:这个过滤器首先将第一个视频流(\[0:v\])的大小缩小到原来的一半(scale=iw/2:ih/2),然后使用pad过滤器将视频画面扩大到原始宽度的两倍和原始高度的两倍,准备放置其他视频。结果标记为\[a\]。 \[1:v\]scale=iw/2:ih/2\[b\]; \[2:v\]scale=iw/2:ih/2\[c\]; \[3:v\]scale=iw/2:ih/2\[d\];:这些过滤器将其他三个视频流的大小也缩小到原来的一半,并分别标记为\[b\]、\[c\]、\[d\]。 \[a\]\[b\]overlay=w\[x\];:这个过滤器将视频\[b\]覆盖到视频\[a\]上,位置为宽度w的位置,即右上角,结果标记为\[x\]。 \[x\]\[c\]overlay=0:h\[y\];:将视频\[c\]覆盖到\[x\]上,位置为高度h的位置,即左下角,结果标记为\[y\]。 \[y\]\[d\]overlay=w:h\[v\];:将视频\[d\]覆盖到\[y\]上,位置为宽度w和高度h的位置,即右下角,最终的视频流标记为\[v\]。

  3. -map "[v]" -map "[a]":这些参数指定了要从过滤器图中映射到输出文件的流。"[v]"是最终的视频流,"[a]"是混合后的音频流。
  4. -c:v libx264 -c:a aac:这些参数指定了视频和音频的编码器。视频使用libx264编码器,音频使用aac编码器。
  5. output.mp4:这是输出文件的名称。

OK!

至此,问题解决。欢迎留言交流

相关推荐
却道天凉_好个秋1 分钟前
音视频学习(八十三):视频压缩:MJPEG技术
学习·音视频·mjpeg·视频压缩
qianbo_insist1 分钟前
基于图像尺寸的相机内参拼接视频
数码相机·音视频·拼接
水中加点糖31 分钟前
RagFlow实现多模态搜索(文、图、视频)与(关键字/相似度)搜索原理(二)
python·ai·音视频·knn·ragflow·多模态搜索·相似度搜索
小Tomkk31 分钟前
⭐️ StarRocks Web 使用介绍与实战指南
前端·ffmpeg
却道天凉_好个秋34 分钟前
音视频学习(八十二):mp4v
学习·音视频·mp4v
winfredzhang1 小时前
从零构建:基于 Node.js 的全栈视频资料管理系统开发实录
css·node.js·html·音视频·js·收藏,搜索,缩略图
行业探路者14 小时前
二维码标签是什么?主要有线上生成二维码和文件生成二维码功能吗?
学习·音视频·语音识别·二维码·设备巡检
Android系统攻城狮19 小时前
Android16音频之获取Record状态AudioRecord.getState:用法实例(一百七十七)
音视频·android16·音频进阶
liefyuan19 小时前
【RV1106】rkipc:分析(一)
音视频
aqi0021 小时前
FFmpeg开发笔记(九十八)基于FFmpeg的跨平台图形用户界面LosslessCut
android·ffmpeg·kotlin·音视频·直播·流媒体