ffmpeg filter_complex 修剪不同步

时间:2021-01-27 07:38:27

标签: ffmpeg

命令行:

ffmpeg -i <INPUT> -filter-complex "<FILTER_COMPLEX>" -map "[ofa]" -map "[ofv]" -acodec aac -vcodec libx264 test.mp4

FILTER_COMPLEX 内容:

[0:v]split=3[sv1][sv2][sv3];
[0:a]asplit=3[sa1][sa2][sa3];
[sv1]trim=start=200:duration=5,setpts=PTS-STARTPTS[ov1];[sa1]atrim=start=200:duration=5[oa1];
[sv2]trim=start=300:duration=5,setpts=PTS-STARTPTS[ov2];[sa2]atrim=start=300:duration=5[oa2];
[sv3]trim=start=400:duration=5,setpts=PTS-STARTPTS[ov3];[sa3]atrim=start=400:duration=5[oa3];
[ov1][ov2][ov3]concat=n=3:v=1:a=0[ofv];
[oa1][oa2][oa3]concat=n=3:v=0:a=1[ofa]

导致输出视频声音不同步,视频重定向到00:00:00,但声音保持在原来的时间位置。

因此,如何使用ffmpeg截取一段视频中的多个片段,重新组合成一个新的视频文件,并保持声画同步。


我尝试使用 [sa1]atrim=start=200:duration=5,setpts=PTS-STARTPTS[oa1] 但出现错误:

Media type mismatch between the 'Parsed_atrim_4' filter output pad 0 (audio) and the 'Parsed_setpts_5' filter input pad 0 (video)

Cannot create the link atrim:0 -> setpts:0
Error initializing complex filters.
Invalid argument

0 个答案:

没有答案