vue播放rtmp、hls m3u8格式视频

选用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

原文地址:https://www.cnblogs.com/tangjizhong/p/12658766.html

时间: 2024-10-11 05:14:30

vue播放rtmp、hls m3u8格式视频的相关文章

angular2或angular4中使用ckplayer播放rtmp和m3u8视频直播流

1. 下载ckpalyer整个包并导入, 将ckplayer放到src/assets/下 2. 引入ckplayer.js angular2中,在angular-cli.json中找到script,添加上ckplayer.js "scripts": ["./assets/ckplayer/ckplayer.js"] 3. 编写html <div id="video" class="video"></div&g

html页面引用video.js播放m3u8格式视频

//head里面的内容,我是采用cdn引用的方式,因为项目太小 //只粘贴了不分代码,都是主要的,只要视频没问题,如果不能播放,建议换一个视频源,代码绝对没问题 都可以播放,下面video样式那里,一共三层, <head> <meta charset="utf-8" /> <title>二级造价</title> <script src="https://cdn.bootcss.com/vue/2.5.20/vue.min.

11、使用xamarin实现全屏播放rtmp之类的直播视频

直播类的app大部分都是以rtmp hls播放为主.目前主流的app解决方案大部分是引入ijkplayer 这个是基于ffmpeg中的ffplayer实现的. 众所周知ffmpeg的解码能力是一流的.暴风xx  xx解码之类都是基于ffmpeg魔改出来的.七牛的直播就是基于Ijkplayer实现的 下面我介绍如何使用QiNiu.PLPlayer.Droid 实现全屏直播 https://github.com/jsonsugar/QiNiu.PLPlayer.Droid 首先创建一个默认的xama

关于H5播放Http Live Streaming m3u8格式视频

HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容主要包括两部分,一是M3U8描述文件,二是TS媒体文件. 因为是苹果出的视频播放格式,所以PC端除了safari别的浏览器基本都不支持,微软的edge一推出就支持,下图是各个浏览器的具体支持情况 可以看到android和ios基本可以认为都支持的,我用的hls.js来播放 项目https://github.com/video-dev/hls.js 使用方式也很简单,直

vue.js+video.js+videojs-contrib-hls支持PC端播放m3u8格式的视频

最近项目中PC需要支持m3u8格式的视频播放 项目框架是vue.js 参考网上教程npm video.js 和  videojs-contrib-hls 项目本地测试OK 打包上线插件内报错 所以最后不得了当外部js 引入 才解决 同时需要引入video.js.css样式 classl类名改为 如图 video.js初始化写在mounted内 如此可以正常的播放m3u8格式的视频了 原文地址:https://www.cnblogs.com/xk-one/p/9243323.html

vue播放video插件vue-video-player实现hls, rtmp播放全过程

1.安装插件 1 npm install vue-video-player -S 2.配置插件 在main.js里添加 1 import VideoPlayer from 'vue-video-player' 2 require('video.js/dist/video-js.css') 3 require('vue-video-player/src/custom-theme.css') 4 Vue.use(VideoPlayer) 3.使用插件 在vue的组件页面里 1 <template>

搭建rtmp直播流服务之4:videoJS/ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

前面几章讲解了使用nginx-rtmp搭建直播流媒体服务器,以及使用ffmpeg推流到nginx-rtmp服务器,java通过命令行调用ffmpeg实现推流服务,后端的事情到这里就已经全部完成了. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二次开发就显得很有必要. 一.几种播放器选择 那么播放器,哪些已经不再更新的和收费的,这里不会介绍,只介绍两种轻量级的开源播放器. 1.

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

前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流,再到nginx-rtmp发布流,后端的服务到这里就已经全部完成了. 如果这里的流程没走通,那么这里的播放器也是没办法播放实时流的. 本章讲一下播放器的选用和二次开发,前端的播放器虽然有flex(flash)可以用,但是很遗憾flex接触的并不多,学习成本又太高,那么基于第三方开源的flash播放器二

【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频

HTTP Live Streaming(HLS)是由Apple Inc.实施的非常强大的流视频协议.HLS使用穿过防火墙,代理的HTTP事务,并可以轻松地通过CDN进行分发.因此,该技术能够比RTP或其他基于UDP的协议达到更大的观众观众.今天在线直播的许多视频都是由使用HLS的昂贵系统进行托管,但它们通常很昂贵,需要大量的服务器资源.本教程将向您展示如何设置一个非常实惠的Ubuntu 14.04 VULTR VPS,只使用开源软件来进行HLS直播流事件. 第一步是根据Vultr Doc" Ub