ffmpeg版本:ffmpeg-20190428-45048ec-win64-static
下载地址:FFmpeg 我这里测试可以用的已经上传至 ffmpeg-20190428-45048ec-win64-static.zip-编解码文档类资源-CSDN下载
步骤一:设置系统变量ffmpeg位置为解压文件的bin目录内
步骤二:区分文件系统将原视频放在一个文件夹新视频单独生成一个文件夹
步骤三:生成ts文件 命令参考如下:
ffmpeg -y -i D:\phpstudy_pro\WWW\1\demo.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb D:\phpstudy_pro\WWW\2\demo.ts
步骤四:生成m3u8格式文件 命令参考如下:
ffmpeg -i D:\phpstudy_pro\WWW\1\demo.mp4 -c:v libx264 -hls_time 60 -hls_list_size 0 -c:a aac -strict -2 -f hls D:\phpstudy_pro\WWW\2\demo.m3u8
播放的参考代码如下使用video.js:
<!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>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js" type="text/javascript"></script>
<!-- videojs-contrib-hls 用于在电脑端播放 如果只需手机播放可以不引入 -->
</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: 100%;height: auto'>
<source id="source" src="./2/demo.m3u8" type="application/x-mpegURL"></source>
</video>
</div>
<div class="qiehuan" style="width:100px;height: 100px;background: red;margin:0 auto;line-height: 100px;color:#fff;text-align: center">切换视频</div>
</body>
<script>
// videojs 简单使用
var myVideo = videojs('myVideo', {
bigPlayButton: true,
textTrackDisplay: false,
posterImage: false,
errorDisplay: false,
})
myVideo.play()
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();
}
var src = './2/demo.m3u8';
document.querySelector('.qiehuan').addEventListener('click', function () {
changeVideo(src);
})
</script>
接下来就可以套入自己的项目中了自由发挥