簡體   English   中英

HLS 流在 Apple 設備上不起作用

[英]HLS stream not working on Apple devices

我有一個實時 RTSP 流,我設法通過 VLC 將其轉碼為 HLS。 現在它可以在 Android 和桌面瀏覽器上完美運行(通過 Flash)。

但不是在 Apple 上(我可以在我的虛擬機上的 iPad 和桌面 Safari 上測試它)。 我可以看到播放器,但是當我按下“播放”按鈕時,我看到的只是播放器內部的一個黑色矩形。 在桌面 Safari 上,播放/暫停按鈕附近還有一個文本“正在加載...”,沒有其他任何反應。

我的 HTML:

<video id="player" controls style="width:100%; height:100%">
  <source src="http://178.79.164.114/playlist.m3u8" type="application/x-mpegURL">
</video>

vlc的命令:

vlc -I dummy rtsp://<stream-url> --sout '#transcode{width=320,height=240,fps=25,vcodec=h264,vb=256,acodec=none,venc=x264{aud,profile=baseline,level=30,keyint=30,bframes=0,ref=1,nocabac}}:std{access=livehttp{seglen=10,delsegs=true,numsegs=5,index=/path/to/server/directory/playlist.m3u8,index-url=http://178.79.164.114/seg-########.ts},mux=ts{use-key-frames},dst=/path/to/server/directory/seg-########.ts}'

以及播放列表文件的示例:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:179
#EXTINF:9.60,
http://178.79.164.114/seg-00000179.ts
#EXTINF:9.60,
http://178.79.164.114/seg-00000180.ts
#EXTINF:9.60,
http://178.79.164.114/seg-00000181.ts
#EXTINF:9.61,
http://178.79.164.114/seg-00000182.ts
#EXTINF:9.59,
http://178.79.164.114/seg-00000183.ts

這是ffprobe http://178.79.164.114/playlist.m3u8的奇怪輸出(為什么有這些 N/A 並且 variant_bitrate 為 0?)。 也許它可以幫助:

Input #0, hls,applehttp, from 'http://178.79.164.114/playlist.m3u8':
  Duration: N/A, start: 3995.330722, bitrate: N/A
  Program 0 
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x240 [SAR 11:12 DAR 11:9], 25 fps, 25 tbr, 90k tbn, 50 tbc

我還為 .m3u8 和 .ts 文件配置了正確的 MIME 類型,並花了一天時間搜索和嘗試轉碼命令的不同選項:寬度、高度、比特率、fps、不同的配置文件和級別...... - 沒有任何效果。 但是,如果我嘗試一些來自蘋果的示例(http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 ) - 一切都很好,盡管它不是直播。

如果有人有任何想法或有可能使用mediastreamvalidator測試我的流 - 請幫助。

更新

現在我正在試驗變體播放列表,但它沒有任何改變。

播放器可能需要混合視頻和音頻,因此添加無聲音軌。

蘋果 HLS 文檔說:

媒體片段文件通常由流分段器根據編碼器的輸入生成,由一系列 .ts 文件組成,其中包含 MPEG-2 傳輸流的片段,這些片段攜帶 H.264 視頻AAC、MP3 或 AC- 3 音頻

技術說明 TN2224 中提到了對純音頻流的支持,並且該協議的第 7 版引入了對替代再現(非復用流)的支持,但這是通過控制播放的主播放列表中的EXT-X-MEDIA標簽完成的(您的是媒體播放列表)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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