安装ffmpeg
1 2 3 4 5 | yum -y install epel-release rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm yum -y install ffmpeg ffmpeg-devel ffmpeg -version |
安装成功
MP4转m3u8
放上对应的MP4就可以
1 | ffmpeg -i 22.mp4 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8 |
可以看到转成功了
放到对应的web目录
html调用就可以了
html代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>前端播放m3u8格式视频</title> <link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet"> <script src='https://vjs.zencdn.net/7.4.1/video.js'></script> <!-- videojs-contrib-hls 用于在电脑端播放 如果只需手机播放可以不引入 --> <script src="//i2.wp.com/cdn.bootcdn.net/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js"></script> </head> <body> <style> .video-js .vjs-tech {position: relative !important;} </style> <div> <video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{}' style='width: 60%;height: auto'> <source id="source" src="./m3u8/index.m3u8" type="application/x-mpegURL"></source> </video> </div> </body> <script> // videojs 简单使用 var myVideo = videojs('myVideo', { bigPlayButton: true, textTrackDisplay: false, posterImage: false, errorDisplay: false, }) myVideo.play()// 视频播放 myVideo.pause() // 视频暂停 var changeVideo = function (vdoSrc) { if (/\.m3u8$/.test(vdoSrc)) { //判断视频源是否是m3u8的格式 myVideo.src({ src: vdoSrc, type: 'application/x-mpegURL' //在重新添加视频源的时候需要给新的type的值 }) } else { myVideo.src(vdoSrc) } myVideo.load(); myVideo.play(); } </script> </html> |
ok完成
1 2 3 | video插件用法:https://www.awaimai.com/2053.html 参考https://blog.csdn.net/weixin_39150852/article/details/105789979 ffmpeg推送直播流的技术进展https://www.cnblogs.com/QingHuan/p/8795202.html |
mp4转码m3u8
如果视频不为mp4格式,需先将视频转码为mp4,可使用如下命令进行转换
ffmpeg -i 本地视频地址 -y -c:v libx264 -strict -2 转换视频.mp4
将mp4格式转换为ts格式
ffmpeg -y -i 本地视频.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 转换视频.ts
将ts文件进行切片
ffmpeg -i 本地视频.ts -c copy -map 0 -f segment -segment_list 视频索引.m3u8 -segment_time 5 前缀-%03d.ts