阿里云实践 - HTML5断点播放m3u8视频(videojs)

这篇具有很好参考价值的文章主要介绍了阿里云实践 - HTML5断点播放m3u8视频(videojs)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:HTML5页面需要通过<video>标签播放一段200M的服务器视频,默认会需要先下载完视频后才播放,有较长的等待时间;

解决方案:前端通过videojs-contrib-hlsjs.min.js来控制<video>标签进行播放m3u8视频流播放。

步骤:

        1:服务端视频video.mp4生成video.ts视频数据包,执行如下命令://文章底部有ffmpeg相关说明

ffmpeg -y -i /deploys/html/statics/video/video.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb /deploys/html/statics/video/video.ts

        2:对video.ts进行数据包分割,生成指定单位时长的数据包,这里设置成3秒时长的数据包,并生成数据包的目录文件:video.m3u8

ffmpeg -i /deploys/html/statics/video/video.ts -c copy -map 0 -f segment -segment_list /deploys/html/statics/video/video.m3u8 -segment_time 3 /deploys/html/statics/video/video-%03d.ts

        3:前端引用://前后端自己约定video.m3u8的资源路径规则

<script type="text/javascript">
		var default_hls_address = 'statics/video/video.m3u8';
		var options = {
			width: 1280,
			height: 720,
			poster: "statics/video/video.jpg",
			autoplay: true,
			controls: true,
			loop: true,
			preload: 'auto',
			sourceOrder: true,
			sources: [{
				src: default_hls_address,
				type: 'application/x-mpegURL'
			}, {
				src: '',
				type: 'video/webm'
			}],
			techOrder: ['html5', 'flash'],
			flash: {
				swf: ''
			}
		}
		var video = videojs('myvideo', options);
			video.on(['loadstart', 'play', 'playing', 'firstplay', 'pause', 'ended', 'adplay', 'adplaying', 'adfirstplay', 'adpause', 'adended', 'contentplay', 'contentplaying', 'contentfirstplay', 'contentpause', 'contentended', 'contentupdate'], function(e) {
		
		});
		window.onbeforeunload=(e)=>{
			video.dispose();
		}
</script>

        4:因为我生成的单个ts文件也有几百k大小,如果网络不好,会消耗一些时间,导致播放体验不好,所以开启了CDN服务,为ts文件提供CDN访问

阿里云实践 - HTML5断点播放m3u8视频(videojs)

阿里云实践 - HTML5断点播放m3u8视频(videojs)

阿里云实践 - HTML5断点播放m3u8视频(videojs)

 注:

        1: mp4生成ts数据包及m3u8文件,采用的ffmpeg工具及命令,可以参考文章:

linux下安装ffmpeg的详细教程_Mr·wong的博客-CSDN博客_ffmpeg linux一、centos linux下安装ffmpeg1、下载解压12wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gztar-zxvf ffmpeg-3.1.tar.gz2、 进入解压后目录,输入如下命令/usr/local/ffmpeg为自己指定的安装目录1234cdffmpeg-3.1./configu..https://blog.csdn.net/weixin_39412946/article/details/110426738        2:二次进入页面的时候,可能会出现错误: 

videoJS报错:VIDEOJS: WARN: Player “myVideo” is already initialised. Options will not be applied.

      参考其它文章:videoJS报错:VIDEOJS: WARN: Player “myVideo” is already initialised. Options will not be applied._weixin_45115895的博客-CSDN博客videoJS报错:VIDEOJS: WARN: Player “myVideo” is already initialised. Options will not be applied.移动端vue项目商品详情页有用到视频播放器,刚进入时没有错误,进入到其他页面再返回到商品详情页就会出现视频缩小到了左上角,且不能再播放了,查看控制台发现报了一个警告VIDEOJS: WARN: Player “myVideo” is already initialised. Options will not be aphttps://blog.csdn.net/weixin_45115895/article/details/106526981

      //暂时没法解决,前端准备改vue写法解决;

      目前我的做法:对访问的短链接地址跳转页面时,通过nginx动态生成时间戳参数来降低问题出现的几率:http://www.xxxx.com/szhgg 重定向  http://www.xxxx.com/html/index.html?t=1652351901.102

