小编dev*_*tsa的帖子

HLS 流无法在 Apple 设备上运行

我有一个实时 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>
Run Code Online (Sandbox Code Playgroud)

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}'
Run Code Online (Sandbox Code Playgroud)

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

#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
Run Code Online (Sandbox Code Playgroud)

这是奇怪的输出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 …
Run Code Online (Sandbox Code Playgroud)

safari vlc http-live-streaming ios

5
推荐指数
1
解决办法
7039
查看次数

标签 统计

http-live-streaming ×1

ios ×1

safari ×1

vlc ×1