video.js
参考文章 https://www.cnblogs.com/babosa/p/7468280.html
JSMPEG
安装准备
使用工具
- Ffmpeg 点击下载,用来解码的,选择shared版本
- Node.js,搭建webSocket服务器,以及运行一个jsmpeg的js文件
- jsmpeg,运行主程序
需要npm安装的,websocket和http-server
npm install -g ws
npm install ws
npm install http-server -g
decode
先转成ts文件
ffmpeg -i in.mp4 -f mpegts
-codec:v mpeg1video -s 960x540 -b:v 1500k -r 30 -bf 0
-codec:a mp2 -ar 44100 -ac 1 -b:a 128k
out.ts
开启jsmpeg
在另一个cmd控制台cd到jsmpeg所在路径,执行: node websocket-relay.js supersecret 8081 8082
说明:
Supersecret是密码
8081是ffmpeg推送端口
8082是前端webSocket端口
运行ffmpeg
在另一个cmd执行下面的代码:
ffmpeg -i "你的rtspurl" -q 0 -f mpegts -codec:v mpeg1video -s 1366x768 http://127.0.0.1:8081/supersecret
官方英文文档:https://php.ctolib.com/phoboslab-jsmpeg.html
参考文章:https://my.oschina.net/chengpengvb/blog/1832469
RTMP和HLS
Bilibili,Flv.js的诞生,在视频播放领域彻底告别Adobe时代。一个全新、干净的HTML5就这样向我们走来了。
作者:北塔资讯
链接:https://www.jianshu.com/p/32417d8ee5b6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
HLS HTTP Live Streaming
相应速度慢,主要在于等待数据获取
简化版,暂时使用的方式
- 使用ffmpeg将MP4文件转换为多个ts切片
ffmpeg -i "xxx.mp4" -f segment -segment_time 20 -segment_format mpegts -segment_list "xxx.m3u8" -c copy -bsf:v h264_mp4toannexb -map 0 "xxx-%04d.ts"
segment_time 切片时长 这里所用是20s
m3u8 头文件 - 使用video.js
src中直接引用生成的头文件
src="xxx.m3u8