我正在通过 videojs 开发 rtmps 直播。
但我有一个问题。 T_T
rtmps直播不播放。 (Rtmp效果很好。)
即使您使用其他Flash播放器,它也无法播放。 (ex)jwplayer
<video ...
data-setup='{ "techOrder":["html5", "flash"]}'>
...
<source src = " ** RTMPS_URL ** " type ="rtmp/flv"/>
</video>
videojs错误消息。
“FLASH:rtmpconnectfailure”
疑似部分如下。
rtmps服务器正在写个人证书。(证书未经公共机构认证) 所以我在我的电脑上安装了个人证书,错误是相同的。
据说Videojs博客提供rtmps.Are您确定吗?
我做错了什么?
我需要你的帮助。
谢谢: - )
答案 0 :(得分:1)
希望您能解决此问题,但对于与我一样的问题,我仍然在此处发布解决方案。
我的工作环境: 带有rtmp模块的nginx,ffmpeg从ip摄像机获取RTSP并以flv格式推送到nginx,在网络上显示此流。
videojs发生了很大变化,所以我将html放在这里:
await new Promise((resolve) => {
page.on('request', async (request) => {
if(request.url().includes(baseUrl)){
const downloadUrl = fixUrl(request.url());
const info = await getSongInfo(page);
downloadSong(downloadUrl, info.title);
await tagSong(info);
await request.abort();
await page.close();
resolve();
} else {
request.continue();
}
});
})
########################
<html>
<script src="./video.min.js"></script> //download the videojs from npm or use the online url one
<link rel="stylesheet" type="text/css" href="./video-js.css">
<script src="https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js></script>
<body>
<video id="liveVideo" class="video-js" controls autoplay preload="auto" width="320" height="240" data-setup="{}">
<!-- <source src="rtmp://ns8.indexforce.com/home/mystream" type="rtmp/flv">-->
<!-- the above rtmp link is for testing your videojs works or not -->
<source src="rtmp://192.168.1.180/cam1/" type="rtmp/flv">
</video>
</body>
</html>
########################
首先我得到了FLASH:rtmpconnectfailure,VIDEOJS:错误:(CODE:0 MEDIA_ERR_CUSTOM)FLASH:rtmpconnectfailure。
rtmp://192.168.1.180/cam1/ is my nignx server ip address (both my server and client are in the same local network)
ffmpeg -i <Your video/stream> -f flv <Your RTMP url>
因此请确保在源URL的末尾添加“ /”。
Chrome,Opera和Edge在2020年12月成功运行(必须在浏览器设置中启用Flash)
祝你好运:o)