我做了这样的事情
ffmpeg -i video1.mp4 -ss 00:01:00 -to 00:03:00 -i video2.mp4 -ss 00:05:00 -to 00:02:00 -c copy cut.mp4
Run Code Online (Sandbox Code Playgroud)
显然混合没有发生。
我怎样才能让它发挥作用?
您必须告诉ffmpeg您要连接每个视频和音频流:
ffmpeg -i video1.mp4 -i video2.mp4 -filter_complex
"[0:v]trim=start=60:end=180,setpts=PTS-STARTPTS[v0];
[0:a]atrim=start=60:end=180,asetpts=PTS-STARTPTS[a0];
[1:v]trim=start=300:end=420,setpts=PTS-STARTPTS[v1];
[1:a]atrim=start=300:end=420,asetpts=PTS-STARTPTS[a1];
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]"
-map "[v]" -map "[a]" output.mp4
Run Code Online (Sandbox Code Playgroud)
(a)trim创建每个段,(a)setpts重置段时间戳(推荐用于concat),然后concat连接每个段。有关每个过滤器的文档,请参阅FFmpeg 过滤器。
为了便于阅读,我将命令分成单独的行。重新组成一行或添加适合您环境的任何换行符。
这将重新编码视频,但剪切将是准确的。如果您想避免重新编码,请参阅连接解复用器,但剪切可能不准确,结果可能不令人满意。
该-to值不能小于该-ss值,因此我假设您的意思是-ss 00:05:00 -to 00:07:00而不是-ss 00:05:00 -to 00:02:00.
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |