如何使用ffmpeg將ts檔案合併成mp4?

如何使用ffmpeg將ts檔案合併成mp4?

由於網速太慢,無法觀看高清,所以我下載了很多串流媒體。當我下載串流時,我找到指向 TS 檔案的 .m3u8 檔案。然後我使用以下命令:

ffmpeg -i stream.m3u8 vid.mp4

這有效。但這需要很長時間,因為它基本上重新編碼了所有內容,即使它已經是正確的格式。為了避免重新編碼,我可以使用以下命令:

ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4

當我從頭到尾不間斷地玩時,這效果很好。但是當我向後或向前跳時,vlc 無法創建圖像。有幾秒鐘無法正常顯示。這很煩人。

我的問題:如何在不完全重新編碼的情況下創建視頻,但在任何時候都具有良好的 vlc 渲染?

答案1

您要求 ffmpeg 將檔案編碼為 mp4,而不是將它們加入到單一串流中。你需要連接temp.ts然後將其轉換.mp4-codec copy

另外,我相信你需要在第二步轉換adts為.aac-bsf:a aac_adtstoasc

答案2

如果您不重新編碼,您可能無法更改影片的關鍵影格等,從而導致您描述的行為。

不過你可以嘗試類似的方法:

ffmpeg -i stream.m3u8 -codec:v "libx264" "-preset" "ultrafast" output.mp4

請記住,你在速度上獲得的東西會失去質量,所以“快”可能會更好...

答案3

查看我的 ffmpeg 變體 mp4連接器

螢幕截圖

相關內容