uniapp m3u8格式视频加载

这篇具有很好参考价值的文章主要介绍了uniapp m3u8格式视频加载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp一:mui-player:三方  h5 web app

 

uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客

uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意,博主最后选择mui-player插件:

定制化稍微强一点以及有官方文档可以阅读,官网文档介绍 | MuiPlayer

二:Dplayer.js:三方  h5 web

uniapp项目引入Dplayer.js以及hls.js用来解析播放m3u8直播流视频文件,文末有项目代码可供下载_wang_9909的博客-CSDN博客

在项目中,可能会获取一些直播流地址,比如最常见的就是.m3u8视频格式。在小程序可以直接使用video 标签就可以直接播放,因为小程序有自己的引擎,可以直接使用。H5页面是运行在浏览器上面的,不能直接播放

​​​​​​​

this.dp = new Dplayer({
				//播放器的一些参数
				container: document.getElementById('dplayer'),
				autoplay: false, //是否自动播放
				theme: '#FADFA3', //主题色
				loop: true,//视频是否循环播放
				lang: 'zh-cn',
				screenshot: false,//是否开启截图
				hotkey: true,//是否开启热键
				preload: 'auto',//视频是否预加载
				volume: 0.7,//默认音量
				mutex: true,//阻止多个播放器同时播放,当前播放器播放时暂停其他播放器
				playbackSpeed: [0.5, 1, 1.5, 2], //可选的播放速率,可以设置成自定义的数组  几倍速
                // 自定义右键菜单
                contextmenu:[],
                ban_drag: true // 缩略底部可拖动进度条,true,隐藏 false显示
				video: {
					url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-uni4934e7b/c4d93960-5643-11eb-a16f-5b3e54966275.m3u8 ', //视频地址
					type: 'customHls',
					customType: {
						customHls: function(video, player) {
							const hls = new Hls()  //实例化Hls  用于解析m3u8
							hls.loadSource(video.src)
							hls.attachMedia(video)
						}
					},
				},
                bulletSecret: { // 随意跳动标签,防伪
						enabled: parseInt(this.newconfig.player.enabled_bullet_secret) === 1,
						text: this.newconfig.player.bullet_secret.text
							.replace("${user.mobile}", this.commentUsers.mobile)
							.replace("${user.id}", this.commentUsers.id),
						size: bulletSecretFontSize + "px",
						color: !this.newconfig.player.bullet_secret.color ?
							"red" : this.newconfig.player.bullet_secret.color,
						opacity: this.newconfig.player.bullet_secret.opacity,
					},
			});


            // 微信同层播放 :https://blog.csdn.net/superKM/article/details/87603255/
				setTimeout(() => {
					const dplay = document.querySelector(".dplayer-video");
					const u = navigator.userAgent;
					let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1;
					if (isAndroid) {
						dplay.setAttribute("x5-video-player-type", "h5-page");
						dplay.removeAttribute("playsinline");
						dplay.removeAttribute("webkit-playsinline");
					} else {
						dplay.removeAttribute("x5-video-player-type", "h5-page");
						dplay.setAttribute("playsinline", "");
						dplay.setAttribute("webkit-playsinline", "");
					}
				}, 200);

​​​​​​​

设置dplayer内部属性:vue 仿抖音视频列表(兼容微信内置X5浏览器)_vue仿抖音_superKM的博客-CSDN博客

dplayer官网:​​​​​​​指南 | DPlayer

三:video:uniapp官方video 格式有点限制

video | uni-app官网

  • 视频播放格式说明:

    • H5平台:支持的视频格式视浏览器而定,一般通用的都支持:mp4、webm 和 ogg。(<video/> 组件编译到 H5 时会替换为标准 html 的 video 标签)。H5端也可以自行在条件编译里使用video.js等三方库,这些库可以自动判断环境兼容以决定使用标准video或flash来播放。
    • 小程序平台:各小程序平台支持程度不同,详见各家文档:微信小程序视频组件文档、支付宝小程序video组件、百度小程序视频组件文档、字节跳动小程序视频组件文档、QQ小程序视频组件文档、华为快应用视频组件文档
    • App平台: 支持本地视频(mp4/flv)、网络视频地址(mp4/flv/m3u8)及流媒体(rtmp/hls/rtsp)。

h5 video可以加载m3u8格式:h5的video标签播放m3u8格式的视频流

四、HLS 文件视频介绍

