SAG*_*imé 7 ffmpeg node.js webrtc
我正在构建一个应用程序,用户可以通过 WebRTC 连接到服务器(我在服务器端和客户端都使用简单对等库来设置对等连接)。一旦客户端和服务器连接起来,客户端应用程序就会将用户摄像头和微控制器流式传输到服务器。
现在,我想将流数据作为 MP4 视频文件保存到文件系统服务器端。
我听说ffmpeg 和Fluent-ffmpeg可以实现此目的,但我不知道如何使用它们。
const Peer = require("simple-peer");
const wrtc = require("wrtc");
const peer = new Peer({ initiator: false, wrtc: wrtc, trickle: false });
peer.on("error", (err: any) => console.log("error", err));
peer.on("signal", (data: any) => {
if (data.type === "offer" || data.type === "answer")
dispatchMessage(JSON.stringify(data));
// if (data.renegotiate || data.transceiverRequest) return;
});
peer.on("connect", () => {
console.log("CONNECTED");
peer.send(JSON.stringify("HELLO DEER PEER FROM SERVER"));
});
peer.on("data", (data: any) => {
console.log("data: ", data);
});
peer.on("stream", (stream: MediaStream) => {
console.log("-------Stream received", stream);
});
peer.on("track", (track: MediaStreamTrack) => {
console.log("-------trackEvent:", track);
});
Run Code Online (Sandbox Code Playgroud)
const stream = await window.navigator.mediaDevices.getUserMedia({
video: { width: { ideal: 4096 }, height: { ideal: 2160 }},
audio: true,
});
const p = new SimplePeer({
initiator: isInitiator,
trickle: false
});
stream.getTracks().forEach(track => p.addTrack(
track,
stream
));
// Here I set up the listeners for the peer connection
Run Code Online (Sandbox Code Playgroud)