是否可以在 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 直播视频?的主要内容,如果未能解决你的问题,请参考以下文章

直播如何推流

linux apache 怎么安装rtmp

如何在移动浏览器上通过 RTMP 显示 H.264 格式的视频直播?

从 Wowza 到 iOS 的 RTMP 直播

「自己开发直播」rtmp-nginx-module实现直播状态观看人数控制

Expo React Native 应用程序中的 RTMP 直播