原文:浅析HTML5点播m3u8(hls)格式视频和flv.js播放flv视频流_技术分享_五块二  

这两年来越来越多的视频应用使用了m3u8格式的视频,因为可以兼容PC、移动端。相比mp4等视频源,m3u8可以减轻服务器压力(按需加载)。HLS是由苹果公司率先提出的一种协议标准,可用于直播。

  查看演示:https://www.helloweba.net/demo/2018/hls/

  项目地址:https://github.com/video-dev/hls.js

  m3u8是一种基于HLS(HTTP Live Streaming) 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成。不同于mp4大文件,m3u8是由一系列的 ts 文件组成,一般一个ts文件大概5-10秒,这些ts文件通过一个.m3u8文件做索引。用户播放视频时,可随意拖动视频进度,会读取相应进度的ts文件继续观看视频,不必等到下载完整的视频。因此在播放m3u8的时候很少有卡顿的现象。

  本文只做HLS点播讲解,与直播不同,点播是指视频文件已经在编辑好,随时可播放。

  由于HLS是由Apple公司提出的,所以在iOS电脑或手机上,你可以直接使用Safari浏览器的<video>播放m3u8格式视频文件。而其他浏览器则需要借助hls.js来兼容m3u8。

  使用hls.js,不需要任何定制的播放器,只需要<video>元素就能播放m3u8

四、如何使用 继续上面video使用

1、加载js和播放元素

  在需要放置视频的页面位置上加入video元素和hls.js文件。

<video id="video" controls width="100%"></video>
<script src="hls.js"></script>

2、调用hls.js

  首先判断浏览器是否支持hls,如果支持就实例化new Hls(),加载m3u8源,然后播放。如果不支持hls,而支持苹果原生应用,则播放另一个m3u8源。

