基于jsmpeg实现网页无插件播放h264/h265实时视频
视频源为基于rtsp的海康IPC(h265编码)
环境:centos 7.6.1810 内核: 3.10.0-957.el7.x86_64
下载并安装ffmpeg
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
此处采用了ffmpeg 5.0下载并安装nodejs
wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz
此处 nodejs采用了16.14.0版本, npm采用了8.3.1版本
较低的nodejs和npm版本可能无正常工作
- 获取jsmpeg
wget https://github.com/phoboslab/jsmpeg/archive/refs/heads/master.zip
- npm install ws -g
- npm install http-server -g
- export NODE_PATH=/opt/node/lib/node_modules
- node websocket-relay.js passwd 8081 8082
从ffmpeg进程获取码流并通过websocket推送给web浏览器 - ffmpeg -i "rtsp://admin:Hy123456@192.168.5.208:554/Streaming/Channels/101" -r 30 -q 0 -f mpegts -codec:v mpeg1video -s 1366x768 http://127.0.0.1:8081/123456
从海康摄像机拉流并推送给websocket-relay代理 - http-server
web容器
10 http://127.0.0.1:8080/view-stream.html
web浏览器运行jsmpeg,对视频流进行h265解码,渲染