[英]Can iPhone stream MMS, RTSP (RTP, SDP), HTTP progressive streaming ,HTTP live streaming (M3U8) files
[英]iPhone HTTP Streaming .m3u8 and .ts files - how to create using ffmpeg
我正在嘗試使用ffmpeg獲取蘋果驗證的http媒體流,並且出現錯誤。 以下是一些錯誤示例:
警告:播放列表的內容類型為“ application / x-mpegurl”,但應為“ application / vnd.apple.mpegurl”,“ audio / x-mpegurl”或“ audio / mpegurl”之一。
警告:258個樣本(88.966%)在軌道256(avc1)中沒有時間戳。 4:us2-1.ts ~~~~~~~~
警告:媒體段持續時間超出預期持續時間47.733%(5.23對10.00秒,限制為20%)。 40:us2-19.ts ~~~~~~~~~
Average segment duration: 10.16 seconds
Average segment bitrate: 320.12 kbit/s
Average segment structural overhead: 175.89 kbit/s (54.94 %)
Video codec: avc1
Video resolution: 320x320 pixels
Video frame rate: 29.72, 29.78, 29.82, 30.00, 29.64 fps
Average video bitrate: 100.66 kbit/s
H.264 profile: Baseline
H.264 level: 3.0
Audio codec: aac
Audio sample rate: 48000 Hz
Average audio bitrate: 43.57 kbit/s
這是我一直提交的最終文件: http : //files.chesscomfiles.com/images_users/using/us2.m3u8
這是我用來創建此文件的文件: http : //files.chesscomfiles.com/images_users/using/using-computers-1.mp4
我嘗試了以下命令,其中包括:
ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags + loop -cmp + chroma -partitions + parti4x4 + partp8x8 + partb8x8 -subq 5-網格1 -refs 1-編碼器0 -me_range 16 -keyint_min 2 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq'blurCplx ^(1-qComp)'-qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4-級別30 -g 30 -async 2 us2.ts
ffmpeg -i using-computers-1.mp4 -f mpegts -acodec libfaac -ar 48000 -ab 64k -s 320x320 -vcodec libx264 -vbsf h264_mp4toannexb -b 96k -flags + loop -cmp + chroma -partitions + parti4x4 + partp8x8 + partb8x8 -subq 5-網格1 -refs 1-編碼器0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k-最大96k -bufsize 96k -rc_eq'blurCplx ^(1-qComp)'-qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4-級別30 -g 30 -async 2 us1.ts
ffmpeg -i using-computers-1.mp4 -vbsf h264_mp4toannexb -acodec復制-vcodec復制-f mpegts output.ts
如果有人可以幫助我找出我應該運行的ffmpeg命令,我將非常感激!
關於第一個警告:
警告:播放列表的內容類型為“ application / x-mpegurl”,但應為“ application / vnd.apple.mpegurl”,“ audio / x-mpegurl”或“ audio / mpegurl”之一。
可能來自服務器設置。 請遵循此離子炮的第4步中的說明:
准備HTTP服務器上傳一組代表流的文件和一個流定義文件(ts和m3u8)。 這些文件可以在此時上傳到Web服務器,但是還需要采取另一個重要步驟,以確保文件可以正確下載並設置mime類型。 對於流內容,有兩種重要的MIME類型:
.m3u8應用程序/ x-mpegURL
.ts video / MP2T
如果您使用的是Apache,則希望將以下內容添加到httpd.conf文件中:
AddType應用程序/ x-mpegURL .m3u8
AddType視頻/ MP2T .ts
如果您使用的是lighttpd,則需要將其放入配置文件中(如果定義了其他mime類型,請確保僅添加它們而不設置它們):
mimetype.assign =(“ .m3u8” =>“ application / x-mpegURL”,“ .ts” =>“ video / MP2T”)
關於第三個警告:
警告:媒體段持續時間超出預期持續時間47.733%(5.23對10.00秒,限制為20%)。 40:us2-19.ts ~~~~~~~~~
如果某個片段的持續時間與播放列表(m3u8)中該片段列出的持續時間不同,則通常會發生這種情況。 例如,下面的播放列表有一個片段,並由播放列表列出為10秒。 如果此段的實際持續時間相差太大(超過20%),則驗證者會抱怨。
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
med0.ts
#EXT-X-ENDLIST
通常,播放列表中的最后一個片段與目標片段會有所不同,因此可以忽略此警告。
而且,作為一般規則,這些“警告”消息可以忽略,但是“錯誤”消息需要認真對待。
但是,第二個警告看起來更嚴重,並且可能導致蘋果公司的拒絕。 這可能是您的細分器命令(您是否正在使用mediastreamsegmenter?)。
另外,我沒有使用“ -vbsf h264_mp4toannexb”。 而且,我正在使用“ -async 50”。
順便說一句,指向您的播放列表的鏈接無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.