var video = document.getElementById('video');
  if(Hls.isSupported()) {
    var hls = new Hls();
    hls.loadSource('https://yunqivedio.alicdn.com/2017yq/v2/0x0/96d79d3f5400514a6883869399708e11/96d79d3f5400514a6883869399708e11.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = 'https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8';
    video.addEventListener('loadedmetadata',function() {
      video.play();
    });
  }

  运行,试着用PC浏览器和手机访问,你会发现m3u8的播放很流畅

四、在Vue中使用hls.js

// 1、使用Vue框架的同学可以用npm先安装hls。
npm install --save hls.js
// 2、然后添加组件
<video ref="videoRef" width="400" controls></video>
// 3、最后挂载代码:
<script>
import Hls from 'hls.js'; 
export default {
    mounted: function() {
      var hls = new Hls();
      hls.loadSource('https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8');
      hls.attachMedia(this.$refs.videoRef);
      hls.on(Hls.Events.MANIFEST_PARSED,function() {
        this.$refs.videoRef.play();
      });
    }
}
</script>

五、使用flv.js实现flv格式的监控视频流播放

1、flv.js常用方法

  flvjs.isSupported():判断当前浏览器是否支持播放

  flvPlayer = flvjs.createPlayer(mediaDataSource: MediaDataSource, config?: Config):创建一个播放实例

  flvPlayer.attachMediaElement(mediaElement: HTMLMediaElement):将播放实例注册到video节点

  flvPlayer.load():加载视频

  flvPlayer.play():播放视频

  flvPlayer.pause():视频暂停

  flvPlayer.unload():去除视频加载

  flvPlayer.detachMediaElement():将播放实例从节点中取出

  flvPlayer.destroy():销毁播放实例

2、flv.js简单使用

// html
<video id="my-player" preload="auto" muted autoplay type="rtmp/flv">
    <source src="">
</video>
// 引入flv.js
<script src="./flv.js/flv.min.js"></script>
// 使用flv.js实现播放flv格式流
// 获取video节点
videoElement = document.getElementById('my-player');
if (flvjs.isSupported()) {
  flvPlayer = flvjs.createPlayer({
    type: 'flv',
    isLive: true,
    url: 'XXXX',//flv格式流地址
  },{
    enableWorker: false, //不启用分离线程
    enableStashBuffer: false, //关闭IO隐藏缓冲区
    reuseRedirectedURL: true, //重用301/302重定向url,用于随后的请求,如查找、重新连接等。
    autoCleanupSourceBuffer: true //自动清除缓存
  );
  flvPlayer.attachMediaElement(videoElement);
  flvPlayer.load(); //加载
  flvPlayer.play();//播放
}

// 关闭视频流
flvPlayer.pause();
flvPlayer.unload();
flvPlayer.detachMediaElement();
flvPlayer.destroy();
flvPlayer = null;

  rtmp 视频流不支持的,可以转为 flv 视频流(http://1011.hlsplay.aodianyun.com/demo/game.flv)文章来源地址https://www.toymoban.com/news/detail-519039.html

到了这里,关于uniapp m3u8格式视频加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • video插件播放m3u8格式视频(存原生)

    这里使用原生的javascript实现m3u8格式视频播放。 使用了包括video.min.js库和HLS插件。 在上面代码中,首先引入了video.min.js库和对应的播放器样式video-js.css,还引入了videojs-contrib-hls.min.js库(引入顺序考虑优先放到页面加载之前)。 之后,创建一个video标签,并指定source的src属性为

    2024年02月13日
    浏览(46)
  • 原生小程序实现视频监控(m3u8格式)

    本文主要实现实时播放监控视频,基于原生微信小程序实现 1、在.wxml文件代码,视频一定要写宽高,不然可能显示不出来,以下属性介绍 src:视频地址, controls:是否显示默认播放控件(播放/暂停按钮、播放进度、时间) binderror: 视频播放出错时触发 show-center-play-btn:是

    2023年04月08日
    浏览(32)
  • uniapp 直播拉流 播放m3u8 视频

    在百度中找啦n多个方法 没有解决啦 巨气人 发现hls.js hls.js不需要任何播放器,它可以直接在标准HTML 元素上运行。 安装第三方库 在uniapp页面显示 如果想要应用在自己的页面中 直接c v 就ok啦 要是有人问推流为啥没有 不要问 问就是不会!!!

    2024年02月12日
    浏览(45)
  • vue项目中使用m3u8格式播放大视频

    网站中播放大视频时经常卡顿,无法顺利播放,在查找解决方案时发现很多文章建议使用m3u8流媒体播放代替MP4播放,做了下测试,现总结记录下测试过程中遇到的问题与解决办法。 1.使用ffmpeg做视频转换 1)下载ffmpeg  FFmpeg github 2)在环境变量path中加入配置,以便在控制台使

    2024年02月09日
    浏览(51)
  • 爬取A站视频,涉及m3u8格式的处理

    1.进入A站进行抓包分析 进入一个页面,右点击鼠标按钮,点击检查  接着点击network,点击Fetxh/XHR,然后刷新网页,得到下面的页面   发现其中有许多d595开头的文件,它们是ts文件,点击其中一个。在General中复制其requests URL在浏览器打开,会自动下载一个文件,保存为ts,用视

    2024年01月23日
    浏览(40)
  • 使用ffmpeg将视频转成HLS(m3u8)格式

      HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。 因为HLS协议是将视频切分成很多小的ts片段,这些小片段很适合放到cdn上,有很多视频文章都使用了hls格式传

    2024年02月13日
    浏览(43)
  • 【vue】前端页面点击按钮弹窗播放m3u8格式视频

    最终效果: 1.表格操作列 2.initVideo方法 3.弹出层代码 4.showAll_dialog样式 5.第2步跳转的video.html页面代码,用dplayer播放的,放在项目根目录的public文件夹即可

    2024年02月04日
    浏览(50)
  • vue使用video.js实现播放m3u8格式的视频

    我使用的video.js版本如下: 在components下新建一个VideoPlayer文件夹 index如下:  直接把地址传给sourceUrl即可

    2024年02月12日
    浏览(43)
  • 在vue中使用dplayer播放hls m3u8格式视频

    Dplayer 官方文档地址 Dplayer官方地址 虽然在vue中有vue-dplayer但却没有对hls进行很好的支持 所以建议还是使用Dplayer 在组件中引入 播放m3u8格式的视频需要框选部分 – 建议查看官方文档MSE支持 切换视频 切换视频需要用到 switchVideo() api 方便大家复制 部分片段

    2024年02月13日
    浏览(33)
  • video.js 播放m3u8、flv、rtmp、RTS格式视频

     第一种方案(只适用m3u8格式): 属性 说明    options: {                     autoplay: true, // 设置自动播放                     muted: true, // 设置了它为true,才可实现自动播放,同时视频也被静音 (Chrome66及以上版本,禁止音视频的自动播放)                     prelo

    2024年02月12日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包