繁体   English   中英

如何通过多个帧号修剪视频然后使用 FFMPEG 连接

[英]How to trim video by multiple frame numbers then concatenate using FFMPEG

使用以下代码,我可以按时间修剪视频:

ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=60:65,setpts=PTS-STARTPTS[v0]; \
 [0:a]atrim=60:65,asetpts=PTS-STARTPTS[a0]; \
 [0:v]trim=120:125,setpts=PTS-STARTPTS[v1];
 [0:a]atrim=120:125,asetpts=PTS-STARTPTS[a1]; \
 [v0][a0][v1][a1]concat=n=2:v=1:a=1[out]" \
-map "[out]" output.mp4

上面的代码从 60-65 秒和 120-125 秒修剪视频,然后连接到 output.mp4 文件中。

需要知道如何使用frame number和连接来修剪视频。


是否可以使用Frame Numberfps来获取时间?

frame_1_start = 100 #Frame Number
frame_1_end   = 200 #Frame Number
frame_2_start = 450 #Frame Number
frame_3_end   = 700 #Frame Number
fps = 20 # Frame per second

time_x_1 = frame_1_start/fps
time_x_2 = frame_1_end/fps
time_y_1 = frame_2_start/fps
time_y_2 = frame_2_end/fps

ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=#{time_x_1}:#{time_x_2},setpts=PTS-STARTPTS[v0]; \
 [0:a]atrim=#{time_x_1}:#{time_x_2},asetpts=PTS-STARTPTS[a0]; \
 [0:v]trim=#{time_y_1}:#{time_y_2},setpts=PTS-STARTPTS[v1];
 [0:a]atrim=#{time_y_1}:#{time_y_2},asetpts=PTS-STARTPTS[a1]; \
 [v0][a0][v1][a1]concat=n=2:v=1:a=1[out]" \
-map "[out]" output.mp4

修剪过滤器文档中所示,使用start_frameend_frame选项。

仅视频

ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=start_frame=25:end_frame=100,setpts=PTS-STARTPTS[v0]; \
 [0:v]trim=start_frame=200:end_frame=300,setpts=PTS-STARTPTS[v1];
 [v0][v1]concat=n=2:v=1:a=0[v]" \
-map "[v]" output.mp4

视频和音频

ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=start_frame=25:end_frame=100,setpts=PTS-STARTPTS[v0]; \
 [0:a]atrim=1:4,asetpts=PTS-STARTPTS[a0]; \
 [0:v]trim=start_frame=200:end_frame=300,setpts=PTS-STARTPTS[v1];
 [0:a]atrim=8:12,asetpts=PTS-STARTPTS[a1]; \
 [v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4

对于atrim ,您可以像在原始命令中那样使用时间戳,或者如果您更喜欢使用音频样本,则可以使用start_sampleend_sample atrim 没有start_frameend_frame

例如,如果帧速率为 25,并且您希望修剪包括 25-100 帧,则 atrim 将使用atrim=1:4

您可以使用ffprobe获取帧速率检查输入是否有音频

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM