是否可以在 Cesium 中显示 rtmp 直播视频?
Posted
技术标签:
【中文标题】是否可以在 Cesium 中显示 rtmp 直播视频?【英文标题】:Is it possible to display rtmp live stream video in Cesium? 【发布时间】:2019-12-19 18:18:02 【问题描述】:我想在 Cesium 中显示一个 rtmp 流视频。我创建了一个实体并使用<video>
元素作为它的材质。当我使用本地存储的视频(.mp4 格式)时效果很好,但是当我切换到 rtmp 源并通过 videojs 播放时,它可以在<video>
元素中播放,但不能在实体上播放。 rtmp使用flash播放,而普通视频不需要flash,不知是不是这个原因。
这是<video>
元素
<video id="rtmpStream" class="video-js" controls preload="auto" data-setup="" autoplay>
<source src="rtmp://202.69.69.180:443/webcast/bshdlive-pc" type="rtmp/flv">
</video>
【问题讨论】:
是的。使用 HLS 而不是 RTMP。找到与该 RTMP 链接相同的广播的 HLS (m3u8) 版本。对于您的链接,您可以尝试http://202.69.67.66:443/webcast/bshdlive-pc/playlist.m3u8
甚至也可以尝试http://202.69.67.66:443/webcast/bshdlive-mobile/playlist.m3u8
,但它不起作用,因为您选择了一个不受外部 http 请求保护的链接。我认为你必须分享或使用自己的播放器。
【参考方案1】:
我有一个解决方案:
使用VLC等视频服务器接收流并作为http链接重新发送流,然后使用nginx代理或其他方式确保新发送的流与cesium应用程序在同一源下,之后只需在 cesium 中加载视频元素(使用 http 链接作为源),就像在官方沙盒演示中一样。似乎不适用于 rtmp,但适用于其他格式。
它可以工作,但似乎VLC在性能方面不是很好。
【讨论】:
以上是关于是否可以在 Cesium 中显示 rtmp 直播视频?的主要内容,如果未能解决你的问题,请参考以下文章
如何在移动浏览器上通过 RTMP 显示 H.264 格式的视频直播?