Skip to content

Releases: shinyoshiaki/werift-webrtc

Specify static PayloadType

21 May 10:00

Choose a tag to compare

          const pc = new RTCPeerConnection({
            codecs: {
              audio: [
                new RTCRtpCodecParameters({
                  mimeType: "PCMU",
                  clockRate: 8000,
                  channels: 1,
                  payloadType: 0
                }),
              ],
            },
          });

BundlePolicy

21 May 09:54

Choose a tag to compare

How to specify BundlePolicy

const pc = new RTCPeerConnection({
            bundlePolicy: "disable" or "max-compat" or "max-bundle",
          });

Default value is max-compat

Suppor RED (RTP Payload for Redundant Audio Data)

12 Nov 10:48

Choose a tag to compare

MediaRecorder now supports AV1

18 Oct 14:57

Choose a tag to compare

MediaRecorder now supports VP9

15 Sep 09:51

Choose a tag to compare

MediaRecorder now supports h264

08 Sep 09:46

Choose a tag to compare

Support MediaRecorder API

24 Aug 13:56

Choose a tag to compare

Video and Audio can be saved to a webm file using Node.js alone, without the need for gStreamer.

example

import { MediaRecorder, RTCPeerConnection } from "werift";
import { Server } from "ws";

// open ./answer.html

const server = new Server({ port: 8888 });
console.log("start");

server.on("connection", async (socket) => {
  const recorder = new MediaRecorder([], "./test.webm", {
    width: 640,
    height: 360,
  });

  const pc = new RTCPeerConnection();

  {
    const transceiver = pc.addTransceiver("video");

    transceiver.onTrack.subscribe((track) => {
      recorder.addTrack(track);
      if (recorder.tracks.length === 2) {
        recorder.start();
      }
      setInterval(() => {
        transceiver.receiver.sendRtcpPLI(track.ssrc);
      }, 15_000);
    });
  }
  {
    const transceiver = pc.addTransceiver("audio");
    transceiver.onTrack.subscribe((track) => {
      recorder.addTrack(track);
      if (recorder.tracks.length === 2) {
        recorder.start();
      }
    });
  }

  await pc.setLocalDescription(await pc.createOffer());
  const sdp = JSON.stringify(pc.localDescription);
  socket.send(sdp);

  socket.on("message", (data: any) => {
    pc.setRemoteDescription(JSON.parse(data));
  });
});

Support SRTP_AEAD_AES_128_GCM

03 Aug 11:43

Choose a tag to compare

Fixed some bugs

31 Jul 15:29

Choose a tag to compare

v0.12.8

v0.12.8

Improve DTLS negotiation

23 Jul 06:33

Choose a tag to compare

v0.12.6

v0.12.6