如何刪除 FFmpeg 中影片的特定部分而不重新編碼?

如何刪除 FFmpeg 中影片的特定部分而不重新編碼?

我能夠找到這個線程從文件中剪切特定部分。它不是很有用,因為我想做完全相反的事情,即刪除影片的選定部分。

該用戶的無需重新編碼即可提取零件的解決方案效果很好。我可以做類似的事情來刪除選擇部分嗎?

我更喜歡不必重新編碼,但無論如何我都很好,所以任何解決方案都可以。

答案1

使用 as 編解碼器的“複製”選項 -c:v copy -c:a copy 提取所需的部分

假設您有一個 6 分鐘的視頻,並且您不想要 2-3 分鐘和 4-5 分鐘的部分:

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

為您提取的檔案建立一個文字檔案 (filelist.txt)

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

然後用這樣的東西把它們連在一起

ffmpeg -safe 0 -f concat -i filelist.txt -c 複製輸出.mp4

output.mp4 不應包含您不需要的部分。

相關內容