2015-09-23 53 views
2

我的Web服務獲取的.ts文件塊從M3U8文件並創建一個單一的.ts file.Now我想通過如何通過編程將.ts文件轉換爲高質量的mp4格式?

上播放web.For這個文件,我使用Ubuntu的avconv的效用avconv -i source.ts -acodec複製-vcodec副本destination.mp4

但是我沒有得到一個很好的「可玩」 MP4 everytime.Sometimes它只是音頻和視頻stucks之間。它也顯示錯誤的持續時間標籤。

是否有.TS轉換成MP4或更好的進入WEBM format.My要求什麼好的辦法就是在播放網頁中...

在此先感謝

回答

1

首先確認您輸入的文件就OK ,因爲GIGO(垃圾進,垃圾出)。

HLS可以使用自適應流式傳輸,因此請檢查您的m3u8是否爲變體播放列表。例如:

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000 
http://example.com/low.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000 
http://example.com/mid.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000 
http://example.com/hi.m3u8 

這是必要的,因爲流可能會根據您的網絡條件切換到不同的質量。如果可用帶寬足夠低,則可以選擇僅音頻流(如果可用)。

如果是這種情況,請選擇您可以獲取的最大比特率的子播放列表,並將其直接用作您的ts分段的源。

關於轉碼部分,我建議你嘗試使用與ffmpeg相同的命令。抓取最新的git版本。你可以自己編譯它(推薦)或者獲取一個包/靜態構建。

如果複製編碼仍然不起作用,您可以嘗試重新編碼該文件(例如:-c:v x264 -c:a libfdk_aac)。

WebM,你可以這樣做:

ffmpeg -i input.ts -c:v libvpx -c:a libvorbis output.webm 

VP8/Vorbis或:

ffmpeg -i input.ts -c:v libvpx-vp9 -c:a opus output.webm 

VP9/Opus

這是最簡單的例子,你應該設置編碼參數而不是使用默認值。檢查documentation

https://trac.ffmpeg.org/wiki/Encode/VP8

https://trac.ffmpeg.org/wiki/Encode/VP9

https://trac.ffmpeg.org/wiki/Encode/H.264

+0

感謝@aergistal!安裝ffmpeg的確適用於mp4和webm ..但是我正在考慮將mp4作爲webm編碼需要一段時間! – Danny

+0

@AnkitDhanna你應該嘗試'VP8',速度更快。您可以按照指南中所示調整參數以獲得更好的速度。即使'MP4'中的'H.264'可能需要一段時間才能獲得較慢的配置文件(更好的壓縮)。 – aergistal

+0

謝謝......我會研究它 – Danny

相關問題