react中使用video.js播放rtmp视频流无效

发布于 2022-09-11 18:28:54 字数 2632 浏览 23 评论 0

  1. 通过接口获取到RTMP的流,想通过video.js实现实时预览.版本为"^5.18.4",在chrome设置的是允许flash插件,但是页面上一直报错:VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this media. MediaError {code: 4, message: "No compatible source was found for this media."}

图片描述
图片描述
2.
`
import React from "react";
import { Message, Button } from "antd";
import Base64 from "base-64";
import { stringify } from "qs";
import videojs from "video.js/dist/video.js";
import "video.js/dist/video-js.css";

videojs.options.flash.swf = require('videojs-swf/dist/video-js.swf');

const ip = "http://*";

class Video extends React.Component {

constructor(props) {
    super(props);

    this.state = {
        token: "", // VMS token
        resourceData: [], // 资源数
        videoFileStream: "rtmp://192.168.131.86:15039/live/1392359546", // 实时视频流地址
        visible: false,
    };
}

componentDidMount() {
    // this.authPremission();
    this.reloadPlayer();
}

componentWillUnmount(){
    const myVideoElem = document.getElementById("myVideo");
    if(myVideoElem.length > 0){
        const player = videojs('myVideo');
        player.dispose();
    }
}

// 视频加载并播放
reloadPlayer = () => {
    const {videoFileStream} = this.state;
    const options = {
        width:"600px",
        height:"400px",
        controls:'controls',
        preload:"auto",
        autoPlay:'autoPlay',
    };
    this.player = videojs('myVideo', options);
    this.player.src({
        src: videoFileStream,
        type:'rtmp/flv',
    });
    this.player.load();
    this.player.play();
}



render() {
    // const { videoFileStream } = this.state;

    return (
        <div>
            <Button
                onClick={() => {
                    this.handlePreview();
                }}
            >
                点击获取流媒体
            </Button>

            <video
                id="myVideo"
                className="video-js vjs-default-skin vjs-big-play-centered"
            >
                 {/* <source */}
                     {/* src="" */}
                     {/* type="rtmp/flv" */}
                 {/* /> */}
                <p className="vjs-no-js">
                    您的浏览器不支持HTML5,请升级浏览器。
                </p>
                <track kind="captions" />
            </video>
        </div>
    );
}

}

export default Video;

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

≈。彩虹 2022-09-18 18:28:54

请问最后问题怎么解决了,分享一下

祁梦 2022-09-18 18:28:54

同楼上问题 后来发现是videojs版本太高不支持flash了,建议下5.19的

堇色安年 2022-09-18 18:28:54

要指定flash路径,比如:
vjs.options.flash.swf = "videojs5.18.4/video-js.swf";
然后把video-js.swf这个文件放到指定的路径.

你怎么这么可爱啊 2022-09-18 18:28:54

1.将文件放到服务器上,就是别用本地文件的方式打开

2.用的是chrome,将网站的flash设置成默认允许,然后刷新下,就可以了。像这样设置:

瑾兮 2022-09-18 18:28:54
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文