gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:07:33 24 4
gpt4 key购买 nike

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

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 Number 获取时间?和 fps ?
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

最佳答案

trim filter documentation所示使用 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,并且您希望 trim 包含第 25-100 帧,则 atrim 将使用 atrim=1:4 .
您可以使用 ffprobe获取 frame ratecheck if an input has audio .

关于video - 如何通过多个帧号修剪视频然后使用 FFMPEG 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63656881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com