ffmpeg - 如何使用音频和视频流创建马赛克视频:FFMPEG?
问题描述
我使用以下行创建了一个马赛克视频输出,其中有四个视频,每个视频都从特定的位置和时间开始。以下是我使用的代码行
ffmpeg -i lead_1.mp4 -i lead_2.mp4 -i lead_3.mp4 -i lead_4.mp4
-filter_complex
"color=s=1280x720:c=black [base];
[0:v] setpts=PTS-STARTPTS, scale= 640x360 [upperleft1];
[1:v] setpts=PTS+35/TB, scale=640x360 [lowerright1];
[2:v] setpts=PTS+87/TB, scale=640x360 [upperleft2];
[3:v] setpts=PTS+183/TB, scale=640x360 [lowerright2];
[base][upperleft1] overlay=1 [tmp1];
[tmp1][lowerright1] overlay=1:x=640:y=360 [tmp2];
[tmp2] [upperleft2] overlay=1 [tmp3];
[tmp3][lowerright2] overlay=1:x=640:y=360"
-c:v libx264 lead_1_2_3_4.mp4
所以输出文件不包含所有视频的音频流。我是 FFMPEG 的新手,所以有人可以建议我如何获得输出中所有输入文件的音频流?
解决方案
ffmpeg -i lead_1.mp4 -i lead_2.mp4 -i lead_3.mp4 -i lead_4.mp4
-filter_complex
"color=s=1280x720:c=black [base];
[0:v] setpts=PTS-STARTPTS, scale= 640x360 [upperleft1];
[1:v] setpts=PTS+35/TB, scale=640x360 [lowerright1];
[2:v] setpts=PTS+87/TB, scale=640x360 [upperleft2];
[3:v] setpts=PTS+183/TB, scale=640x360 [lowerright2];
[base][upperleft1] overlay[tmp1];
[tmp1][lowerright1] overlay=x=overlay_w:y=overlay_h [tmp2];
[tmp2] [upperleft2] overlay [tmp3];
[tmp3][lowerright2] overlay=x=overlay_w:y=overlay_h[v];
[1]adelay=35s:all=1[a1];
[2]adelay=87s:all=1[a2];
[3]adelay=183s:all=1[a3];
[0:a][a1][a2][a3]amix=inputs=4[a]"
-map "[v]" -map "[a]"
-c:v libx264 lead_1_2_3_4.mp4
如果你ffmpeg
是旧的使用adelay=35000|35000
(假设立体声输入)。
推荐阅读
- kubernetes - 一个 Kubernetes 集群可以处理多少个 CR(自定义资源)?
- sql-server - 最大长度为 128。“+”附近的语法不正确
- html - 如何保护我的 html 网站不被 http web 复制器复制?
- php - 我如何在不同的端口服务 laravel 7
- python - 在 Pandas 中,如何将日期索引移动到下一个日历日期
- javascript - 如何引用由 EKS 的容器洞察创建的 CloudWatch 指标?
- java - 如何在 KeyCloak 中分配复合角色
- python - 如何在 macOS Big Sur 上的 Python 2.7 中安装 pip?
- javascript - 从源文件夹中获取图像 (PNG) 文件并使用 Javascript 对其进行压缩,然后下载 zip 文件。(客户端)
- c++ - 在 Visual Studio 2017 上找不到信号量标头