vue播放rtmp、hls m3u8格式视频(示例代码)

tangjizhong 2021-03-02

栏目: 类库 ·

来源: tangjizhong

作者:tangjizhong

简介  这篇文章主要介绍了vue播放rtmp、hls m3u8格式视频(示例代码)以及相关的经验技巧,文章约3199字,浏览量319,点赞数1,值得参考!

选用Video.js作为视频播放库,如果要支持hls m3u8还需要videojs-contrib-hls组件的支持。

安装Video.js

npm install --save video.js

安装videojs-contrib-hls

npm install --save videojs-contrib-hls

创建一个vue的播放组件

src/components/VideoPlayer/index.vue

<template>
    <div>
        <video ref="videoPlayer" class="video-js"></video>
    </div>
</template>

<script>
import videojs from ‘video.js‘
import ‘video.js/dist/video-js.css‘
import ‘videojs-contrib-hls‘

export default {
    name: "VideoPlayer",
    props: {
        options: {
            type: Object,
            default() {
                return {};
            }
        }
    },
    data() {
        return {
            player: null
        }
    },
    mounted() {
        this.player = videojs(this.$refs.videoPlayer, this.options, function onPlayerReady() {
            console.log(‘onPlayerReady‘, this);
        })
    },
    beforeDestroy() {
        if (this.player) {
            this.player.dispose()
        }
    }
}
</script>

在页面中引用VideoPlayer组件

<template>
    <div class="view-warp">
        <component :is="currentComponent" :options="videoOptions"></component>
    </div>
</template>

<script>
import VideoPlayer from "../../components/VideoPlayer/index.vue";
export default {
    name: "view",
    data() {
        return {
            currentComponent: null,
            videoOptions: {
                autoplay: false,
                controls: true,
                poster: ‘‘,
                sources: [
                    {
                        src: "",
                        type: "application/x-mpegURL"
                    }
                ]
			}
        }
    },
    methods: {
        loadData() {
            this.videoOptions.poster = ‘http://localhost/poster.png‘
            this.videoOptions.sources[0].src = ‘http://localhost/index.m3u8‘
            this.currentComponent = VideoPlayer
        }
    },
    created: function() {
        this.loadData()
    }
}
</script>

<style lang="scss">
    .video-js {
        width: 1024px !important;
        height: 720px !important;
    }
    .vjs-big-play-button {
        left: 50% !important;
        top: 50% !important;
        margin-left: -2em;
        margin-top: -1.3em;
    }
    .video-warp {
        display: flex;
    }
    .view-warp {
        padding: 0;
        margin: 0 auto;
        display: flex;
        .desc {
            margin-left: 10px;
        }
    }
</style>

如果要播放rtmp或者rtsp需要把sources.type改成rtmp/flv。

Video.js官方参考文档:https://docs.videojs.com/tutorial-vue.html

本文标题:vue播放rtmp、hls m3u8格式视频
本文地址:https://dev-tang.com/post/2020/04/vue-rtmp-hls-m3u8.html


以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文地址:https://www.cnblogs.com/tangjizhong/p/12658766.html

相关文章

关于H5播放Http Live Streaming m3u8格式视频(示例代码)

使用hls.js播放m3u8视频流(示例代码)

Chrome无法播放m3u8格式的直播视频流的问题解决

Android视频框架 Vitamio 打造自己的万能播放器

vue播放video插件vue-video-player实现hls, rtmp播放全过程(示例代码)

搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)(示例代码)

FFmpeg基于HLS实现大视频分片下载播放[视频直播二]

FFmpeg基于HLS实现大视频分片下载播放[视频直播二]