由於網速太慢,無法觀看高清,所以我下載了很多串流媒體。當我下載串流時,我找到指向 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連接器