location ~ ^/szhgg {
    set $t $msec;
    rewrite ^/ "/html/index.html?t=$t" permanent;
}

阿里云实践 - HTML5断点播放m3u8视频(videojs)文章来源地址https://www.toymoban.com/news/detail-401552.html

到了这里,关于阿里云实践 - HTML5断点播放m3u8视频(videojs)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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日
    浏览(38)
  • Unity WebGL 播放视频流m3u8

    目录 介绍 步骤 1.导入AVProVideo插件,创建场景,创建空物体添加MediaPlayer组件设置m3u8视频地址以及WebGL平台设置  2.在Canvas下创建Avpro Video,为MediaPlayer赋值  3.可以现在编辑器模式下测试视频地址是否可以播放,然后打包  4.打包完成后,将文件hls.min.js复制到Build文件夹下: 5

    2023年04月10日
    浏览(37)
  • 前端播放大视频卡顿的解决(m3u8视频流)

    最近在一个大屏看板项目中有一个需求是:要求视频和看板要进行来回切换。 最开始的做法是将MP4视频放在项目里,在本地运行时是没什么问题的,但是在往仓库里提交代码时出现了问题。当单个文件超过100MB时会导致代码提交失败; 后来的解决方案是将视频文件放到服务器

    2024年01月19日
    浏览(49)
  • Uniapp H5 播放m3u8、flv格式视频

    简述一下业务需求,仅仅是需要在H5页面播放m3u8格式的视频,但是Uniapp官方提供的video组件在H5端不支持m3u8格式的视频播放,所以需要使用第三方库来播放,这里我使用的是MuiPlayer,但是貌似MuiPlayer的官方文档没有过多提及UniApp的用法,由于MuiPlayer默认支持mp4格式播放,所以

    2024年04月15日
    浏览(25)
  • vue项目中使用m3u8格式播放大视频

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

    2024年02月09日
    浏览(41)
  • 基于 Web 实现 m3u8 视频播放的简单应用示例

    将视频(MP4 等)转换为 M3U8 视频的服务,可以按照以下步骤进行操作: 将视频(MP4 等)转换为 M3U8:在服务中,使用适当的工具(如 FFmpeg)将接收到的视频(MP4 等)转换为 M3U8 格式。这将生成一个包含视频流的 M3U8 文件以及相应的分段(TS)文件。 提供边下边播服务:将生

    2024年02月07日
    浏览(28)
  • 前端实现H265编码的m3u8视频流播放

    前言 视频监控是智慧城市、智慧园区等WebGIS类系统中最为常见的硬件对接设备,最常用的监控视频流格式为m3u8格式,但是m3u8格式通常都是h.265编码格式的,我搜遍了几乎所有前端视频播放插件,几乎普通的播放器插件都不支持h.265格式的视频编码。本文就带领大家了解H265视

    2024年01月18日
    浏览(36)
  • Android ExoPlayer2播放m3u8视频设置Cookie

    支持m3u8格式视频,同时服务端做了加密防止视频被盗。 服务端需要客户端这边再请求.m3u8地址时带上3个Cookie参数,分别是CloudFront-Policy,CloudFront-Signature,CloudFront-Key-Pair-Id。 本地使用了GSYVideoPlayer作为视频播放器,如何设置Cookie是个问题,原本以为直接将待传入的三个Cookie直接

    2024年01月16日
    浏览(33)
  • 在vue中使用dplayer播放hls m3u8格式视频

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

    2024年02月13日
    浏览(26)
  • 关于vue播放flv,m3u8视频流(监控)的方法

    前文: 随着前端大屏页面的逐渐壮大,客户的需求也越来越多,大屏上面展示的事物也越来越丰     富。其中实时播放监控的需求逐步增加,视频流格式也是有很多种,用到最多的.flv、.m3u8。 一、 JessibucaPlayer插件用来播放flv流 1.首先是先把文件放在vue项目的public下面 2.在

    2023年04月15日
    浏览(73)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包