首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不适用于苹果设备的HLS流

不适用于苹果设备的HLS流
EN

Stack Overflow用户
提问于 2015-10-25 02:51:05
回答 1查看 6.6K关注 0票数 5

我有一个实时RTSP流,我已经设法通过VLC将其转换为HLS。现在,它在Android和桌面浏览器(通过闪存)上运行得很好。

但在苹果上不行(我可以在iPad和虚拟机上的桌面Safari上进行测试)。我可以看到播放器,但当我按下“播放”按钮时,我看到的只是播放器内的一个黑色矩形。在桌面Safari上也有一个文本“加载.”靠近播放/暂停按钮,其他任何事情都不会发生。

我的HTML:

代码语言:javascript
运行
AI代码解释
复制
<video id="player" controls style="width:100%; height:100%">
  <source src="http://178.79.164.114/playlist.m3u8" type="application/x-mpegURL">
</video>

vlc的命令:

代码语言:javascript
运行
AI代码解释
复制
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}'

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

代码语言:javascript
运行
AI代码解释
复制
#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?)。也许它能帮上忙:

代码语言:javascript
运行
AI代码解释
复制
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 -请帮助。

更新

现在我正在尝试各种不同的播放列表,但没有什么改变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 02:14:15

玩家可能会期待被屏蔽的视频和音频,所以添加一个无声的音频轨道。

Apple HLS文档说:

媒体段文件通常由流段器根据编码器的输入产生,并由一系列.ts文件组成,其中包含包含H.264视频 AAC、MP3或AC-3音频的MPEG-2传输流的片段。

技术说明TN2224中提到了对仅音频流的支持,该协议的第7次修订版引入了对替代呈现的支持(未修改的流),但这是通过主播放列表中的EXT-X-MEDIA标记来实现的,主播放列表控制播放(您的是媒体播放列表)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33328829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档