有没有办法将h.264视频流转换为客户端Javascript可读的内容?
我有一个h.264视频流,通过WebSocket从服务器(node.js)传递到客户端(html,vanilla js)。我在浏览器中记录了原始h.264控制台。我想将该视频流发送到html有没有办法将h.264视频流转换为客户端Javascript可读的内容?,javascript,node.js,h.264,Javascript,Node.js,H.264,我有一个h.264视频流,通过WebSocket从服务器(node.js)传递到客户端(html,vanilla js)。我在浏览器中记录了原始h.264控制台。我想将该视频流发送到html标记,并让它在那里实时显示视频 服务器端: var wssV=新服务器({port:3001}); wssV.on(“连接”,函数(ws){ var videoPORT=11111;//Tello端口用于视频 var videoServer=dgram.createSocket('udp4'); videoS
标记,并让它在那里实时显示视频
服务器端:
var wssV=新服务器({port:3001});
wssV.on(“连接”,函数(ws){
var videoPORT=11111;//Tello端口用于视频
var videoServer=dgram.createSocket('udp4');
videoServer.on('侦听',函数(){
var address=videoServer.address();
});
videoServer.on('message',函数(message,remote){
ws.send(message);//发送到前端的原始h.264视频流
});
videoServer.bind(videoPORT);
});
客户端:
$(文档).ready(函数(){
var videoWebSocket=newwebsocket(“ws://localhost:3001”);
videoWebSocket.onerror=函数(evt){console.log(“错误:+evt.data);};
videoWebSocket.onopen=函数(evt){console.log(“视频连接打开…”);};
videoWebSocket.onmessage=函数(evt){
console.log(evt.data);//原始h.264编码视频流
//如何将此evt.data发送到我的html视频标签
};
videoWebSocket.onclose=函数(evt){console.log(“视频连接已关闭”);};
});
html:
问题:
标记src
和codec
属性值应设置为什么codec
属性直接流式传输h.264吗如果我完全错误地处理了这个问题,请帮助我找到在浏览器中显示h.264视频流的方法。为什么要使用Web套接字?为什么不将视频多路复用到MP4容器服务器端,并将其作为HTTP流传输?然后你就可以做
。除非您正在进行双向通信,否则不需要web套接字。我不需要双向通信。您能否在您的说明中列举一些关于如何将多路复用和流式传输作为HTTP的信息。对于您的服务器,在您想要的任何路径的HTTP请求下,执行FFmpeg的子进程以生成MP4(不要忘记-movflags faststart
),将FFmpeg输出文件设置为-
,然后从FFmpeg获取标准输出流,并将其作为HTTP响应传输到浏览器。我花了一些时间,不知道如何将原始h.264流多路复用到MP4容器中。此时,您应该发布一个新问题,因为您的新问题(将子进程输出传输到HTTP客户端)与原始问题没有太多关系。