[jitsi-dev] jitsi-videobridge - receive video in a browser


#1

Hi,

I have been thinking if jitsi-videobridge can be used to send the video
stream to a browser instead of a Java client. Could videobridge be used as
a MCU to send the video stream to browsers?

I have been able to create a small Java application where I created a
DatagramSocket and I made it capable to receive video stream from the
videobridge (the stream was originally sent by jitsi phone)

Code example:

public void notifyVideobridgeToRelayStream(int rtpPort, int rtcpPort)
throws Exception {
//just send an empty packet to make sure that videobridge locks the channel
you are using
//and starts relaying the data to invitee
System.out.println("MIRCEA send empty packets to videobridge to ensure
video RELAY XX "+rtpPort);
DatagramSocket ds1 = new DatagramSocket();
DatagramPacket emptyPacket1 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtpPort);
ds1.send(emptyPacket1);
DatagramSocket ds2 = new DatagramSocket();
DatagramPacket emptyPacket2 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtcpPort);
ds2.send(emptyPacket2);
while(true) {
DatagramPacket p = new DatagramPacket(new byte [1000] , 1000);
ds1.receive(p);
System.out.println("RECEIVED: " + new String(p.getData()));
}
//ds1.close();
//ds2.close();
}

I would like to display it in a browser.
I tried to create the same application using node.js (
http://nodejs.org/api/dgram.html) but I wasn't able to display the stream
in a browser..
Also I am thinking if WebRTC support can receive and play such stream from
the videobridge.

Anyone else tried this, could be possible?

Thanks,
Mircea


#2

We are actually working on this right now, together with Philipp
Hancke from Estos (CCed) who is working on an a JS prototype.

This is why we've recently added support for ICE and DTLS/SRTP. It's
been a tough battle but we should be close.

Emil

···

On Fri, Nov 22, 2013 at 5:52 PM, Mircea Carasel <mirceac@ezuce.com> wrote:

Hi,

I have been thinking if jitsi-videobridge can be used to send the video
stream to a browser instead of a Java client. Could videobridge be used as a
MCU to send the video stream to browsers?

I have been able to create a small Java application where I created a
DatagramSocket and I made it capable to receive video stream from the
videobridge (the stream was originally sent by jitsi phone)

Code example:

public void notifyVideobridgeToRelayStream(int rtpPort, int rtcpPort) throws
Exception {
//just send an empty packet to make sure that videobridge locks the channel
you are using
//and starts relaying the data to invitee
System.out.println("MIRCEA send empty packets to videobridge to ensure video
RELAY XX "+rtpPort);
DatagramSocket ds1 = new DatagramSocket();
DatagramPacket emptyPacket1 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtpPort);
ds1.send(emptyPacket1);
DatagramSocket ds2 = new DatagramSocket();
DatagramPacket emptyPacket2 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtcpPort);
ds2.send(emptyPacket2);
while(true) {
DatagramPacket p = new DatagramPacket(new byte [1000] , 1000);
ds1.receive(p);
System.out.println("RECEIVED: " + new String(p.getData()));
}
//ds1.close();
//ds2.close();
}

I would like to display it in a browser.
I tried to create the same application using node.js
(http://nodejs.org/api/dgram.html) but I wasn't able to display the stream
in a browser..
Also I am thinking if WebRTC support can receive and play such stream from
the videobridge.

Anyone else tried this, could be possible?

Thanks,
Mircea

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

--
Emil Ivov, Ph.D. 67000 Strasbourg,
Project Lead France
Jitsi
emcho@jitsi.org PHONE: +33.1.77.62.43.30
https://jitsi.org FAX: +33.1.77.62.47.31


#3

And here's what the first validation tests look like:

Kudos to Philipp and Lyubo who are the main culprits here.

···

On 22.11.13, 17:57, Emil Ivov wrote:

We are actually working on this right now, together with Philipp
Hancke from Estos (CCed) who is working on an a JS prototype.

This is why we've recently added support for ICE and DTLS/SRTP. It's
been a tough battle but we should be close.

Emil

On Fri, Nov 22, 2013 at 5:52 PM, Mircea Carasel <mirceac@ezuce.com> wrote:

Hi,

I have been thinking if jitsi-videobridge can be used to send the video
stream to a browser instead of a Java client. Could videobridge be used as a
MCU to send the video stream to browsers?

I have been able to create a small Java application where I created a
DatagramSocket and I made it capable to receive video stream from the
videobridge (the stream was originally sent by jitsi phone)

Code example:

public void notifyVideobridgeToRelayStream(int rtpPort, int rtcpPort) throws
Exception {
//just send an empty packet to make sure that videobridge locks the channel
you are using
//and starts relaying the data to invitee
System.out.println("MIRCEA send empty packets to videobridge to ensure video
RELAY XX "+rtpPort);
DatagramSocket ds1 = new DatagramSocket();
DatagramPacket emptyPacket1 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtpPort);
ds1.send(emptyPacket1);
DatagramSocket ds2 = new DatagramSocket();
DatagramPacket emptyPacket2 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtcpPort);
ds2.send(emptyPacket2);
while(true) {
DatagramPacket p = new DatagramPacket(new byte [1000] , 1000);
ds1.receive(p);
System.out.println("RECEIVED: " + new String(p.getData()));
}
//ds1.close();
//ds2.close();
}

