哪裏有可以拍攝視頻文件(avi,mkv和mp4)的cli應用程序,並能以精確的時間精度剪出非常短的剪輯(2-6秒)?我已經嘗試過ffmpeg,mencoder,avidemux和mp4box,但是他們都在關鍵幀上創建了6個以上的剪輯。有沒有一個工具重新編碼(re-encode)輸入文件剪切準確的時間或剪切不準確,re-encode,然後準確切割?
最佳解決辦法
使用ffmpeg
剪切視頻
您可以使用FFmpeg準確剪切視頻。從2.5版開始,這非常簡單。例如:從0分鍾,3秒和123毫秒開始減少10秒。
ffmpeg -ss 00:00:03.123 -i input.mp4 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4
位置和時間可以是以秒或以hh:mm:ss[.xxx]
形式。
請注意,在這些示例中,使用x264和aac編碼器的視頻和音頻將re-encoded。
您也可以使用-to
而不是-t
來指定結束點而不是持續時間。但是,在這種情況下,-to
等同於-t
,因為通過將-ss
置於-i
之前,ffmpeg將首先尋找該點,然後開始輸出。
另請參閱Seeking維基條目。
準確切割,舊版ffmpeg
版本
如果你有一個舊版本的ffmpeg,那麽為了準確搜索,你需要把-ss
放在-i
之後,這會使編碼過程慢一點,因為整個視頻必須首先被解碼:
ffmpeg -i input.mp4 -ss 00:00:03.123 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4
在這裏,-to
和-t
的行為有所不同。 -t 10
將創建一個十秒的長剪輯,而-to 10
將創建一個七秒長的剪輯。
流複製與重編碼re-encoding
您也可以嘗試使用-c:a copy
複製音頻流。複製視頻流可以用-c:v copy
完成。但它可能無法正常工作,因為您隻能剪切一個視頻關鍵幀,而這種關鍵幀並不經常出現。無論如何,如果您複製視頻流,可能會導致剪切不準確。