sendFile.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const { getUserMp4, RTCPeerConnection, RTCRtpCodecParameters } = require('werift')
  2. const { Server } = require('ws')
  3. const server = new Server({ port: 8881 });
  4. console.log("start");
  5. server.on("connection", async (socket) => {
  6. const pc = new RTCPeerConnection({
  7. codecs: {
  8. video: [
  9. new RTCRtpCodecParameters({
  10. mimeType: "video/H264",
  11. clockRate: 90000,
  12. rtcpFeedback: [
  13. { type: "nack" },
  14. { type: "nack", parameter: "pli" },
  15. { type: "goog-remb" },
  16. ],
  17. }),
  18. ],
  19. },
  20. });
  21. const stream = await getUserMp4("./1.mp4", true);
  22. // pc.addTransceiver(stream.audio, { direction: "sendonly" });
  23. pc.addTransceiver(stream.video, { direction: "sendonly" });
  24. pc.connectionStateChange
  25. .watch((state) => state === "connected")
  26. .then(() => {
  27. stream.start();
  28. });
  29. await pc.setLocalDescription(await pc.createOffer());
  30. const sdp = JSON.stringify(pc.localDescription);
  31. socket.send(sdp);
  32. socket.on("message", (data) => {
  33. pc.setRemoteDescription(JSON.parse(data));
  34. });
  35. });