RTMPS协议,Videojs,HTML5,直播

时间:2017-03-06 01:22:50

标签: javascript php video.js live-streaming rtmps

我正在通过 videojs 开发 rtmps 直播。

但我有一个问题。 T_T

rtmps直播不播放。 (Rtmp效果很好。)

即使您使用其他Flash播放器,它也无法播放。 (ex)jwplayer

<video ...
data-setup='{ "techOrder":["html5", "flash"]}'>
...
<source src = " ** RTMPS_URL ** " type ="rtmp/flv"/>
</video>
  • RTMPS_URL:rtmps:// {SERVER_URL} /?{PARAMETER}
  • SERVER_URL:IP:PORT / args1 / args2
  • PARAMETER:key = value

videojs错误消息。

“FLASH:rtmpconnectfailure”

疑似部分如下。

  1. rtmps服务器正在写个人证书。(证书未经公共机构认证) 所以我在我的电脑上安装了个人证书,错误是相同的。

  2. 据说Videojs博客提供rtmps.Are您确定吗?

  3. 我做错了什么?

    我需要你的帮助。

    谢谢: - )

1 个答案:

答案 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)