ffmpeg 視頻截取-合并
ffmpeg 截取視頻
ffmpeg -i ~/1.mp4 -c copy -ss 00:00:00 -t 00:21:00 out.mp4
截取從00:00:00 開始 持續時間21分鐘的視頻
時間被指定為HH:MM:SS.MILLISECONDS。例如,您可以告訴 FFmpeg 尋找01:02:03——即電影 1 小時的第 2 分鐘的第 3 秒!
-t范圍
您可以使用參數指定所需剪輯的持續時間-t。例如,-ss 40 -t 10指示 FFmpeg 從第 40 秒開始提取 10 秒的視頻。
-to范圍
您可以使用參數指定結束時間-to。例如,-ss 40 -to 70指示 FFmpeg 從第 40 秒到第 70 秒提取 30 秒的視頻。
注意:如果你同時使用 -t 和 -to,那么只有-t將被使用。
如果將-ss放在“-i 源文件名”后面則-to的作用就沒了,跟-t一樣的效果了,變成了截取多長視頻。一定要注意-ss的位置。
ffmpeg 合并視頻
使用filelist.txt方式
ffmpeg -f concat -i filelist.txt -c copy output.mp4
/*
filelist.txt格式內容:
file '01.mp4'
file '02.mp4'
*/
查看視頻的信息
mediainfo 01.MP4
使用 ffprobe 測試輸入文件(可以查看視頻的幀率/時間基tbn):
ffprobe -hide_banner 02.mp4
舉例:
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 546 kb/s, 25 fps, 25 tbr, 25k tbn (default)
更改文件的時基
ffmpeg -i 01.mp4 -video_track_timescale 25000 01_fixed.mp4
ffmpeg 連接視頻文件音視頻不同步
1.查看幀率是否相同
2.檢測時間基tbn是否一致(不一致改為一致)
視頻合并處卡頓
ffmpeg 為了加速,會使用關鍵幀技術,(再視頻剪輯處丟失關鍵幀。所以造成視頻合并處卡頓) 所以有時剪切出來的結果在起止時間上未必準確。 通常來說,把 -ss 選項放在 -i 之前,會使用關鍵幀技術; 把 -ss 選項放在 -i 之后,則不使用關鍵幀技術。 如果要使用關鍵幀技術又要保留時間戳,可以加上 -copyts 選項:
ffmpeg -ss 00:00:01 -i input.mp4 -to 00:16:00 -vcodec copy -acodec copy -y out.mp4
視頻指定時間段加馬賽克
ffmpeg -i source.mp4 -filter_complex "crop=230:180:640:270, boxblur=10:enable='between(t,10,20)'[blurLogo1]; [v:0] [blurLogo1]overlay=640:270" -c:a copy -y output.mp4
https://gsyan888.blogspot.com/2017/05/ffmpeg-timeline-editing.html (優質)
https://blog.csdn.net/yinshipin007/article/details/126125684
https://blog.csdn.net/ternence_hsu/article/details/103877455
參考
https://qa.1r1g.com/sf/ask/2218436041/
https://blog.csdn.net/qq_48329942/article/details/127389611
浙公網安備 33010602011771號