簡體   English   中英

iPhone HTTP Streaming .m3u8和.ts文件-如何使用ffmpeg創建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM