流媒体

video.js

参考文章 https://www.cnblogs.com/babosa/p/7468280.html

JSMPEG

安装准备

使用工具

  1. Ffmpeg 点击下载,用来解码的,选择shared版本
  2. Node.js,搭建webSocket服务器,以及运行一个jsmpeg的js文件
  3. 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
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

image.png

HLS HTTP Live Streaming

相应速度慢,主要在于等待数据获取


image.png

简化版,暂时使用的方式

  1. 使用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 头文件
  2. 使用video.js
    src中直接引用生成的头文件
    src="xxx.m3u8

你可能感兴趣的:(流媒体)