
我想用 FFmpeg 從視頻中製作一個剪輯,每m
分鐘 2 秒的視頻,其中
m = video_length / 5
例如,我有一個 10 分鐘長的影片。影片剪輯的總長度為 10 秒(5 段 x 2 秒),由以下影片時間戳記範圍組成:
00:00 - 00:02
02:00 - 02:02
04:00 - 04:02
06:00 - 06:02
08:00 - 08:02
這將從影片中生成一種預告片。
我知道我可以透過段來實現這一點,但無法弄清楚整個過程。
答案1
您可以使用選擇過濾器一次完成此操作
ffmpeg -i in.mp4
-vf select='lt(mod(t,120),2)',setpts=N/FRAME_RATE/TB
-af aselect='lt(mod(t,120),2)',asetpts=N/SR/TB
out.mp4
答案2
我知道一個方法,你可以用可能使用。不過,有點亂。
使用如下命令提取剪輯:
ffmpeg -i -ss <time to start> -t <duration> <output clip filename>
您要做的就是使用這種格式提取剪輯,其中-ss
是剪輯的開始位置,-t
是剪輯的持續時間。提取這些內容後,您可以將它們連接在一起:
ffmpeg -i concat:"clip_file1|clip_file2|clip_file3" -c copy <your output file>
請注意,這種形式的串聯並不適用於所有影片格式,您可能需要添加一些其他參數,例如-bsf:a aac_adtstoasc
MP4 檔案。但這應該能讓你得到你想要的影片。