![[ffmpeg]當使用 -codec copy 尋求值較小時,輸入尋求似乎會導致輸出檔案的持續時間不正確](https://rvso.com/image/1585854/%5Bffmpeg%5D%E7%95%B6%E4%BD%BF%E7%94%A8%20-codec%20copy%20%E5%B0%8B%E6%B1%82%E5%80%BC%E8%BC%83%E5%B0%8F%E6%99%82%EF%BC%8C%E8%BC%B8%E5%85%A5%E5%B0%8B%E6%B1%82%E4%BC%BC%E4%B9%8E%E6%9C%83%E5%B0%8E%E8%87%B4%E8%BC%B8%E5%87%BA%E6%AA%94%E6%A1%88%E7%9A%84%E6%8C%81%E7%BA%8C%E6%99%82%E9%96%93%E4%B8%8D%E6%AD%A3%E7%A2%BA.png)
我試圖從一些 mp4 檔案的開頭刪除幾秒鐘而不重新編碼。起初,我使用輸出查找,即
E:\>ffmpeg -i input.mp4 -ss 00:00:05 -t 00:01:00 -c copy output.mp4
然而,它導致輸出文件開頭凍結幀幾秒鐘(我猜這與尋找關鍵幀有關,所以我嘗試添加標誌 -copyinkf,但沒有幫助),因此我嘗試使用輸入搜索,即
E:\>ffmpeg -ss 00:00:05 -i input.mp4 -t 00:01:00 -c copy output.mp4
產生的輸出檔案令人興奮,除了輸出檔案的持續時間資訊與實際值不同之外,一開始播放流暢且準確。上述命令應該產生一個持續時間為 00:01:00 的視訊檔案。但是我得到了一個持續時間為 00:01:05 的文件,其中包含 00:01:00 長影片。我也嘗試過更大的尋求價值,結果很好。
E:\>ffmpeg -ss 00:00:10 -i input.mp4 -t 00:01:00 -c copy output10.mp4
E:\>ffmpeg -ss 00:00:15 -i input.mp4 -t 00:01:00 -c copy output15.mp4
我不知道為什麼它們之間會有差異,希望有人可以幫助我。我會感謝你的幫助。
筆記:
- ffmpeg 版本 N-93439-gb073fb9eea,我嘗試了一些舊版本並產生了相同的輸出。
- 輸入檔案的視訊和音訊編解碼器分別為avc和aac。