You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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?)
What would be the equivalent code for the following command? We plan to use beamcoder in a WebRTC project if is possible.
The text was updated successfully, but these errors were encountered: