最近我有一個任務將文件格式轉換爲mp4並進行流式處理。我已經使用ffmpeg作爲轉碼工具。 MP4文件不會通過http協議[已使用php cgi wrapper]流式傳輸,但輸出格式會更改爲mpegts,流式傳輸會發生且工作正常。在網上快速搜索http://wiki.videolan.org/MPEG涉及並建議使用mpegts來傳輸mp4文件。我需要更深入地瞭解這兩種格式的優點和差異。mp4和mpegts有什麼區別?
謝謝, 彼得
最近我有一個任務將文件格式轉換爲mp4並進行流式處理。我已經使用ffmpeg作爲轉碼工具。 MP4文件不會通過http協議[已使用php cgi wrapper]流式傳輸,但輸出格式會更改爲mpegts,流式傳輸會發生且工作正常。在網上快速搜索http://wiki.videolan.org/MPEG涉及並建議使用mpegts來傳輸mp4文件。我需要更深入地瞭解這兩種格式的優點和差異。mp4和mpegts有什麼區別?
謝謝, 彼得
MPEG-TS是專爲在DVB事件的現場直播,UDP組播,也 通過HTTP。 它將基本流中的流劃分成小塊,這些小塊被分割成小塊。 系統信息定期發送,因此接收機可以在任何時候開始播放流。
MPEG-TS不適合流式傳輸文件,因爲它不提供有關電影或歌曲持續時間的信息,以及您可以尋求的點數。
有一些新的協議可以使用MPEG-TS通過HTTP流式傳輸, 將額外的元數據放入文件中並修復我之前討論過的缺點。 這些是HTTP直播流媒體和DASH(通過HTTP的動態自適應流媒體)。
另一方面,MP4在流的部分信息中稱爲moov atom。 關鍵是moov必須放在媒體內容之前,並首先從服務器上下載 。這樣視頻播放器就知道持續時間,並且可以在沒有下載整個文件的情況下找到任何點(這稱爲HTTP僞流)。
不幸的是ffmpeg將moov放在文件末尾。您可以使用軟件 修復Xmoov-PHP。
你可以重新排列你的MP4文件,使用下面的命令FFMPEG把MOOV部分在它的開始:
的ffmpeg -i your.mp4 -vcodec複製-acodec副本 - movflags +的fastStart reordered.mp4
這似乎沒有回答OP的問題。 – 2015-01-03 18:57:41
的MP4是一個文件 的延伸,而MPEG TS用於傳輸流..... MPEG TS是用於數字視頻廣播標準來發送MPEG VID eo和mpeg音頻。基本上有兩種類型的ts spts和mpts spts僅包含單個程序,而mpts包含其中的多個程序。 TS閱讀器和VLC媒體播放器使用,如果你想知道更多關於它的後續播放的MPEG TS , MPEG TS OR TRANSPORT STREAM MPTS SPTS
的擴展傳輸流文件是.TS
可以這樣爲IPTV做目的:創建一個連續的MP4流,並在每個單獨的HTTP請求上,在其開始時爲其提供moov服務,持續時間設置爲非常高的數量? – Ivo 2012-10-22 05:31:53
文件末尾的moov原子只是原始播放器的問題。像mplayer這樣的現代軟件可以很容易地檢測出moov原子的末端,並使用幾十年前的Range:HTTP頭獲取它。 – 2013-04-12 14:25:17
Ivo,您要求的內容與MPEG DASH類似。DASH使用分段的MP4,使用'traf'和'sidx'盒來包裝短視頻(2-10秒)。可以在單個增長的MP4文件中連接這些文件:'moov''sidx''traf''sidx''traf'...您的播放器只需支持HTTP和ISO 14496規範的相關部分。 – 2013-04-12 14:30:12