问题描述
我想合并 2 个视频,假设它们之间是相互编辑的
i want to combine 2 videos assume even they are edited among themselves
我们平时是怎么做的
视频 1:
ffmpeg -i 1.mp4 -filter:a "volume=0.0" test1.mp4
视频 2:
ffmpeg -i 2.mp4 -filter:a "volume=10.0" test2.mp4
现在我可以将它们组合使用
now i can combine them using
ffmpeg -i test1.mp4 -i test2.mp4 -filter_complex [0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa] -map [outv] -map [outa] out.put.mp4
所以我的问题是,有没有办法将这 3 步流程变成 1 步,并且不保存第 1 步和第 2 步的文件
so my question is, is there a way to make this 3 steps process into 1 step and without saving files of step 1 and step 2
我知道我们可以使用 &&但我的主要查询是有一种方法可以不保存编辑文件的 video1 和 video2 文件
i do know that we can combine into one using && but my main query is there a way to do without saving the files of video1 and video2 that edited files
希望我的查询有点清楚
问题已编辑/添加:
ffmpeg -i test.mp4 -filter:a "volume=8.0,atempo=4.0" -vf "transpose=2,transpose=2,setpts=1/4*pts" -s 640x480 test.mkv
我们能否在合并命令中也执行所有这些选项(更改视频速度、分辨率、旋转、帧率和修剪等操作)?
can we do all these options also in the merge command(operations like change video speed, resolution, rotation, framerate, and trim)?
推荐答案
在将音频流馈送到 concat 之前应用音量过滤器.
apply the volume filters before feeding the audio streams to concat.
ffmpeg -i test1.mp4 -i test2.mp4 -filter_complex "[0:a:0]volume=0.0[a0];[1:a:0]volume=10.0[a1];[0:v:0][a0][1:v:0][a1]concat=n=2:v=1:a=1[outv][outa]"-map [outv] -map [outa] output.mp4