javascript - 从 websocket 在浏览器中解码并显示 h264 流
问题描述
我正在尝试在浏览器中显示来自实时 rtp 摄像头的流,但我遇到了问题。信号必须是无损的,这就是为什么我使用 ffmpeg 管道(H264 可以是无损的),流式传输到节点脚本,该脚本通过 websocket 将信号提供给 javascript 客户端。这是管道:
ffmpeg -i rtsp://ipofthertsp -f rawvideo -b 800k -r 30 -framerate 10 -c:v libx264 -preset ultrafast -crf 0 http://127.0.0.1:8081/supersecret/
流程如下:
rtp -> ffmpeg -> ( http://127.0.0.1:8081 ) http-To-ws (ws://127.0.0.1:8082) <- (ws) JavascriptClient
字节到达客户端,但我不知道如何处理它。
function opened() {
// set up the websocket
var url = 'ws://127.0.0.1:8082';
ws = new WebSocket(url);
ws.binaryType = "arraybuffer";
ws.onmessage = function (event) {
var view = new Uint8Array(event.data);
console.log('data \r\n', event.data);
/* what to do from here to paint it*/
};
}
然后,我想用画布、视频……随便画。
有什么线索???
解决方案
推荐阅读
- spring - 如何选择用户 ID 并合并各个字段中更新的用户输入
- rest - 如何使用 API 获取 Firebase Cloud Firestore 数据库中所有文档的列表?
- angular - 取一个日期的日期和另一个日期的时间,然后在 Typescript 中合并为一个日期
- python - Wagtail:更新 Django 1.10.8 -> 1.11 - ImportError:无法导入名称“FieldPanel”
- actions-on-google - 如何在 Android Things 设备上使用默认的 Google Assistant 代理?
- javascript - 更改其他选择时更改选择选项
- assembly - 为什么 avr-gcc 在函数的开头添加“push r1”指令?
- python - 用给定的字符串替换字符串的字符
- rally - 在 Rally 中,我如何获得我创建的故事列表?
- php - 在 php:fpm docker 镜像中设置 max_post_size 的位置