Code Monkey home page Code Monkey logo

Comments (1)

Bahlinc-Dev avatar Bahlinc-Dev commented on June 16, 2024

First of all you are only encoding video, but not sending audio because you inserted a "tee" which makes multiple muxers, but then only are using the video stream part. The payload type also does not look right, should be 103 I think?

Anyways, to send video via rtp you would use this:

`//video stream to rtp
const vmux = await beamcoder.muxer({
format_name: 'rtp'
});

vmux.newStream(demux.streams[0]); // get stream from demuxer or make a new one

await vmux.openIO({
url: 'rtp://192.168.1.100:10090' + '?rtcpport=' // where to send the stream remove rtcp part if not needed
});

await vmux.writeHeader({
payload_type: 103, // IMPORTANT. libav sets a default of -1 for the payload type, webrtc does not like that
ssrc: 1111, // stream identifier, can be any positive integer number (must be expected by your webrtc implementation)
});

let vDiff;
while (true) {
const packet = await demux.read();

// video packets
if (packet.stream_index === 0) {
  if (!vDiff) vDiff = packet.pts; // if first packet is > 0 pts, subtract that out so we always forward a stream starting at zero (players like that)
  packet.pts = packet.pts - vDiff;
  packet.dts = packet.pts; // unless you have b frames, dts can equal pts.  You probably don't have b frames.
  await vmux.writeFrame({
    packet: packet
  });
}

}`

If you plan on passing audio also, opus requires a few steps depending on the source. You probably need a filter instead of just passing from decoder to encoder. Especially if changing sample rate from source.

(edit: not sure why the formatting here is messed up?)

from beamcoder.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.