鍍金池/ 問答/網絡安全/ 如何解決ffmpeg剪切出的視頻時長不正確?

如何解決ffmpeg剪切出的視頻時長不正確?

假設 input.mkv 總時長為35分鐘,用以下命令剪切出的視頻時長正確,為10分鐘:

ffmpeg -ss 00:10:00 -to 00:20:00 -accurate_seek -i input.mkv -codec copy -avoid_negative_ts 1 -y output.mkv

用以下命令截取的視頻剪切出的視頻時長錯誤為15分鐘,即 總時長(35分鐘) 減去 -to(第20分鐘)所得的時長:

ffmpeg -ss 00:10:00 -to 00:20:00 -accurate_seek -i input.mkv -vcodec libx264 -acodec aac -y output.mp4

多方搜索未果,求助!

回答
編輯回答
墨染殤

建議詳細閱讀ffmpeg的seeking部分文檔: https://trac.ffmpeg.org/wiki/...

參數位置不同含義完全不一樣,另外轉碼壓制和copy不轉碼方式也完全不同。還有就是大部分mkv通常使用H.264編碼,如果確定mkv的視頻流是H.264的話,完全不需要再調用libx264進行二壓,直接-c copy cut.mp4就完事了

回到你的問題上,因為你把-ss參數的位置擺錯了,詳細解釋請參考Note部分文檔: https://trac.ffmpeg.org/wiki/...

盡管大部分命令參數位置和結果無關,但是ffmpeg的參數大部分是跟位置相關的

2017年8月16日 10:44
編輯回答
夏木
ffmpeg -ss 00:09:50 -i input.mkv -ss 00:10:00 -to 00:20:00 -copyts -codec copy -avoid_negative_ts 1 -y output.mkv

應當在-i的前后加-ss參數

2017年7月12日 13:44