I would like to display it in a browser.
I tried to create the same application using node.js
(http://nodejs.org/api/dgram.html) but I wasn't able to display the stream
in a browser..
Also I am thinking if WebRTC support can receive and play such stream from
the videobridge.

Anyone else tried this, could be possible?

Thanks,
Mircea

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

--
https://jitsi.org


#4

Thanks Emil for sharing this. Indeed, this is awesome.

I already used jitsi-videobridge very well in a screen-sharing app. My plan
is now is to initiate screen-sharing in this app as moderator, and
receivers to accept it in a browser, based on a screen-sharing URL (like
join-me for example)
I would love to give it a try and help. If there is some open-source code
somewhere on github that I can start with, also for the javascript effort,
please let me know.
For the moment I am watching:
https://github.com/jitsi/jitsi-videobridge/commits/master

Thanks again,
Mircea

···

On Fri, Nov 22, 2013 at 11:45 PM, Emil Ivov <emcho@jitsi.org> wrote:

And here's what the first validation tests look like:

Kudos to Philipp and Lyubo who are the main culprits here.

On 22.11.13, 17:57, Emil Ivov wrote:

We are actually working on this right now, together with Philipp
Hancke from Estos (CCed) who is working on an a JS prototype.

This is why we've recently added support for ICE and DTLS/SRTP. It's
been a tough battle but we should be close.

Emil

On Fri, Nov 22, 2013 at 5:52 PM, Mircea Carasel <mirceac@ezuce.com> >> wrote:

Hi,

I have been thinking if jitsi-videobridge can be used to send the video
stream to a browser instead of a Java client. Could videobridge be used
as a
MCU to send the video stream to browsers?

I have been able to create a small Java application where I created a
DatagramSocket and I made it capable to receive video stream from the
videobridge (the stream was originally sent by jitsi phone)

Code example:

public void notifyVideobridgeToRelayStream(int rtpPort, int rtcpPort)
throws
Exception {
//just send an empty packet to make sure that videobridge locks the
channel
you are using
//and starts relaying the data to invitee
System.out.println("MIRCEA send empty packets to videobridge to ensure
video
RELAY XX "+rtpPort);
DatagramSocket ds1 = new DatagramSocket();
DatagramPacket emptyPacket1 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtpPort);
ds1.send(emptyPacket1);
DatagramSocket ds2 = new DatagramSocket();
DatagramPacket emptyPacket2 = new DatagramPacket(new byte[0], 0,
InetAddress.getByName("192.168.7.100"), rtcpPort);
ds2.send(emptyPacket2);
while(true) {
DatagramPacket p = new DatagramPacket(new byte [1000] , 1000);
ds1.receive(p);
System.out.println("RECEIVED: " + new String(p.getData()));
}
//ds1.close();
//ds2.close();
}

I would like to display it in a browser.
I tried to create the same application using node.js
(http://nodejs.org/api/dgram.html) but I wasn't able to display the
stream
in a browser..
Also I am thinking if WebRTC support can receive and play such stream
from
the videobridge.

Anyone else tried this, could be possible?

Thanks,
Mircea

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

--
https://jitsi.org

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#5

All ongoing work is being committed to

Note that there is no javascript effort at this point. The WebRTC web server still controls everything through XMPP and Colibri.

Emil

···

On 25.11.13, 09:00, Mircea Carasel wrote:

Thanks Emil for sharing this. Indeed, this is awesome.

I already used jitsi-videobridge very well in a screen-sharing app. My
plan is now is to initiate screen-sharing in this app as moderator, and
receivers to accept it in a browser, based on a screen-sharing URL (like
join-me for example)
I would love to give it a try and help. If there is some open-source
code somewhere on github that I can start with, also for the javascript
effort, please let me know.
For the moment I am watching:
https://github.com/jitsi/jitsi-videobridge/commits/master

Thanks again,
Mircea

On Fri, Nov 22, 2013 at 11:45 PM, Emil Ivov <emcho@jitsi.org > <mailto:emcho@jitsi.org>> wrote:

    And here's what the first validation tests look like:

    Kudos to Philipp and Lyubo who are the main culprits here.

    On 22.11.13, 17:57, Emil Ivov wrote:

        We are actually working on this right now, together with Philipp
        Hancke from Estos (CCed) who is working on an a JS prototype.

        This is why we've recently added support for ICE and DTLS/SRTP. It's
        been a tough battle but we should be close.

        Emil

        On Fri, Nov 22, 2013 at 5:52 PM, Mircea Carasel > <mirceac@ezuce.com <mailto:mirceac@ezuce.com>> wrote:

            Hi,

            I have been thinking if jitsi-videobridge can be used to
            send the video
            stream to a browser instead of a Java client. Could
            videobridge be used as a
            MCU to send the video stream to browsers?

            I have been able to create a small Java application where I
            created a
            DatagramSocket and I made it capable to receive video stream
            from the
            videobridge (the stream was originally sent by jitsi phone)

            Code example:

            public void notifyVideobridgeToRelayStream__(int rtpPort,
            int rtcpPort) throws
            Exception {
            //just send an empty packet to make sure that videobridge
            locks the channel
            you are using
            //and starts relaying the data to invitee
            System.out.println("MIRCEA send empty packets to videobridge
            to ensure video
            RELAY XX "+rtpPort);
            DatagramSocket ds1 = new DatagramSocket();
            DatagramPacket emptyPacket1 = new DatagramPacket(new byte[0], 0,
            InetAddress.getByName("192.__168.7.100"), rtpPort);
            ds1.send(emptyPacket1);
            DatagramSocket ds2 = new DatagramSocket();
            DatagramPacket emptyPacket2 = new DatagramPacket(new byte[0], 0,
            InetAddress.getByName("192.__168.7.100"), rtcpPort);
            ds2.send(emptyPacket2);
            while(true) {
            DatagramPacket p = new DatagramPacket(new byte [1000] , 1000);
            ds1.receive(p);
            System.out.println("RECEIVED: " + new String(p.getData()));
            }
            //ds1.close();
            //ds2.close();
            }

            I would like to display it in a browser.
            I tried to create the same application using node.js
            (http://nodejs.org/api/dgram.__html
            <http://nodejs.org/api/dgram.html>) but I wasn't able to
            display the stream
            in a browser..
            Also I am thinking if WebRTC support can receive and play
            such stream from
            the videobridge.

            Anyone else tried this, could be possible?

            Thanks,
            Mircea

            _________________________________________________
            dev mailing list
            dev@jitsi.org <mailto:dev@jitsi.org>
            Unsubscribe instructions and other list options:
            http://lists.jitsi.org/__mailman/listinfo/dev
            <http://lists.jitsi.org/mailman/listinfo/dev>

    --
    https://jitsi.org

    _______________________________________________
    dev mailing list
    dev@jitsi.org <mailto:dev@jitsi.org>
    Unsubscribe instructions and other list options:
    http://lists.jitsi.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

--
https://jitsi.org


#6

All ongoing work is being committed to

https://github.com/jitsi/jitsi-videobridge/commits/master

Note that there is no javascript effort at this point. The WebRTC web server still controls everything through XMPP and Colibri.

The clientside JS is currently based on https://github.com/ESTOS/strophe.jingle and the strophejingle interop client from https://github.com/legastero/jingle-interop-demos
with some minor modification yet.