HL
Hubert Langevin
Wed, Oct 15, 2008 10:12 PM
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your cpu is
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried to make
.def filen and convert libvlc.lib but lib didnt work.. I guess it was
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there any Pjsua
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin hubertlangevin@gmail.com
wrote:
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good tips on
which functions you use but the whole thing is a bit too confusing for
me and just didn't work for me. I am using the old version of VLC, i'm
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
I was reading what you mentioned earlier, about the fact that you want
video calls between pjsua to other software clients and soft phones/
VoIP Phones. Can't you do that already using VLC both ways? I mean for
video calls all you need is modify your outgoing SDP so it contains
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding SDP
and start one instance of VLC that reads and decodes at the same time.
I do that using VLC_AddIntf() for multiple video streams incoming and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the new
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an eyebeam
(x-lite) video phone and everything was fine. Audio was fine and video
was showing as well. Actually video was very pixelated, even though I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
have different implementations of H264 i'm not sure. But video calls
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua too.
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide a
bit too complicated/confusing and overloaded for what i wanted to do.
Especially his definitions in the vlc.h file. Don't need all that.
What i do is just get the remote IP, port, codec from remote_sdp and
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do. Plus, i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hello Muge,
Yes my implementation sounds different. I guess i took the easiest
and
quickest way to get video working. I do write the file.sdp file just
like you and get VLC to read and decode the sdp file, but i also use
VLC to stream.
To answer your question yes i did install Microsoft Platform SDK...
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode, why not
use
it to stream as well? You won't have to take care of streams, ports,
transports, etc... It might be easier for you. I mean you are
already
using VLC to decode, might as well use it to encode. Makes your life
easier. Maybe i'm missing something that you want to accomplish.
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours. I want
pjsip
to
stream h264 from one side to other.. You choose VLC to do it..
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which includes
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show headers ?
Muge
On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Mugo,
No i don't create another stream for video. I just make sure the
port
ranges for audio and video don't overlap. For example for audio i
do
the usual pjsip thing, start the port range at 4000 and with a
maximum
of 32 calls it'll go up to 4063. For the video i've got a config
file
that pjsua_app.c reads at startup. In there i specify what port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts using
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the initial
port
for video is the one that i specified in the video config file.
After
having sent the offer and read the incoming remote_sdp, what i
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I pass it to
the
commands buffer of VLC and use the functions VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP handle the
video streams. I use PJSIP only for SDP negotiation that's it. I
leave
PJSIP to take care of all the audio streams and ports. And i keep
the
video part to VLC, including its transport and everything else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have two
incoming
H264 streams on your PC? How was your CPU usage?. When i have
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created Pjsip
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in your
application.
Regards
Muge
On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls between
PCs.
In
the callback on_call_state() in pjsua_app.c when i get an
incoming
call i check if it has video media. I do this by grabbing the
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had to change
a
few
things in negotiating SDP's. If i have video media i just grab
the
remote IP and port number out of the remote_sdp, put these
values
in
the commands buffer for VLC and start playing from remote
stream
and
streaming off my webcam using the VLC functions: VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int), VLC_AddIntf(int,
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but as soon
as
I
get
two video calls up on my PC my CPU usage jumps really high and
stays
there for the duration of the two calls. Is it because I'm
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow libraries, and it
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I have some
port
issues
..
video stream is using audio streams port.. i will be
handling
it
soon i
guess..
and what are you using for displaying stream , ? VLC or
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is it
interesting
for
you?
Tell me your problem and if it's possible I can help you.
Emanuele Bottegoni
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com> wrote:
> Hi Hubert;
>
> I tried your way of vlc video call.. I guess the problem at your cpu is
> because of loading to many dll ( vlc and plugins) during the call..
> My computer was forced also..
> I am using VStudio so i am using libvlc.dll... actually i ve tried to make
> .def filen and convert libvlc.lib but lib didnt work.. I guess it was
> because new api of vlc..
>
> Did you code to get SDP information from pjsua_app.c or is there any Pjsua
> api to get active sdp information ?
>
> muge
>
>
>
> On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin <hubertlangevin@gmail.com>
> wrote:
>>
>> Hi Muge,
>>
>> Yeah that's why i didn't follow that guide. It's got some good tips on
>> which functions you use but the whole thing is a bit too confusing for
>> me and just didn't work for me. I am using the old version of VLC, i'm
>> not sure how to call it. It's at this link below. Again the old
>> version is simple for what i want to accomplish.
>>
>>
>> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
>>
>> I was reading what you mentioned earlier, about the fact that you want
>> video calls between pjsua to other software clients and soft phones/
>> VoIP Phones. Can't you do that already using VLC both ways? I mean for
>> video calls all you need is modify your outgoing SDP so it contains
>> video media at a certain port that you specify at startup so the
>> remote video phones can read it and you read their corresponding SDP
>> and start one instance of VLC that reads and decodes at the same time.
>> I do that using VLC_AddIntf() for multiple video streams incoming and
>> outgoing. The audio is still handled by pjsip during that same sdp
>> exchange and the video by vlc. For any re-invites, for example change
>> of remote video port or remote video codec, just destroy the vlc
>> instance in on_call_media() callback and re-create it using the new
>> values from the re-invites. I mean it is still a video call that i
>> make to other video phones. I did a test from my pjsua to an eyebeam
>> (x-lite) video phone and everything was fine. Audio was fine and video
>> was showing as well. Actually video was very pixelated, even though I
>> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
>> have different implementations of H264 i'm not sure. But video calls
>> between pjsua <===> pjsua works perfectly.
>>
>> And VLC does support SRTP from what i've seen. I'm using pjsua too.
>> Are you using libvlc.lib and libvlc.dll?
>>
>> Hubert
>>
>> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> wrote:
>> > yeah i am not getting anything also..
>> > may i ask which version of vlc you are using?
>> >
>> > I tried it but there are some errors like below
>> > main interface error: no interface module matched "hotkeys,none"
>> >
>> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
>> > <hubertlangevin@gmail.com>
>> > wrote:
>> >>
>> >> Hi Muge,
>> >>
>> >> Oh that tutorial. Yeah i started off that tutorial. My implementation
>> >> of video is very very similar. I use the commands buffer,
>> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide a
>> >> bit too complicated/confusing and overloaded for what i wanted to do.
>> >> Especially his definitions in the vlc.h file. Don't need all that.
>> >> What i do is just get the remote IP, port, codec from remote_sdp and
>> >> use a couple of VLC functions to stream and decode. Done. That
>> >> tutorial i found was too much for what i simply wanted to do. Plus, i
>> >> was never good at spanish. ;)
>> >>
>> >> Hubert
>> >>
>> >>
>> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> wrote:
>> >> > Hi Hubert;
>> >> >
>> >> > I have a question for you ..
>> >> >
>> >> > Did you use the below tutorial for vlc display inside pjsip?
>> >> > http://wiki.videolan.org/LibVLC_Visual_C
>> >> >
>> >> >
>> >> > Muge
>> >> >
>> >> >
>> >> >
>> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
>> >> > <hubertlangevin@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> Hello Muge,
>> >> >>
>> >> >> Yes my implementation sounds different. I guess i took the easiest
>> >> >> and
>> >> >> quickest way to get video working. I do write the file.sdp file just
>> >> >> like you and get VLC to read and decode the sdp file, but i also use
>> >> >> VLC to stream.
>> >> >>
>> >> >> To answer your question yes i did install Microsoft Platform SDK...
>> >> >> Hmmm... i can't remember which version though.
>> >> >>
>> >> >> Quick question. Since you are already using VLC to decode, why not
>> >> >> use
>> >> >> it to stream as well? You won't have to take care of streams, ports,
>> >> >> transports, etc... It might be easier for you. I mean you are
>> >> >> already
>> >> >> using VLC to decode, might as well use it to encode. Makes your life
>> >> >> easier. Maybe i'm missing something that you want to accomplish.
>> >> >>
>> >> >> What do you think?
>> >> >>
>> >> >> Hubert
>> >> >>
>> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
>> >> >> <muge.ersoy@gmail.com>
>> >> >> wrote:
>> >> >> > Hi Hubert;
>> >> >> >
>> >> >> > Actually my implementation is quite different from yours. I want
>> >> >> > pjsip
>> >> >> > to
>> >> >> > stream h264 from one side to other.. You choose VLC to do it..
>> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
>> >> >> > functions
>> >> >> > as
>> >> >> > well
>> >> >> > as SDP negotiation.
>> >> >> >
>> >> >> > I want vlc to decode this h264 stream with file.sdp which includes
>> >> >> > remote ip
>> >> >> > and port information with codec.
>> >> >> >
>> >> >> > Did you install Microsoft Platform SDK for direct show headers ?
>> >> >> >
>> >> >> > Muge
>> >> >> >
>> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
>> >> >> > <hubertlangevin@gmail.com>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> Hi Mugo,
>> >> >> >>
>> >> >> >> No i don't create another stream for video. I just make sure the
>> >> >> >> port
>> >> >> >> ranges for audio and video don't overlap. For example for audio i
>> >> >> >> do
>> >> >> >> the usual pjsip thing, start the port range at 4000 and with a
>> >> >> >> maximum
>> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a config
>> >> >> >> file
>> >> >> >> that pjsua_app.c reads at startup. In there i specify what port
>> >> >> >> video
>> >> >> >> should start at. And i usually put it at 6000. When the
>> >> >> >> application
>> >> >> >> runs it checks if those ports are free or not and starts using
>> >> >> >> them.
>> >> >> >> This way my audio and video ports don't overlap.
>> >> >> >>
>> >> >> >> When i create my SDP, and before i send the offer, the initial
>> >> >> >> port
>> >> >> >> for video is the one that i specified in the video config file.
>> >> >> >> After
>> >> >> >> having sent the offer and read the incoming remote_sdp, what i
>> >> >> >> pass
>> >> >> >> to
>> >> >> >> VLC is just the port number to transmit to, IP address to
>> >> >> >> transmit
>> >> >> >> to,
>> >> >> >> transcoding codec, video bit rate and the mux type. I pass it to
>> >> >> >> the
>> >> >> >> commands buffer of VLC and use the functions VLC_Create(),
>> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),VLC_FullScreen(int),
>> >> >> >> etc... So to answer your question no i don't let PJSIP handle the
>> >> >> >> video streams. I use PJSIP only for SDP negotiation that's it. I
>> >> >> >> leave
>> >> >> >> PJSIP to take care of all the audio streams and ports. And i keep
>> >> >> >> the
>> >> >> >> video part to VLC, including its transport and everything else.
>> >> >> >> PJSIP
>> >> >> >> doesn't touch that part.
>> >> >> >>
>> >> >> >> I can see you're using H264. I am too. Did you ever have two
>> >> >> >> incoming
>> >> >> >> H264 streams on your PC? How was your CPU usage?. When i have
>> >> >> >> more
>> >> >> >> than one on my PC my CPU usage doesn't look too good..
>> >> >> >>
>> >> >> >> Hubert
>> >> >> >>
>> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
>> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> wrote:
>> >> >> >> > Hi Hubert;
>> >> >> >> >
>> >> >> >> > Haven't you created another stream for video ?
>> >> >> >> >
>> >> >> >> > As far as i understand after SDP negotiation you get if there
>> >> >> >> > is
>> >> >> >> > video
>> >> >> >> > stream or not...
>> >> >> >> >
>> >> >> >> > This is my OK answer form pjsip to another sip client
>> >> >> >> >
>> >> >> >> > m=audio 4000 RTP/AVP 3
>> >> >> >> > a=rtpmap:3 GSM/8000
>> >> >> >> > m=video 4002 RTP/AVP 98
>> >> >> >> > a=rtpmap:98 H264/90000
>> >> >> >> > a=recvonly
>> >> >> >> >
>> >> >> >> > Everything seems pretty. But after streams are created Pjsip
>> >> >> >> > mixes
>> >> >> >> > the
>> >> >> >> > ports
>> >> >> >> > with audio and video and it all crashes ...
>> >> >> >> > How is your point of view to audio and video streams in your
>> >> >> >> > application.
>> >> >> >> >
>> >> >> >> > Regards
>> >> >> >> > Muge
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
>> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> > wrote:
>> >> >> >> >>
>> >> >> >> >> Hello everyone,
>> >> >> >> >>
>> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
>> >> >> >> >> completely
>> >> >> >> >> finished it yet but i can now make some video calls between
>> >> >> >> >> PCs.
>> >> >> >> >> In
>> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get an
>> >> >> >> >> incoming
>> >> >> >> >> call i check if it has video media. I do this by grabbing the
>> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
>> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
>> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had to change
>> >> >> >> >> a
>> >> >> >> >> few
>> >> >> >> >> things in negotiating SDP's. If i have video media i just grab
>> >> >> >> >> the
>> >> >> >> >> remote IP and port number out of the remote_sdp, put these
>> >> >> >> >> values
>> >> >> >> >> in
>> >> >> >> >> the commands buffer for VLC and start playing from remote
>> >> >> >> >> stream
>> >> >> >> >> and
>> >> >> >> >> streaming off my webcam using the VLC functions: VLC_Create(),
>> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int), VLC_AddIntf(int,
>> >> >> >> >> char
>> >> >> >> >> *s,
>> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
>> >> >> >> >> VLC_Pause(int),
>> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but as soon
>> >> >> >> >> as
>> >> >> >> >> I
>> >> >> >> >> get
>> >> >> >> >> two video calls up on my PC my CPU usage jumps really high and
>> >> >> >> >> stays
>> >> >> >> >> there for the duration of the two calls. Is it because I'm
>> >> >> >> >> using
>> >> >> >> >> the
>> >> >> >> >> wrong type of video codec? I'm currently using H264.
>> >> >> >> >>
>> >> >> >> >> Any ideas would be greatly appreciated.
>> >> >> >> >>
>> >> >> >> >> Hubert
>> >> >> >> >>
>> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
>> >> >> >> >> <tiagores@gmail.com>
>> >> >> >> >> wrote:
>> >> >> >> >> > Hello all,
>> >> >> >> >> > Thanks for your responses.
>> >> >> >> >> >
>> >> >> >> >> > My Idea is to make some kind of videoconference. It should
>> >> >> >> >> > be
>> >> >> >> >> > signaled
>> >> >> >> >> > with
>> >> >> >> >> > SIP, and stream via RTP.
>> >> >> >> >> > I'm able to capture video using directshow libraries, and it
>> >> >> >> >> > would
>> >> >> >> >> > be
>> >> >> >> >> > great
>> >> >> >> >> > to use transport functions of PJSIP to do the rest.
>> >> >> >> >> > What do you think?
>> >> >> >> >> >
>> >> >> >> >> > Thanks,
>> >> >> >> >> > Tiago
>> >> >> >> >> >
>> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> >> >> >> >>
>> >> >> >> >> >> Hi;
>> >> >> >> >> >>
>> >> >> >> >> >> Did you able to start two way stream with 264 . I have some
>> >> >> >> >> >> port
>> >> >> >> >> >> issues
>> >> >> >> >> >> ..
>> >> >> >> >> >> video stream is using audio streams port.. i will be
>> >> >> >> >> >> handling
>> >> >> >> >> >> it
>> >> >> >> >> >> soon i
>> >> >> >> >> >> guess..
>> >> >> >> >> >>
>> >> >> >> >> >> and what are you using for displaying stream , ? VLC or
>> >> >> >> >> >> ffmpeg
>> >> >> >> >> >> .?
>> >> >> >> >> >>
>> >> >> >> >> >> muge
>> >> >> >> >> >>
>> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
>> >> >> >> >> >> <perry@pjsip.org>
>> >> >> >> >> >> wrote:
>> >> >> >> >> >>>
>> >> >> >> >> >>> emanuele bottegoni wrote:
>> >> >> >> >> >>>>
>> >> >> >> >> >>>> Hi Tiago,
>> >> >> >> >> >>>>
>> >> >> >> >> >>>> I've added negotation to receive H264 streams,is it
>> >> >> >> >> >>>> interesting
>> >> >> >> >> >>>> for
>> >> >> >> >> >>>> you?
>> >> >> >> >> >>>> Tell me your problem and if it's possible I can help you.
>> >> >> >> >> >>>>
>> >> >> >> >> >>>> Emanuele Bottegoni
>> >> >> >> >> >>>>
>> >> >> >> >> >>>>
>> >> >> >> >> >>>
>> >> >> >> >> >>> Hi Emanuele,
>> >> >> >> >> >>>
>> >> >> >> >> >>> Certainly, adding video support is always interesting.
>> >> >> >> >> >>> Contact
>> >> >> >> >> >>> me
>> >> >> >> >> >>> if
>> >> >> >> >> >>> you
>> >> >> >> >> >>> are willing to write a wiki page or a blog post about it.
>> >> >> >> >> >>>
>> >> >> >> >> >>> Thank you for your support,
>> >> >> >> >> >>>
>> >> >> >> >> >>>
>> >> >> >> >> >>> --
>> >> >> >> >> >>> Perry Ismangil
>> >> >> >> >> >>> http://www.pjsip.org
>> >> >> >> >> >>>
>> >> >> >> >> >>> _______________________________________________
>> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >>>
>> >> >> >> >> >>> pjsip mailing list
>> >> >> >> >> >>> pjsip@lists.pjsip.org
>> >> >> >> >> >>>
>> >> >> >> >> >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >>
>> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > _______________________________________________
>> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > pjsip mailing list
>> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >>
>> >> >> >> >> _______________________________________________
>> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >>
>> >> >> >> >> pjsip mailing list
>> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > _______________________________________________
>> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >
>> >> >> >> > pjsip mailing list
>> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >>
>> >> >> >> pjsip mailing list
>> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >
>> >> >> > pjsip mailing list
>> >> >> > pjsip@lists.pjsip.org
>> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> _______________________________________________
>> >> >> Visit our blog: http://blog.pjsip.org
>> >> >>
>> >> >> pjsip mailing list
>> >> >> pjsip@lists.pjsip.org
>> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Visit our blog: http://blog.pjsip.org
>> >> >
>> >> > pjsip mailing list
>> >> > pjsip@lists.pjsip.org
>> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> Visit our blog: http://blog.pjsip.org
>> >>
>> >> pjsip mailing list
>> >> pjsip@lists.pjsip.org
>> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>> > _______________________________________________
>> > Visit our blog: http://blog.pjsip.org
>> >
>> > pjsip mailing list
>> > pjsip@lists.pjsip.org
>> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip@lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
PE
P.Muge Ersoy
Thu, Oct 16, 2008 1:42 PM
Hi Hubert;
I tried your method of grapping ports and ip address and it works fine.
But when ever i start streaming i am not able to stream h264 .. it captured
my outgoing packages and see that my stream is mpeg2 (Payload type: MPEG-II
transport streams (33)) . So i am not able to see anything on the softphone
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be 8.6c is
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried VLC
9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
hubertlangevin@gmail.comwrote:
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your cpu is
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried to
.def filen and convert libvlc.lib but lib didnt work.. I guess it was
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there any
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin <
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good tips on
which functions you use but the whole thing is a bit too confusing for
me and just didn't work for me. I am using the old version of VLC, i'm
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
I was reading what you mentioned earlier, about the fact that you want
video calls between pjsua to other software clients and soft phones/
VoIP Phones. Can't you do that already using VLC both ways? I mean for
video calls all you need is modify your outgoing SDP so it contains
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding SDP
and start one instance of VLC that reads and decodes at the same time.
I do that using VLC_AddIntf() for multiple video streams incoming and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the new
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an eyebeam
(x-lite) video phone and everything was fine. Audio was fine and video
was showing as well. Actually video was very pixelated, even though I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
have different implementations of H264 i'm not sure. But video calls
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua too.
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide a
bit too complicated/confusing and overloaded for what i wanted to do.
Especially his definitions in the vlc.h file. Don't need all that.
What i do is just get the remote IP, port, codec from remote_sdp and
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do. Plus, i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hello Muge,
Yes my implementation sounds different. I guess i took the easiest
and
quickest way to get video working. I do write the file.sdp file
like you and get VLC to read and decode the sdp file, but i also
VLC to stream.
To answer your question yes i did install Microsoft Platform
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode, why not
use
it to stream as well? You won't have to take care of streams,
transports, etc... It might be easier for you. I mean you are
already
using VLC to decode, might as well use it to encode. Makes your
easier. Maybe i'm missing something that you want to accomplish.
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours. I want
pjsip
to
stream h264 from one side to other.. You choose VLC to do it..
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show headers ?
Muge
On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Mugo,
No i don't create another stream for video. I just make sure
port
ranges for audio and video don't overlap. For example for audio
do
the usual pjsip thing, start the port range at 4000 and with a
maximum
of 32 calls it'll go up to 4063. For the video i've got a
file
that pjsua_app.c reads at startup. In there i specify what port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts using
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the initial
port
for video is the one that i specified in the video config file.
After
having sent the offer and read the incoming remote_sdp, what i
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I pass it
the
commands buffer of VLC and use the functions VLC_Create(),
VLC_Init(int, int, char **s),
VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP handle
video streams. I use PJSIP only for SDP negotiation that's it.
leave
PJSIP to take care of all the audio streams and ports. And i
the
video part to VLC, including its transport and everything else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have two
incoming
H264 streams on your PC? How was your CPU usage?. When i have
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created Pjsip
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in your
application.
Regards
Muge
On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls between
PCs.
In
the callback on_call_state() in pjsua_app.c when i get an
incoming
call i check if it has video media. I do this by grabbing
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had to
a
few
things in negotiating SDP's. If i have video media i just
the
remote IP and port number out of the remote_sdp, put these
values
in
the commands buffer for VLC and start playing from remote
stream
and
streaming off my webcam using the VLC functions:
VLC_Init(int, int, char **s), VLC_Play(int),
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but as
as
I
get
two video calls up on my PC my CPU usage jumps really high
stays
there for the duration of the two calls. Is it because I'm
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow libraries, and
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I have
port
issues
..
video stream is using audio streams port.. i will be
handling
it
soon i
guess..
and what are you using for displaying stream , ? VLC or
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is it
interesting
for
you?
Tell me your problem and if it's possible I can help
Hi Emanuele,
Certainly, adding video support is always interesting.
Contact
me
if
you
are willing to write a wiki page or a blog post about
Hi Hubert;
I tried your method of grapping ports and ip address and it works fine.
But when ever i start streaming i am not able to stream h264 .. it captured
my outgoing packages and see that my stream is mpeg2 (Payload type: MPEG-II
transport streams (33)) . So i am not able to see anything on the softphone
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be 8.6c is
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried VLC
9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
<hubertlangevin@gmail.com>wrote:
> Hi Muge,
>
> Yes i think you're right. When i run pjsua i do load ALL the plugins
> for VLC from the plugins directory. Maybe i should remove what i don't
> need from there.
>
> Regarding your question about getting SDP information i do it in the
> callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
> SDP negotiation is finished and everyone is happy in terms of sdp
> parameters, and when the callback's event is CONFIRMED, i acquire the
> call using the call_id as in acquire_call("Something Something",
> call_id, &call, &dlg). I then grab the local and remote SDP's using:
>
> pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
> pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
>
> Once i get the two SDP's above, all i do is check for the video
> parameters. I think it's in remote_sdp->conn->addr and
> remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
> and so on and so forth. Just grab the things you think you might need
> from the remote SDP (and local SDP) for whichever player you are
> using. I'm using VLC so IP address, port and codec are the main things
> for me. I also do a LOT of checks but that's the above concept is
> mainly how i do it.
>
> Then you can write the video.sdp file. which you already how it looks
> like. Then you can proceed on how you want to implement your video
> handling from here. If you are using VLC there are a few ways to do
> that, you just need to pick the one you feel more comfortable with. I
> personally use the --extraintf and --vlm-conf method but that's just
> me.
>
> Hubert
>
> On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> wrote:
> > Hi Hubert;
> >
> > I tried your way of vlc video call.. I guess the problem at your cpu is
> > because of loading to many dll ( vlc and plugins) during the call..
> > My computer was forced also..
> > I am using VStudio so i am using libvlc.dll... actually i ve tried to
> make
> > .def filen and convert libvlc.lib but lib didnt work.. I guess it was
> > because new api of vlc..
> >
> > Did you code to get SDP information from pjsua_app.c or is there any
> Pjsua
> > api to get active sdp information ?
> >
> > muge
> >
> >
> >
> > On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin <
> hubertlangevin@gmail.com>
> > wrote:
> >>
> >> Hi Muge,
> >>
> >> Yeah that's why i didn't follow that guide. It's got some good tips on
> >> which functions you use but the whole thing is a bit too confusing for
> >> me and just didn't work for me. I am using the old version of VLC, i'm
> >> not sure how to call it. It's at this link below. Again the old
> >> version is simple for what i want to accomplish.
> >>
> >>
> >>
> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
> >>
> >> I was reading what you mentioned earlier, about the fact that you want
> >> video calls between pjsua to other software clients and soft phones/
> >> VoIP Phones. Can't you do that already using VLC both ways? I mean for
> >> video calls all you need is modify your outgoing SDP so it contains
> >> video media at a certain port that you specify at startup so the
> >> remote video phones can read it and you read their corresponding SDP
> >> and start one instance of VLC that reads and decodes at the same time.
> >> I do that using VLC_AddIntf() for multiple video streams incoming and
> >> outgoing. The audio is still handled by pjsip during that same sdp
> >> exchange and the video by vlc. For any re-invites, for example change
> >> of remote video port or remote video codec, just destroy the vlc
> >> instance in on_call_media() callback and re-create it using the new
> >> values from the re-invites. I mean it is still a video call that i
> >> make to other video phones. I did a test from my pjsua to an eyebeam
> >> (x-lite) video phone and everything was fine. Audio was fine and video
> >> was showing as well. Actually video was very pixelated, even though I
> >> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
> >> have different implementations of H264 i'm not sure. But video calls
> >> between pjsua <===> pjsua works perfectly.
> >>
> >> And VLC does support SRTP from what i've seen. I'm using pjsua too.
> >> Are you using libvlc.lib and libvlc.dll?
> >>
> >> Hubert
> >>
> >> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> wrote:
> >> > yeah i am not getting anything also..
> >> > may i ask which version of vlc you are using?
> >> >
> >> > I tried it but there are some errors like below
> >> > main interface error: no interface module matched "hotkeys,none"
> >> >
> >> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
> >> > <hubertlangevin@gmail.com>
> >> > wrote:
> >> >>
> >> >> Hi Muge,
> >> >>
> >> >> Oh that tutorial. Yeah i started off that tutorial. My implementation
> >> >> of video is very very similar. I use the commands buffer,
> >> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide a
> >> >> bit too complicated/confusing and overloaded for what i wanted to do.
> >> >> Especially his definitions in the vlc.h file. Don't need all that.
> >> >> What i do is just get the remote IP, port, codec from remote_sdp and
> >> >> use a couple of VLC functions to stream and decode. Done. That
> >> >> tutorial i found was too much for what i simply wanted to do. Plus, i
> >> >> was never good at spanish. ;)
> >> >>
> >> >> Hubert
> >> >>
> >> >>
> >> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> wrote:
> >> >> > Hi Hubert;
> >> >> >
> >> >> > I have a question for you ..
> >> >> >
> >> >> > Did you use the below tutorial for vlc display inside pjsip?
> >> >> > http://wiki.videolan.org/LibVLC_Visual_C
> >> >> >
> >> >> >
> >> >> > Muge
> >> >> >
> >> >> >
> >> >> >
> >> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
> >> >> > <hubertlangevin@gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> Hello Muge,
> >> >> >>
> >> >> >> Yes my implementation sounds different. I guess i took the easiest
> >> >> >> and
> >> >> >> quickest way to get video working. I do write the file.sdp file
> just
> >> >> >> like you and get VLC to read and decode the sdp file, but i also
> use
> >> >> >> VLC to stream.
> >> >> >>
> >> >> >> To answer your question yes i did install Microsoft Platform
> SDK...
> >> >> >> Hmmm... i can't remember which version though.
> >> >> >>
> >> >> >> Quick question. Since you are already using VLC to decode, why not
> >> >> >> use
> >> >> >> it to stream as well? You won't have to take care of streams,
> ports,
> >> >> >> transports, etc... It might be easier for you. I mean you are
> >> >> >> already
> >> >> >> using VLC to decode, might as well use it to encode. Makes your
> life
> >> >> >> easier. Maybe i'm missing something that you want to accomplish.
> >> >> >>
> >> >> >> What do you think?
> >> >> >>
> >> >> >> Hubert
> >> >> >>
> >> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> wrote:
> >> >> >> > Hi Hubert;
> >> >> >> >
> >> >> >> > Actually my implementation is quite different from yours. I want
> >> >> >> > pjsip
> >> >> >> > to
> >> >> >> > stream h264 from one side to other.. You choose VLC to do it..
> >> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
> >> >> >> > functions
> >> >> >> > as
> >> >> >> > well
> >> >> >> > as SDP negotiation.
> >> >> >> >
> >> >> >> > I want vlc to decode this h264 stream with file.sdp which
> includes
> >> >> >> > remote ip
> >> >> >> > and port information with codec.
> >> >> >> >
> >> >> >> > Did you install Microsoft Platform SDK for direct show headers ?
> >> >> >> >
> >> >> >> > Muge
> >> >> >> >
> >> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> Hi Mugo,
> >> >> >> >>
> >> >> >> >> No i don't create another stream for video. I just make sure
> the
> >> >> >> >> port
> >> >> >> >> ranges for audio and video don't overlap. For example for audio
> i
> >> >> >> >> do
> >> >> >> >> the usual pjsip thing, start the port range at 4000 and with a
> >> >> >> >> maximum
> >> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a
> config
> >> >> >> >> file
> >> >> >> >> that pjsua_app.c reads at startup. In there i specify what port
> >> >> >> >> video
> >> >> >> >> should start at. And i usually put it at 6000. When the
> >> >> >> >> application
> >> >> >> >> runs it checks if those ports are free or not and starts using
> >> >> >> >> them.
> >> >> >> >> This way my audio and video ports don't overlap.
> >> >> >> >>
> >> >> >> >> When i create my SDP, and before i send the offer, the initial
> >> >> >> >> port
> >> >> >> >> for video is the one that i specified in the video config file.
> >> >> >> >> After
> >> >> >> >> having sent the offer and read the incoming remote_sdp, what i
> >> >> >> >> pass
> >> >> >> >> to
> >> >> >> >> VLC is just the port number to transmit to, IP address to
> >> >> >> >> transmit
> >> >> >> >> to,
> >> >> >> >> transcoding codec, video bit rate and the mux type. I pass it
> to
> >> >> >> >> the
> >> >> >> >> commands buffer of VLC and use the functions VLC_Create(),
> >> >> >> >> VLC_Init(int, int, char **s),
> VLC_Play(int),VLC_FullScreen(int),
> >> >> >> >> etc... So to answer your question no i don't let PJSIP handle
> the
> >> >> >> >> video streams. I use PJSIP only for SDP negotiation that's it.
> I
> >> >> >> >> leave
> >> >> >> >> PJSIP to take care of all the audio streams and ports. And i
> keep
> >> >> >> >> the
> >> >> >> >> video part to VLC, including its transport and everything else.
> >> >> >> >> PJSIP
> >> >> >> >> doesn't touch that part.
> >> >> >> >>
> >> >> >> >> I can see you're using H264. I am too. Did you ever have two
> >> >> >> >> incoming
> >> >> >> >> H264 streams on your PC? How was your CPU usage?. When i have
> >> >> >> >> more
> >> >> >> >> than one on my PC my CPU usage doesn't look too good..
> >> >> >> >>
> >> >> >> >> Hubert
> >> >> >> >>
> >> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > Hi Hubert;
> >> >> >> >> >
> >> >> >> >> > Haven't you created another stream for video ?
> >> >> >> >> >
> >> >> >> >> > As far as i understand after SDP negotiation you get if there
> >> >> >> >> > is
> >> >> >> >> > video
> >> >> >> >> > stream or not...
> >> >> >> >> >
> >> >> >> >> > This is my OK answer form pjsip to another sip client
> >> >> >> >> >
> >> >> >> >> > m=audio 4000 RTP/AVP 3
> >> >> >> >> > a=rtpmap:3 GSM/8000
> >> >> >> >> > m=video 4002 RTP/AVP 98
> >> >> >> >> > a=rtpmap:98 H264/90000
> >> >> >> >> > a=recvonly
> >> >> >> >> >
> >> >> >> >> > Everything seems pretty. But after streams are created Pjsip
> >> >> >> >> > mixes
> >> >> >> >> > the
> >> >> >> >> > ports
> >> >> >> >> > with audio and video and it all crashes ...
> >> >> >> >> > How is your point of view to audio and video streams in your
> >> >> >> >> > application.
> >> >> >> >> >
> >> >> >> >> > Regards
> >> >> >> >> > Muge
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> > wrote:
> >> >> >> >> >>
> >> >> >> >> >> Hello everyone,
> >> >> >> >> >>
> >> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
> >> >> >> >> >> completely
> >> >> >> >> >> finished it yet but i can now make some video calls between
> >> >> >> >> >> PCs.
> >> >> >> >> >> In
> >> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get an
> >> >> >> >> >> incoming
> >> >> >> >> >> call i check if it has video media. I do this by grabbing
> the
> >> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
> >> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
> >> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had to
> change
> >> >> >> >> >> a
> >> >> >> >> >> few
> >> >> >> >> >> things in negotiating SDP's. If i have video media i just
> grab
> >> >> >> >> >> the
> >> >> >> >> >> remote IP and port number out of the remote_sdp, put these
> >> >> >> >> >> values
> >> >> >> >> >> in
> >> >> >> >> >> the commands buffer for VLC and start playing from remote
> >> >> >> >> >> stream
> >> >> >> >> >> and
> >> >> >> >> >> streaming off my webcam using the VLC functions:
> VLC_Create(),
> >> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),
> VLC_AddIntf(int,
> >> >> >> >> >> char
> >> >> >> >> >> *s,
> >> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
> >> >> >> >> >> VLC_Pause(int),
> >> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but as
> soon
> >> >> >> >> >> as
> >> >> >> >> >> I
> >> >> >> >> >> get
> >> >> >> >> >> two video calls up on my PC my CPU usage jumps really high
> and
> >> >> >> >> >> stays
> >> >> >> >> >> there for the duration of the two calls. Is it because I'm
> >> >> >> >> >> using
> >> >> >> >> >> the
> >> >> >> >> >> wrong type of video codec? I'm currently using H264.
> >> >> >> >> >>
> >> >> >> >> >> Any ideas would be greatly appreciated.
> >> >> >> >> >>
> >> >> >> >> >> Hubert
> >> >> >> >> >>
> >> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
> >> >> >> >> >> <tiagores@gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >> > Hello all,
> >> >> >> >> >> > Thanks for your responses.
> >> >> >> >> >> >
> >> >> >> >> >> > My Idea is to make some kind of videoconference. It should
> >> >> >> >> >> > be
> >> >> >> >> >> > signaled
> >> >> >> >> >> > with
> >> >> >> >> >> > SIP, and stream via RTP.
> >> >> >> >> >> > I'm able to capture video using directshow libraries, and
> it
> >> >> >> >> >> > would
> >> >> >> >> >> > be
> >> >> >> >> >> > great
> >> >> >> >> >> > to use transport functions of PJSIP to do the rest.
> >> >> >> >> >> > What do you think?
> >> >> >> >> >> >
> >> >> >> >> >> > Thanks,
> >> >> >> >> >> > Tiago
> >> >> >> >> >> >
> >> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> >> >> >> >>
> >> >> >> >> >> >> Hi;
> >> >> >> >> >> >>
> >> >> >> >> >> >> Did you able to start two way stream with 264 . I have
> some
> >> >> >> >> >> >> port
> >> >> >> >> >> >> issues
> >> >> >> >> >> >> ..
> >> >> >> >> >> >> video stream is using audio streams port.. i will be
> >> >> >> >> >> >> handling
> >> >> >> >> >> >> it
> >> >> >> >> >> >> soon i
> >> >> >> >> >> >> guess..
> >> >> >> >> >> >>
> >> >> >> >> >> >> and what are you using for displaying stream , ? VLC or
> >> >> >> >> >> >> ffmpeg
> >> >> >> >> >> >> .?
> >> >> >> >> >> >>
> >> >> >> >> >> >> muge
> >> >> >> >> >> >>
> >> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
> >> >> >> >> >> >> <perry@pjsip.org>
> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> emanuele bottegoni wrote:
> >> >> >> >> >> >>>>
> >> >> >> >> >> >>>> Hi Tiago,
> >> >> >> >> >> >>>>
> >> >> >> >> >> >>>> I've added negotation to receive H264 streams,is it
> >> >> >> >> >> >>>> interesting
> >> >> >> >> >> >>>> for
> >> >> >> >> >> >>>> you?
> >> >> >> >> >> >>>> Tell me your problem and if it's possible I can help
> you.
> >> >> >> >> >> >>>>
> >> >> >> >> >> >>>> Emanuele Bottegoni
> >> >> >> >> >> >>>>
> >> >> >> >> >> >>>>
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> Hi Emanuele,
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> Certainly, adding video support is always interesting.
> >> >> >> >> >> >>> Contact
> >> >> >> >> >> >>> me
> >> >> >> >> >> >>> if
> >> >> >> >> >> >>> you
> >> >> >> >> >> >>> are willing to write a wiki page or a blog post about
> it.
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> Thank you for your support,
> >> >> >> >> >> >>>
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> --
> >> >> >> >> >> >>> Perry Ismangil
> >> >> >> >> >> >>> http://www.pjsip.org
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> _______________________________________________
> >> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >>>
> >> >> >> >> >> >>> pjsip mailing list
> >> >> >> >> >> >>> pjsip@lists.pjsip.org
> >> >> >> >> >> >>>
> >> >> >> >> >> >>>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >>
> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >>
> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > _______________________________________________
> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >
> >> >> >> >> > pjsip mailing list
> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >> _______________________________________________
> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >>
> >> >> >> >> pjsip mailing list
> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >
> >> >> >> > pjsip mailing list
> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >>
> >> >> >> pjsip mailing list
> >> >> >> pjsip@lists.pjsip.org
> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >
> >> >> > pjsip mailing list
> >> >> > pjsip@lists.pjsip.org
> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >>
> >> >> _______________________________________________
> >> >> Visit our blog: http://blog.pjsip.org
> >> >>
> >> >> pjsip mailing list
> >> >> pjsip@lists.pjsip.org
> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >> > _______________________________________________
> >> > Visit our blog: http://blog.pjsip.org
> >> >
> >> > pjsip mailing list
> >> > pjsip@lists.pjsip.org
> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >>
> >> _______________________________________________
> >> Visit our blog: http://blog.pjsip.org
> >>
> >> pjsip mailing list
> >> pjsip@lists.pjsip.org
> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
> > _______________________________________________
> > Visit our blog: http://blog.pjsip.org
> >
> > pjsip mailing list
> > pjsip@lists.pjsip.org
> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
HL
Hubert Langevin
Thu, Oct 16, 2008 11:55 PM
Hi Muge,
So you can't stream H264. Hmmm not sure what's going on there. I think
i had a similar problem and it had to do with what type of transport i
was using and type of mux i was putting in the commands buffer. And
also the video bit rate (vb=???). As i mentioned before i could stream
to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
had to change my webcam and still my image on the remote softphone was
pixelated. I was using a cheap (i mean really really cheap) webcam
before and i had a problem transcoding the frames to H264. When i
changed webcam to a more decent one things were slightly better. So it
could be your webcam. However i have a strong feeling it's more to do
with the version you're using, that is 8.6c.
Also some videophones and soft IP PBXs have different payload types
for video. You could check using Ethereal what payload type the
softphone is using and expecting in return. Could be a
mis-compatibility in payload types here and that's why it's not
showing up on the other end. I'm just guessing here. I had a LOT of
trouble getting video calls to work with different softphones out
there and things tend to get complicated with incompatible payload
types.
I guess a way of testing if there's a problem with the dll or camera
you're using would be to get your pjsua to negotiate SDP's with a
softphone, in other words, establish a normal video call. BUT don't
send your video from your pjsua/vlc yet, disable the video part or
comment it out in your code. We just want the video SDP session up.
Grab the remote ip and port of the softphone from the remote_sdp that
it just sent you. Print it to screen or write it down. Get a pure H264
video sample off google or anywhere. Open the latest and greatest VLC
player and start streaming that pure H264 sample to the softphone
using the options in the VLC player and the ip and port parameters
from remote_sdp. See if the softphone can display that stream. The
softphone should not care what application is sending the video stream
to it. It's just expecting video media on that port it gave you. And
you can check with Ethereal if the outgoing stream from the player is
H264 and which transport it is using, and also the stream the
softphone is sending you and what transport it's using. If the
softphone can display that stream coming from your VLC player, even
pixelated, it's possible that there's a problem with the dll you're
using. I saw quotes from other people on forums saying they forgot to
include some options like --enable-x264 etc... when building their
vlc.
By the way i just wanted to mention i remember i also tried a normal
video call (to test compatibility in general between independent soft
videophones) between an Eyebeam softphone and a WengoPhone softphone
and i just could not get them to work together. I was using a
relatively new version of WengoPhone and an old version of Eyebeam.
Maybe it had to do with again the webcam i was using or software
versions or something on my PC i'm not sure. I checked codecs,
firewalls, devices used and everything else but i could only get
WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
just didn't work for me. I haven't tried scenario of WengoPhone <===>
pjsua/vlc.
To answer your questions yes i am using the libvlc.dll and the OLD
API. I haven't moved to the new API. I think because i had the same
problem as you, meaning i couldn't get it to work in Visual C. I'm
sure the new API would have more enhancements but i'm not interested
in that right now. I just wanted to get PJSIP to PJSIP videocalls
working with the least amount of trouble. When i feel like playing
with MingW again i will get started on the new VLC API.
And regarding your sdp file at first glance it looks fine. Mine is
very similar to yours. You can write all these parameters using
virtually only local_sdp or remote_sdp. I can see you're using payload
type 98. I know the RFC says something about payload type 100, 99 and
98. But what i had to make sure was along the path of the video call,
all devices involved on the way, i mean the SIP registrar, your SIP
user agent, and the remote softphone, actually agree on the payload
types and that no one was silently complaining.
Let me know how you go with your tests.
Best Regards,
Hubert
On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy muge.ersoy@gmail.com wrote:
Hi Hubert;
I tried your method of grapping ports and ip address and it works fine.
But when ever i start streaming i am not able to stream h264 .. it captured
my outgoing packages and see that my stream is mpeg2 (Payload type: MPEG-II
transport streams (33)) . So i am not able to see anything on the softphone
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be 8.6c is
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried VLC
9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin hubertlangevin@gmail.com
wrote:
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your cpu is
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried to
make
.def filen and convert libvlc.lib but lib didnt work.. I guess it was
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there any
Pjsua
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good tips on
which functions you use but the whole thing is a bit too confusing for
me and just didn't work for me. I am using the old version of VLC, i'm
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
I was reading what you mentioned earlier, about the fact that you want
video calls between pjsua to other software clients and soft phones/
VoIP Phones. Can't you do that already using VLC both ways? I mean for
video calls all you need is modify your outgoing SDP so it contains
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding SDP
and start one instance of VLC that reads and decodes at the same time.
I do that using VLC_AddIntf() for multiple video streams incoming and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the new
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an eyebeam
(x-lite) video phone and everything was fine. Audio was fine and video
was showing as well. Actually video was very pixelated, even though I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
have different implementations of H264 i'm not sure. But video calls
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua too.
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My
implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide
a
bit too complicated/confusing and overloaded for what i wanted to
do.
Especially his definitions in the vlc.h file. Don't need all that.
What i do is just get the remote IP, port, codec from remote_sdp and
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do. Plus,
i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hello Muge,
Yes my implementation sounds different. I guess i took the
easiest
and
quickest way to get video working. I do write the file.sdp file
just
like you and get VLC to read and decode the sdp file, but i also
use
VLC to stream.
To answer your question yes i did install Microsoft Platform
SDK...
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode, why
not
use
it to stream as well? You won't have to take care of streams,
ports,
transports, etc... It might be easier for you. I mean you are
already
using VLC to decode, might as well use it to encode. Makes your
life
easier. Maybe i'm missing something that you want to accomplish.
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours. I
want
pjsip
to
stream h264 from one side to other.. You choose VLC to do it..
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which
includes
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show headers
?
Muge
On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Mugo,
No i don't create another stream for video. I just make sure
the
port
ranges for audio and video don't overlap. For example for
audio i
do
the usual pjsip thing, start the port range at 4000 and with a
maximum
of 32 calls it'll go up to 4063. For the video i've got a
config
file
that pjsua_app.c reads at startup. In there i specify what
port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts using
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the initial
port
for video is the one that i specified in the video config
file.
After
having sent the offer and read the incoming remote_sdp, what i
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I pass it
to
the
commands buffer of VLC and use the functions VLC_Create(),
VLC_Init(int, int, char **s),
VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP handle
the
video streams. I use PJSIP only for SDP negotiation that's it.
I
leave
PJSIP to take care of all the audio streams and ports. And i
keep
the
video part to VLC, including its transport and everything
else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have two
incoming
H264 streams on your PC? How was your CPU usage?. When i have
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if
there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created Pjsip
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in your
application.
Regards
Muge
On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls between
PCs.
In
the callback on_call_state() in pjsua_app.c when i get an
incoming
call i check if it has video media. I do this by grabbing
the
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had to
change
a
few
things in negotiating SDP's. If i have video media i just
grab
the
remote IP and port number out of the remote_sdp, put these
values
in
the commands buffer for VLC and start playing from remote
stream
and
streaming off my webcam using the VLC functions:
VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int),
VLC_AddIntf(int,
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but as
soon
as
I
get
two video calls up on my PC my CPU usage jumps really high
and
stays
there for the duration of the two calls. Is it because I'm
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It
should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow libraries, and
it
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I have
some
port
issues
..
video stream is using audio streams port.. i will be
handling
it
soon i
guess..
and what are you using for displaying stream , ? VLC or
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is it
interesting
for
you?
Tell me your problem and if it's possible I can help
you.
Emanuele Bottegoni
Hi Muge,
So you can't stream H264. Hmmm not sure what's going on there. I think
i had a similar problem and it had to do with what type of transport i
was using and type of mux i was putting in the commands buffer. And
also the video bit rate (vb=???). As i mentioned before i could stream
to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
had to change my webcam and still my image on the remote softphone was
pixelated. I was using a cheap (i mean really really cheap) webcam
before and i had a problem transcoding the frames to H264. When i
changed webcam to a more decent one things were slightly better. So it
could be your webcam. However i have a strong feeling it's more to do
with the version you're using, that is 8.6c.
Also some videophones and soft IP PBXs have different payload types
for video. You could check using Ethereal what payload type the
softphone is using and expecting in return. Could be a
mis-compatibility in payload types here and that's why it's not
showing up on the other end. I'm just guessing here. I had a LOT of
trouble getting video calls to work with different softphones out
there and things tend to get complicated with incompatible payload
types.
I guess a way of testing if there's a problem with the dll or camera
you're using would be to get your pjsua to negotiate SDP's with a
softphone, in other words, establish a normal video call. BUT don't
send your video from your pjsua/vlc yet, disable the video part or
comment it out in your code. We just want the video SDP session up.
Grab the remote ip and port of the softphone from the remote_sdp that
it just sent you. Print it to screen or write it down. Get a pure H264
video sample off google or anywhere. Open the latest and greatest VLC
player and start streaming that pure H264 sample to the softphone
using the options in the VLC player and the ip and port parameters
from remote_sdp. See if the softphone can display that stream. The
softphone should not care what application is sending the video stream
to it. It's just expecting video media on that port it gave you. And
you can check with Ethereal if the outgoing stream from the player is
H264 and which transport it is using, and also the stream the
softphone is sending you and what transport it's using. If the
softphone can display that stream coming from your VLC player, even
pixelated, it's possible that there's a problem with the dll you're
using. I saw quotes from other people on forums saying they forgot to
include some options like --enable-x264 etc... when building their
vlc.
By the way i just wanted to mention i remember i also tried a normal
video call (to test compatibility in general between independent soft
videophones) between an Eyebeam softphone and a WengoPhone softphone
and i just could not get them to work together. I was using a
relatively new version of WengoPhone and an old version of Eyebeam.
Maybe it had to do with again the webcam i was using or software
versions or something on my PC i'm not sure. I checked codecs,
firewalls, devices used and everything else but i could only get
WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
just didn't work for me. I haven't tried scenario of WengoPhone <===>
pjsua/vlc.
To answer your questions yes i am using the libvlc.dll and the OLD
API. I haven't moved to the new API. I think because i had the same
problem as you, meaning i couldn't get it to work in Visual C. I'm
sure the new API would have more enhancements but i'm not interested
in that right now. I just wanted to get PJSIP to PJSIP videocalls
working with the least amount of trouble. When i feel like playing
with MingW again i will get started on the new VLC API.
And regarding your sdp file at first glance it looks fine. Mine is
very similar to yours. You can write all these parameters using
virtually only local_sdp or remote_sdp. I can see you're using payload
type 98. I know the RFC says something about payload type 100, 99 and
98. But what i had to make sure was along the path of the video call,
all devices involved on the way, i mean the SIP registrar, your SIP
user agent, and the remote softphone, actually agree on the payload
types and that no one was silently complaining.
Let me know how you go with your tests.
Best Regards,
Hubert
On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy <muge.ersoy@gmail.com> wrote:
> Hi Hubert;
>
> I tried your method of grapping ports and ip address and it works fine.
>
> But when ever i start streaming i am not able to stream h264 .. it captured
> my outgoing packages and see that my stream is mpeg2 (Payload type: MPEG-II
> transport streams (33)) . So i am not able to see anything on the softphone
> .. But it is working fine between two pjsua client..
>
> I am sure you checked your stream if it is h264 didnt you ? May be 8.6c is
> not supporting h264 i am not so sure ..
>
> Btw Visual C example of vlc is not working on new API at all.. I tried VLC
> 9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
>
> Are you using dll too ?
>
> Also i d like to show my sdp file something like that ..
>
> v=0
> o=- 597327894206 2 IN IP4 192.168.0.165
> s=NONE
> t=0 0
> c=IN IP4 192.168.0.165
> m=video 14444 RTP/AVP 98
> b=AS:28
> a=rtpmap:98 H264/90000
>
>
>
> Muge
>
>
> On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin <hubertlangevin@gmail.com>
> wrote:
>>
>> Hi Muge,
>>
>> Yes i think you're right. When i run pjsua i do load ALL the plugins
>> for VLC from the plugins directory. Maybe i should remove what i don't
>> need from there.
>>
>> Regarding your question about getting SDP information i do it in the
>> callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
>> SDP negotiation is finished and everyone is happy in terms of sdp
>> parameters, and when the callback's event is CONFIRMED, i acquire the
>> call using the call_id as in acquire_call("Something Something",
>> call_id, &call, &dlg). I then grab the local and remote SDP's using:
>>
>> pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
>> pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
>>
>> Once i get the two SDP's above, all i do is check for the video
>> parameters. I think it's in remote_sdp->conn->addr and
>> remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
>> and so on and so forth. Just grab the things you think you might need
>> from the remote SDP (and local SDP) for whichever player you are
>> using. I'm using VLC so IP address, port and codec are the main things
>> for me. I also do a LOT of checks but that's the above concept is
>> mainly how i do it.
>>
>> Then you can write the video.sdp file. which you already how it looks
>> like. Then you can proceed on how you want to implement your video
>> handling from here. If you are using VLC there are a few ways to do
>> that, you just need to pick the one you feel more comfortable with. I
>> personally use the --extraintf and --vlm-conf method but that's just
>> me.
>>
>> Hubert
>>
>> On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> wrote:
>> > Hi Hubert;
>> >
>> > I tried your way of vlc video call.. I guess the problem at your cpu is
>> > because of loading to many dll ( vlc and plugins) during the call..
>> > My computer was forced also..
>> > I am using VStudio so i am using libvlc.dll... actually i ve tried to
>> > make
>> > .def filen and convert libvlc.lib but lib didnt work.. I guess it was
>> > because new api of vlc..
>> >
>> > Did you code to get SDP information from pjsua_app.c or is there any
>> > Pjsua
>> > api to get active sdp information ?
>> >
>> > muge
>> >
>> >
>> >
>> > On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
>> > <hubertlangevin@gmail.com>
>> > wrote:
>> >>
>> >> Hi Muge,
>> >>
>> >> Yeah that's why i didn't follow that guide. It's got some good tips on
>> >> which functions you use but the whole thing is a bit too confusing for
>> >> me and just didn't work for me. I am using the old version of VLC, i'm
>> >> not sure how to call it. It's at this link below. Again the old
>> >> version is simple for what i want to accomplish.
>> >>
>> >>
>> >>
>> >> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
>> >>
>> >> I was reading what you mentioned earlier, about the fact that you want
>> >> video calls between pjsua to other software clients and soft phones/
>> >> VoIP Phones. Can't you do that already using VLC both ways? I mean for
>> >> video calls all you need is modify your outgoing SDP so it contains
>> >> video media at a certain port that you specify at startup so the
>> >> remote video phones can read it and you read their corresponding SDP
>> >> and start one instance of VLC that reads and decodes at the same time.
>> >> I do that using VLC_AddIntf() for multiple video streams incoming and
>> >> outgoing. The audio is still handled by pjsip during that same sdp
>> >> exchange and the video by vlc. For any re-invites, for example change
>> >> of remote video port or remote video codec, just destroy the vlc
>> >> instance in on_call_media() callback and re-create it using the new
>> >> values from the re-invites. I mean it is still a video call that i
>> >> make to other video phones. I did a test from my pjsua to an eyebeam
>> >> (x-lite) video phone and everything was fine. Audio was fine and video
>> >> was showing as well. Actually video was very pixelated, even though I
>> >> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
>> >> have different implementations of H264 i'm not sure. But video calls
>> >> between pjsua <===> pjsua works perfectly.
>> >>
>> >> And VLC does support SRTP from what i've seen. I'm using pjsua too.
>> >> Are you using libvlc.lib and libvlc.dll?
>> >>
>> >> Hubert
>> >>
>> >> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> wrote:
>> >> > yeah i am not getting anything also..
>> >> > may i ask which version of vlc you are using?
>> >> >
>> >> > I tried it but there are some errors like below
>> >> > main interface error: no interface module matched "hotkeys,none"
>> >> >
>> >> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
>> >> > <hubertlangevin@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> Hi Muge,
>> >> >>
>> >> >> Oh that tutorial. Yeah i started off that tutorial. My
>> >> >> implementation
>> >> >> of video is very very similar. I use the commands buffer,
>> >> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the guide
>> >> >> a
>> >> >> bit too complicated/confusing and overloaded for what i wanted to
>> >> >> do.
>> >> >> Especially his definitions in the vlc.h file. Don't need all that.
>> >> >> What i do is just get the remote IP, port, codec from remote_sdp and
>> >> >> use a couple of VLC functions to stream and decode. Done. That
>> >> >> tutorial i found was too much for what i simply wanted to do. Plus,
>> >> >> i
>> >> >> was never good at spanish. ;)
>> >> >>
>> >> >> Hubert
>> >> >>
>> >> >>
>> >> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> >> wrote:
>> >> >> > Hi Hubert;
>> >> >> >
>> >> >> > I have a question for you ..
>> >> >> >
>> >> >> > Did you use the below tutorial for vlc display inside pjsip?
>> >> >> > http://wiki.videolan.org/LibVLC_Visual_C
>> >> >> >
>> >> >> >
>> >> >> > Muge
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
>> >> >> > <hubertlangevin@gmail.com>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> Hello Muge,
>> >> >> >>
>> >> >> >> Yes my implementation sounds different. I guess i took the
>> >> >> >> easiest
>> >> >> >> and
>> >> >> >> quickest way to get video working. I do write the file.sdp file
>> >> >> >> just
>> >> >> >> like you and get VLC to read and decode the sdp file, but i also
>> >> >> >> use
>> >> >> >> VLC to stream.
>> >> >> >>
>> >> >> >> To answer your question yes i did install Microsoft Platform
>> >> >> >> SDK...
>> >> >> >> Hmmm... i can't remember which version though.
>> >> >> >>
>> >> >> >> Quick question. Since you are already using VLC to decode, why
>> >> >> >> not
>> >> >> >> use
>> >> >> >> it to stream as well? You won't have to take care of streams,
>> >> >> >> ports,
>> >> >> >> transports, etc... It might be easier for you. I mean you are
>> >> >> >> already
>> >> >> >> using VLC to decode, might as well use it to encode. Makes your
>> >> >> >> life
>> >> >> >> easier. Maybe i'm missing something that you want to accomplish.
>> >> >> >>
>> >> >> >> What do you think?
>> >> >> >>
>> >> >> >> Hubert
>> >> >> >>
>> >> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
>> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> wrote:
>> >> >> >> > Hi Hubert;
>> >> >> >> >
>> >> >> >> > Actually my implementation is quite different from yours. I
>> >> >> >> > want
>> >> >> >> > pjsip
>> >> >> >> > to
>> >> >> >> > stream h264 from one side to other.. You choose VLC to do it..
>> >> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
>> >> >> >> > functions
>> >> >> >> > as
>> >> >> >> > well
>> >> >> >> > as SDP negotiation.
>> >> >> >> >
>> >> >> >> > I want vlc to decode this h264 stream with file.sdp which
>> >> >> >> > includes
>> >> >> >> > remote ip
>> >> >> >> > and port information with codec.
>> >> >> >> >
>> >> >> >> > Did you install Microsoft Platform SDK for direct show headers
>> >> >> >> > ?
>> >> >> >> >
>> >> >> >> > Muge
>> >> >> >> >
>> >> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
>> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> > wrote:
>> >> >> >> >>
>> >> >> >> >> Hi Mugo,
>> >> >> >> >>
>> >> >> >> >> No i don't create another stream for video. I just make sure
>> >> >> >> >> the
>> >> >> >> >> port
>> >> >> >> >> ranges for audio and video don't overlap. For example for
>> >> >> >> >> audio i
>> >> >> >> >> do
>> >> >> >> >> the usual pjsip thing, start the port range at 4000 and with a
>> >> >> >> >> maximum
>> >> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a
>> >> >> >> >> config
>> >> >> >> >> file
>> >> >> >> >> that pjsua_app.c reads at startup. In there i specify what
>> >> >> >> >> port
>> >> >> >> >> video
>> >> >> >> >> should start at. And i usually put it at 6000. When the
>> >> >> >> >> application
>> >> >> >> >> runs it checks if those ports are free or not and starts using
>> >> >> >> >> them.
>> >> >> >> >> This way my audio and video ports don't overlap.
>> >> >> >> >>
>> >> >> >> >> When i create my SDP, and before i send the offer, the initial
>> >> >> >> >> port
>> >> >> >> >> for video is the one that i specified in the video config
>> >> >> >> >> file.
>> >> >> >> >> After
>> >> >> >> >> having sent the offer and read the incoming remote_sdp, what i
>> >> >> >> >> pass
>> >> >> >> >> to
>> >> >> >> >> VLC is just the port number to transmit to, IP address to
>> >> >> >> >> transmit
>> >> >> >> >> to,
>> >> >> >> >> transcoding codec, video bit rate and the mux type. I pass it
>> >> >> >> >> to
>> >> >> >> >> the
>> >> >> >> >> commands buffer of VLC and use the functions VLC_Create(),
>> >> >> >> >> VLC_Init(int, int, char **s),
>> >> >> >> >> VLC_Play(int),VLC_FullScreen(int),
>> >> >> >> >> etc... So to answer your question no i don't let PJSIP handle
>> >> >> >> >> the
>> >> >> >> >> video streams. I use PJSIP only for SDP negotiation that's it.
>> >> >> >> >> I
>> >> >> >> >> leave
>> >> >> >> >> PJSIP to take care of all the audio streams and ports. And i
>> >> >> >> >> keep
>> >> >> >> >> the
>> >> >> >> >> video part to VLC, including its transport and everything
>> >> >> >> >> else.
>> >> >> >> >> PJSIP
>> >> >> >> >> doesn't touch that part.
>> >> >> >> >>
>> >> >> >> >> I can see you're using H264. I am too. Did you ever have two
>> >> >> >> >> incoming
>> >> >> >> >> H264 streams on your PC? How was your CPU usage?. When i have
>> >> >> >> >> more
>> >> >> >> >> than one on my PC my CPU usage doesn't look too good..
>> >> >> >> >>
>> >> >> >> >> Hubert
>> >> >> >> >>
>> >> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
>> >> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> >> wrote:
>> >> >> >> >> > Hi Hubert;
>> >> >> >> >> >
>> >> >> >> >> > Haven't you created another stream for video ?
>> >> >> >> >> >
>> >> >> >> >> > As far as i understand after SDP negotiation you get if
>> >> >> >> >> > there
>> >> >> >> >> > is
>> >> >> >> >> > video
>> >> >> >> >> > stream or not...
>> >> >> >> >> >
>> >> >> >> >> > This is my OK answer form pjsip to another sip client
>> >> >> >> >> >
>> >> >> >> >> > m=audio 4000 RTP/AVP 3
>> >> >> >> >> > a=rtpmap:3 GSM/8000
>> >> >> >> >> > m=video 4002 RTP/AVP 98
>> >> >> >> >> > a=rtpmap:98 H264/90000
>> >> >> >> >> > a=recvonly
>> >> >> >> >> >
>> >> >> >> >> > Everything seems pretty. But after streams are created Pjsip
>> >> >> >> >> > mixes
>> >> >> >> >> > the
>> >> >> >> >> > ports
>> >> >> >> >> > with audio and video and it all crashes ...
>> >> >> >> >> > How is your point of view to audio and video streams in your
>> >> >> >> >> > application.
>> >> >> >> >> >
>> >> >> >> >> > Regards
>> >> >> >> >> > Muge
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
>> >> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> >> > wrote:
>> >> >> >> >> >>
>> >> >> >> >> >> Hello everyone,
>> >> >> >> >> >>
>> >> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
>> >> >> >> >> >> completely
>> >> >> >> >> >> finished it yet but i can now make some video calls between
>> >> >> >> >> >> PCs.
>> >> >> >> >> >> In
>> >> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get an
>> >> >> >> >> >> incoming
>> >> >> >> >> >> call i check if it has video media. I do this by grabbing
>> >> >> >> >> >> the
>> >> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
>> >> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
>> >> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had to
>> >> >> >> >> >> change
>> >> >> >> >> >> a
>> >> >> >> >> >> few
>> >> >> >> >> >> things in negotiating SDP's. If i have video media i just
>> >> >> >> >> >> grab
>> >> >> >> >> >> the
>> >> >> >> >> >> remote IP and port number out of the remote_sdp, put these
>> >> >> >> >> >> values
>> >> >> >> >> >> in
>> >> >> >> >> >> the commands buffer for VLC and start playing from remote
>> >> >> >> >> >> stream
>> >> >> >> >> >> and
>> >> >> >> >> >> streaming off my webcam using the VLC functions:
>> >> >> >> >> >> VLC_Create(),
>> >> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),
>> >> >> >> >> >> VLC_AddIntf(int,
>> >> >> >> >> >> char
>> >> >> >> >> >> *s,
>> >> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
>> >> >> >> >> >> VLC_Pause(int),
>> >> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but as
>> >> >> >> >> >> soon
>> >> >> >> >> >> as
>> >> >> >> >> >> I
>> >> >> >> >> >> get
>> >> >> >> >> >> two video calls up on my PC my CPU usage jumps really high
>> >> >> >> >> >> and
>> >> >> >> >> >> stays
>> >> >> >> >> >> there for the duration of the two calls. Is it because I'm
>> >> >> >> >> >> using
>> >> >> >> >> >> the
>> >> >> >> >> >> wrong type of video codec? I'm currently using H264.
>> >> >> >> >> >>
>> >> >> >> >> >> Any ideas would be greatly appreciated.
>> >> >> >> >> >>
>> >> >> >> >> >> Hubert
>> >> >> >> >> >>
>> >> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
>> >> >> >> >> >> <tiagores@gmail.com>
>> >> >> >> >> >> wrote:
>> >> >> >> >> >> > Hello all,
>> >> >> >> >> >> > Thanks for your responses.
>> >> >> >> >> >> >
>> >> >> >> >> >> > My Idea is to make some kind of videoconference. It
>> >> >> >> >> >> > should
>> >> >> >> >> >> > be
>> >> >> >> >> >> > signaled
>> >> >> >> >> >> > with
>> >> >> >> >> >> > SIP, and stream via RTP.
>> >> >> >> >> >> > I'm able to capture video using directshow libraries, and
>> >> >> >> >> >> > it
>> >> >> >> >> >> > would
>> >> >> >> >> >> > be
>> >> >> >> >> >> > great
>> >> >> >> >> >> > to use transport functions of PJSIP to do the rest.
>> >> >> >> >> >> > What do you think?
>> >> >> >> >> >> >
>> >> >> >> >> >> > Thanks,
>> >> >> >> >> >> > Tiago
>> >> >> >> >> >> >
>> >> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Hi;
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Did you able to start two way stream with 264 . I have
>> >> >> >> >> >> >> some
>> >> >> >> >> >> >> port
>> >> >> >> >> >> >> issues
>> >> >> >> >> >> >> ..
>> >> >> >> >> >> >> video stream is using audio streams port.. i will be
>> >> >> >> >> >> >> handling
>> >> >> >> >> >> >> it
>> >> >> >> >> >> >> soon i
>> >> >> >> >> >> >> guess..
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> and what are you using for displaying stream , ? VLC or
>> >> >> >> >> >> >> ffmpeg
>> >> >> >> >> >> >> .?
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> muge
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
>> >> >> >> >> >> >> <perry@pjsip.org>
>> >> >> >> >> >> >> wrote:
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> emanuele bottegoni wrote:
>> >> >> >> >> >> >>>>
>> >> >> >> >> >> >>>> Hi Tiago,
>> >> >> >> >> >> >>>>
>> >> >> >> >> >> >>>> I've added negotation to receive H264 streams,is it
>> >> >> >> >> >> >>>> interesting
>> >> >> >> >> >> >>>> for
>> >> >> >> >> >> >>>> you?
>> >> >> >> >> >> >>>> Tell me your problem and if it's possible I can help
>> >> >> >> >> >> >>>> you.
>> >> >> >> >> >> >>>>
>> >> >> >> >> >> >>>> Emanuele Bottegoni
>> >> >> >> >> >> >>>>
>> >> >> >> >> >> >>>>
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> Hi Emanuele,
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> Certainly, adding video support is always interesting.
>> >> >> >> >> >> >>> Contact
>> >> >> >> >> >> >>> me
>> >> >> >> >> >> >>> if
>> >> >> >> >> >> >>> you
>> >> >> >> >> >> >>> are willing to write a wiki page or a blog post about
>> >> >> >> >> >> >>> it.
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> Thank you for your support,
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> --
>> >> >> >> >> >> >>> Perry Ismangil
>> >> >> >> >> >> >>> http://www.pjsip.org
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> _______________________________________________
>> >> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> pjsip mailing list
>> >> >> >> >> >> >>> pjsip@lists.pjsip.org
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>>
>> >> >> >> >> >> >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > _______________________________________________
>> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> > pjsip mailing list
>> >> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >>
>> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > _______________________________________________
>> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > pjsip mailing list
>> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >>
>> >> >> >> >> _______________________________________________
>> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >>
>> >> >> >> >> pjsip mailing list
>> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > _______________________________________________
>> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >
>> >> >> >> > pjsip mailing list
>> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >>
>> >> >> >> pjsip mailing list
>> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >
>> >> >> > pjsip mailing list
>> >> >> > pjsip@lists.pjsip.org
>> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> _______________________________________________
>> >> >> Visit our blog: http://blog.pjsip.org
>> >> >>
>> >> >> pjsip mailing list
>> >> >> pjsip@lists.pjsip.org
>> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Visit our blog: http://blog.pjsip.org
>> >> >
>> >> > pjsip mailing list
>> >> > pjsip@lists.pjsip.org
>> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> Visit our blog: http://blog.pjsip.org
>> >>
>> >> pjsip mailing list
>> >> pjsip@lists.pjsip.org
>> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>> > _______________________________________________
>> > Visit our blog: http://blog.pjsip.org
>> >
>> > pjsip mailing list
>> > pjsip@lists.pjsip.org
>> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip@lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
PE
P.Muge Ersoy
Fri, Oct 17, 2008 5:22 PM
Hi Hubert;
Did you compile vlc with h264 support by yourself ?
It will be really helpfull if you check which vlc you installed for the
libvlc.dll for me ? :)
Regards
Muge
On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin
hubertlangevin@gmail.comwrote:
Hi Muge,
So you can't stream H264. Hmmm not sure what's going on there. I think
i had a similar problem and it had to do with what type of transport i
was using and type of mux i was putting in the commands buffer. And
also the video bit rate (vb=???). As i mentioned before i could stream
to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
had to change my webcam and still my image on the remote softphone was
pixelated. I was using a cheap (i mean really really cheap) webcam
before and i had a problem transcoding the frames to H264. When i
changed webcam to a more decent one things were slightly better. So it
could be your webcam. However i have a strong feeling it's more to do
with the version you're using, that is 8.6c.
Also some videophones and soft IP PBXs have different payload types
for video. You could check using Ethereal what payload type the
softphone is using and expecting in return. Could be a
mis-compatibility in payload types here and that's why it's not
showing up on the other end. I'm just guessing here. I had a LOT of
trouble getting video calls to work with different softphones out
there and things tend to get complicated with incompatible payload
types.
I guess a way of testing if there's a problem with the dll or camera
you're using would be to get your pjsua to negotiate SDP's with a
softphone, in other words, establish a normal video call. BUT don't
send your video from your pjsua/vlc yet, disable the video part or
comment it out in your code. We just want the video SDP session up.
Grab the remote ip and port of the softphone from the remote_sdp that
it just sent you. Print it to screen or write it down. Get a pure H264
video sample off google or anywhere. Open the latest and greatest VLC
player and start streaming that pure H264 sample to the softphone
using the options in the VLC player and the ip and port parameters
from remote_sdp. See if the softphone can display that stream. The
softphone should not care what application is sending the video stream
to it. It's just expecting video media on that port it gave you. And
you can check with Ethereal if the outgoing stream from the player is
H264 and which transport it is using, and also the stream the
softphone is sending you and what transport it's using. If the
softphone can display that stream coming from your VLC player, even
pixelated, it's possible that there's a problem with the dll you're
using. I saw quotes from other people on forums saying they forgot to
include some options like --enable-x264 etc... when building their
vlc.
By the way i just wanted to mention i remember i also tried a normal
video call (to test compatibility in general between independent soft
videophones) between an Eyebeam softphone and a WengoPhone softphone
and i just could not get them to work together. I was using a
relatively new version of WengoPhone and an old version of Eyebeam.
Maybe it had to do with again the webcam i was using or software
versions or something on my PC i'm not sure. I checked codecs,
firewalls, devices used and everything else but i could only get
WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
just didn't work for me. I haven't tried scenario of WengoPhone <===>
pjsua/vlc.
To answer your questions yes i am using the libvlc.dll and the OLD
API. I haven't moved to the new API. I think because i had the same
problem as you, meaning i couldn't get it to work in Visual C. I'm
sure the new API would have more enhancements but i'm not interested
in that right now. I just wanted to get PJSIP to PJSIP videocalls
working with the least amount of trouble. When i feel like playing
with MingW again i will get started on the new VLC API.
And regarding your sdp file at first glance it looks fine. Mine is
very similar to yours. You can write all these parameters using
virtually only local_sdp or remote_sdp. I can see you're using payload
type 98. I know the RFC says something about payload type 100, 99 and
98. But what i had to make sure was along the path of the video call,
all devices involved on the way, i mean the SIP registrar, your SIP
user agent, and the remote softphone, actually agree on the payload
types and that no one was silently complaining.
Let me know how you go with your tests.
Best Regards,
Hubert
On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your method of grapping ports and ip address and it works fine.
But when ever i start streaming i am not able to stream h264 .. it
my outgoing packages and see that my stream is mpeg2 (Payload type:
transport streams (33)) . So i am not able to see anything on the
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be 8.6c
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried
- 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin <
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your cpu
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried to
make
.def filen and convert libvlc.lib but lib didnt work.. I guess it was
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there any
Pjsua
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good tips
which functions you use but the whole thing is a bit too confusing
me and just didn't work for me. I am using the old version of VLC,
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
I was reading what you mentioned earlier, about the fact that you
video calls between pjsua to other software clients and soft phones/
VoIP Phones. Can't you do that already using VLC both ways? I mean
video calls all you need is modify your outgoing SDP so it contains
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding SDP
and start one instance of VLC that reads and decodes at the same
I do that using VLC_AddIntf() for multiple video streams incoming and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the new
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an eyebeam
(x-lite) video phone and everything was fine. Audio was fine and
was showing as well. Actually video was very pixelated, even though I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
have different implementations of H264 i'm not sure. But video calls
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua too.
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My
implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
a
bit too complicated/confusing and overloaded for what i wanted to
do.
Especially his definitions in the vlc.h file. Don't need all that.
What i do is just get the remote IP, port, codec from remote_sdp
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do.
i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy <
Hello Muge,
Yes my implementation sounds different. I guess i took the
easiest
and
quickest way to get video working. I do write the file.sdp file
just
like you and get VLC to read and decode the sdp file, but i
use
VLC to stream.
To answer your question yes i did install Microsoft Platform
SDK...
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode, why
not
use
it to stream as well? You won't have to take care of streams,
ports,
transports, etc... It might be easier for you. I mean you are
already
using VLC to decode, might as well use it to encode. Makes your
life
easier. Maybe i'm missing something that you want to
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours. I
want
pjsip
to
stream h264 from one side to other.. You choose VLC to do
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which
includes
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show
Hi Mugo,
No i don't create another stream for video. I just make sure
the
port
ranges for audio and video don't overlap. For example for
audio i
do
the usual pjsip thing, start the port range at 4000 and with
maximum
of 32 calls it'll go up to 4063. For the video i've got a
config
file
that pjsua_app.c reads at startup. In there i specify what
port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the
port
for video is the one that i specified in the video config
file.
After
having sent the offer and read the incoming remote_sdp, what
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I pass
to
the
commands buffer of VLC and use the functions VLC_Create(),
VLC_Init(int, int, char **s),
VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP
the
video streams. I use PJSIP only for SDP negotiation that's
I
leave
PJSIP to take care of all the audio streams and ports. And i
keep
the
video part to VLC, including its transport and everything
else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have two
incoming
H264 streams on your PC? How was your CPU usage?. When i
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if
there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls
PCs.
In
the callback on_call_state() in pjsua_app.c when i get an
incoming
call i check if it has video media. I do this by grabbing
the
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had to
change
a
few
things in negotiating SDP's. If i have video media i just
grab
the
remote IP and port number out of the remote_sdp, put
values
in
the commands buffer for VLC and start playing from remote
stream
and
streaming off my webcam using the VLC functions:
VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int),
VLC_AddIntf(int,
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but as
soon
as
I
get
two video calls up on my PC my CPU usage jumps really
and
stays
there for the duration of the two calls. Is it because
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It
should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow libraries,
it
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I have
some
port
issues
..
video stream is using audio streams port.. i will be
handling
it
soon i
guess..
and what are you using for displaying stream , ? VLC
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is it
interesting
for
you?
Tell me your problem and if it's possible I can help
you.
Emanuele Bottegoni
Hi Emanuele,
Certainly, adding video support is always
Hi Hubert;
Did you compile vlc with h264 support by yourself ?
It will be really helpfull if you check which vlc you installed for the
libvlc.dll for me ? :)
Regards
Muge
On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin
<hubertlangevin@gmail.com>wrote:
> Hi Muge,
>
> So you can't stream H264. Hmmm not sure what's going on there. I think
> i had a similar problem and it had to do with what type of transport i
> was using and type of mux i was putting in the commands buffer. And
> also the video bit rate (vb=???). As i mentioned before i could stream
> to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
> had to change my webcam and still my image on the remote softphone was
> pixelated. I was using a cheap (i mean really really cheap) webcam
> before and i had a problem transcoding the frames to H264. When i
> changed webcam to a more decent one things were slightly better. So it
> could be your webcam. However i have a strong feeling it's more to do
> with the version you're using, that is 8.6c.
>
> Also some videophones and soft IP PBXs have different payload types
> for video. You could check using Ethereal what payload type the
> softphone is using and expecting in return. Could be a
> mis-compatibility in payload types here and that's why it's not
> showing up on the other end. I'm just guessing here. I had a LOT of
> trouble getting video calls to work with different softphones out
> there and things tend to get complicated with incompatible payload
> types.
>
> I guess a way of testing if there's a problem with the dll or camera
> you're using would be to get your pjsua to negotiate SDP's with a
> softphone, in other words, establish a normal video call. BUT don't
> send your video from your pjsua/vlc yet, disable the video part or
> comment it out in your code. We just want the video SDP session up.
> Grab the remote ip and port of the softphone from the remote_sdp that
> it just sent you. Print it to screen or write it down. Get a pure H264
> video sample off google or anywhere. Open the latest and greatest VLC
> player and start streaming that pure H264 sample to the softphone
> using the options in the VLC player and the ip and port parameters
> from remote_sdp. See if the softphone can display that stream. The
> softphone should not care what application is sending the video stream
> to it. It's just expecting video media on that port it gave you. And
> you can check with Ethereal if the outgoing stream from the player is
> H264 and which transport it is using, and also the stream the
> softphone is sending you and what transport it's using. If the
> softphone can display that stream coming from your VLC player, even
> pixelated, it's possible that there's a problem with the dll you're
> using. I saw quotes from other people on forums saying they forgot to
> include some options like --enable-x264 etc... when building their
> vlc.
>
> By the way i just wanted to mention i remember i also tried a normal
> video call (to test compatibility in general between independent soft
> videophones) between an Eyebeam softphone and a WengoPhone softphone
> and i just could not get them to work together. I was using a
> relatively new version of WengoPhone and an old version of Eyebeam.
> Maybe it had to do with again the webcam i was using or software
> versions or something on my PC i'm not sure. I checked codecs,
> firewalls, devices used and everything else but i could only get
> WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
> pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
> just didn't work for me. I haven't tried scenario of WengoPhone <===>
> pjsua/vlc.
>
> To answer your questions yes i am using the libvlc.dll and the OLD
> API. I haven't moved to the new API. I think because i had the same
> problem as you, meaning i couldn't get it to work in Visual C. I'm
> sure the new API would have more enhancements but i'm not interested
> in that right now. I just wanted to get PJSIP to PJSIP videocalls
> working with the least amount of trouble. When i feel like playing
> with MingW again i will get started on the new VLC API.
>
> And regarding your sdp file at first glance it looks fine. Mine is
> very similar to yours. You can write all these parameters using
> virtually only local_sdp or remote_sdp. I can see you're using payload
> type 98. I know the RFC says something about payload type 100, 99 and
> 98. But what i had to make sure was along the path of the video call,
> all devices involved on the way, i mean the SIP registrar, your SIP
> user agent, and the remote softphone, actually agree on the payload
> types and that no one was silently complaining.
>
> Let me know how you go with your tests.
>
> Best Regards,
>
> Hubert
>
> On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> wrote:
> > Hi Hubert;
> >
> > I tried your method of grapping ports and ip address and it works fine.
> >
> > But when ever i start streaming i am not able to stream h264 .. it
> captured
> > my outgoing packages and see that my stream is mpeg2 (Payload type:
> MPEG-II
> > transport streams (33)) . So i am not able to see anything on the
> softphone
> > .. But it is working fine between two pjsua client..
> >
> > I am sure you checked your stream if it is h264 didnt you ? May be 8.6c
> is
> > not supporting h264 i am not so sure ..
> >
> > Btw Visual C example of vlc is not working on new API at all.. I tried
> VLC
> > 9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
> >
> > Are you using dll too ?
> >
> > Also i d like to show my sdp file something like that ..
> >
> > v=0
> > o=- 597327894206 2 IN IP4 192.168.0.165
> > s=NONE
> > t=0 0
> > c=IN IP4 192.168.0.165
> > m=video 14444 RTP/AVP 98
> > b=AS:28
> > a=rtpmap:98 H264/90000
> >
> >
> >
> > Muge
> >
> >
> > On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin <
> hubertlangevin@gmail.com>
> > wrote:
> >>
> >> Hi Muge,
> >>
> >> Yes i think you're right. When i run pjsua i do load ALL the plugins
> >> for VLC from the plugins directory. Maybe i should remove what i don't
> >> need from there.
> >>
> >> Regarding your question about getting SDP information i do it in the
> >> callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
> >> SDP negotiation is finished and everyone is happy in terms of sdp
> >> parameters, and when the callback's event is CONFIRMED, i acquire the
> >> call using the call_id as in acquire_call("Something Something",
> >> call_id, &call, &dlg). I then grab the local and remote SDP's using:
> >>
> >> pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
> >> pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
> >>
> >> Once i get the two SDP's above, all i do is check for the video
> >> parameters. I think it's in remote_sdp->conn->addr and
> >> remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
> >> and so on and so forth. Just grab the things you think you might need
> >> from the remote SDP (and local SDP) for whichever player you are
> >> using. I'm using VLC so IP address, port and codec are the main things
> >> for me. I also do a LOT of checks but that's the above concept is
> >> mainly how i do it.
> >>
> >> Then you can write the video.sdp file. which you already how it looks
> >> like. Then you can proceed on how you want to implement your video
> >> handling from here. If you are using VLC there are a few ways to do
> >> that, you just need to pick the one you feel more comfortable with. I
> >> personally use the --extraintf and --vlm-conf method but that's just
> >> me.
> >>
> >> Hubert
> >>
> >> On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> wrote:
> >> > Hi Hubert;
> >> >
> >> > I tried your way of vlc video call.. I guess the problem at your cpu
> is
> >> > because of loading to many dll ( vlc and plugins) during the call..
> >> > My computer was forced also..
> >> > I am using VStudio so i am using libvlc.dll... actually i ve tried to
> >> > make
> >> > .def filen and convert libvlc.lib but lib didnt work.. I guess it was
> >> > because new api of vlc..
> >> >
> >> > Did you code to get SDP information from pjsua_app.c or is there any
> >> > Pjsua
> >> > api to get active sdp information ?
> >> >
> >> > muge
> >> >
> >> >
> >> >
> >> > On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
> >> > <hubertlangevin@gmail.com>
> >> > wrote:
> >> >>
> >> >> Hi Muge,
> >> >>
> >> >> Yeah that's why i didn't follow that guide. It's got some good tips
> on
> >> >> which functions you use but the whole thing is a bit too confusing
> for
> >> >> me and just didn't work for me. I am using the old version of VLC,
> i'm
> >> >> not sure how to call it. It's at this link below. Again the old
> >> >> version is simple for what i want to accomplish.
> >> >>
> >> >>
> >> >>
> >> >>
> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
> >> >>
> >> >> I was reading what you mentioned earlier, about the fact that you
> want
> >> >> video calls between pjsua to other software clients and soft phones/
> >> >> VoIP Phones. Can't you do that already using VLC both ways? I mean
> for
> >> >> video calls all you need is modify your outgoing SDP so it contains
> >> >> video media at a certain port that you specify at startup so the
> >> >> remote video phones can read it and you read their corresponding SDP
> >> >> and start one instance of VLC that reads and decodes at the same
> time.
> >> >> I do that using VLC_AddIntf() for multiple video streams incoming and
> >> >> outgoing. The audio is still handled by pjsip during that same sdp
> >> >> exchange and the video by vlc. For any re-invites, for example change
> >> >> of remote video port or remote video codec, just destroy the vlc
> >> >> instance in on_call_media() callback and re-create it using the new
> >> >> values from the re-invites. I mean it is still a video call that i
> >> >> make to other video phones. I did a test from my pjsua to an eyebeam
> >> >> (x-lite) video phone and everything was fine. Audio was fine and
> video
> >> >> was showing as well. Actually video was very pixelated, even though I
> >> >> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
> >> >> have different implementations of H264 i'm not sure. But video calls
> >> >> between pjsua <===> pjsua works perfectly.
> >> >>
> >> >> And VLC does support SRTP from what i've seen. I'm using pjsua too.
> >> >> Are you using libvlc.lib and libvlc.dll?
> >> >>
> >> >> Hubert
> >> >>
> >> >> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> wrote:
> >> >> > yeah i am not getting anything also..
> >> >> > may i ask which version of vlc you are using?
> >> >> >
> >> >> > I tried it but there are some errors like below
> >> >> > main interface error: no interface module matched "hotkeys,none"
> >> >> >
> >> >> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
> >> >> > <hubertlangevin@gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> Hi Muge,
> >> >> >>
> >> >> >> Oh that tutorial. Yeah i started off that tutorial. My
> >> >> >> implementation
> >> >> >> of video is very very similar. I use the commands buffer,
> >> >> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
> guide
> >> >> >> a
> >> >> >> bit too complicated/confusing and overloaded for what i wanted to
> >> >> >> do.
> >> >> >> Especially his definitions in the vlc.h file. Don't need all that.
> >> >> >> What i do is just get the remote IP, port, codec from remote_sdp
> and
> >> >> >> use a couple of VLC functions to stream and decode. Done. That
> >> >> >> tutorial i found was too much for what i simply wanted to do.
> Plus,
> >> >> >> i
> >> >> >> was never good at spanish. ;)
> >> >> >>
> >> >> >> Hubert
> >> >> >>
> >> >> >>
> >> >> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy <
> muge.ersoy@gmail.com>
> >> >> >> wrote:
> >> >> >> > Hi Hubert;
> >> >> >> >
> >> >> >> > I have a question for you ..
> >> >> >> >
> >> >> >> > Did you use the below tutorial for vlc display inside pjsip?
> >> >> >> > http://wiki.videolan.org/LibVLC_Visual_C
> >> >> >> >
> >> >> >> >
> >> >> >> > Muge
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> Hello Muge,
> >> >> >> >>
> >> >> >> >> Yes my implementation sounds different. I guess i took the
> >> >> >> >> easiest
> >> >> >> >> and
> >> >> >> >> quickest way to get video working. I do write the file.sdp file
> >> >> >> >> just
> >> >> >> >> like you and get VLC to read and decode the sdp file, but i
> also
> >> >> >> >> use
> >> >> >> >> VLC to stream.
> >> >> >> >>
> >> >> >> >> To answer your question yes i did install Microsoft Platform
> >> >> >> >> SDK...
> >> >> >> >> Hmmm... i can't remember which version though.
> >> >> >> >>
> >> >> >> >> Quick question. Since you are already using VLC to decode, why
> >> >> >> >> not
> >> >> >> >> use
> >> >> >> >> it to stream as well? You won't have to take care of streams,
> >> >> >> >> ports,
> >> >> >> >> transports, etc... It might be easier for you. I mean you are
> >> >> >> >> already
> >> >> >> >> using VLC to decode, might as well use it to encode. Makes your
> >> >> >> >> life
> >> >> >> >> easier. Maybe i'm missing something that you want to
> accomplish.
> >> >> >> >>
> >> >> >> >> What do you think?
> >> >> >> >>
> >> >> >> >> Hubert
> >> >> >> >>
> >> >> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > Hi Hubert;
> >> >> >> >> >
> >> >> >> >> > Actually my implementation is quite different from yours. I
> >> >> >> >> > want
> >> >> >> >> > pjsip
> >> >> >> >> > to
> >> >> >> >> > stream h264 from one side to other.. You choose VLC to do
> it..
> >> >> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
> >> >> >> >> > functions
> >> >> >> >> > as
> >> >> >> >> > well
> >> >> >> >> > as SDP negotiation.
> >> >> >> >> >
> >> >> >> >> > I want vlc to decode this h264 stream with file.sdp which
> >> >> >> >> > includes
> >> >> >> >> > remote ip
> >> >> >> >> > and port information with codec.
> >> >> >> >> >
> >> >> >> >> > Did you install Microsoft Platform SDK for direct show
> headers
> >> >> >> >> > ?
> >> >> >> >> >
> >> >> >> >> > Muge
> >> >> >> >> >
> >> >> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> > wrote:
> >> >> >> >> >>
> >> >> >> >> >> Hi Mugo,
> >> >> >> >> >>
> >> >> >> >> >> No i don't create another stream for video. I just make sure
> >> >> >> >> >> the
> >> >> >> >> >> port
> >> >> >> >> >> ranges for audio and video don't overlap. For example for
> >> >> >> >> >> audio i
> >> >> >> >> >> do
> >> >> >> >> >> the usual pjsip thing, start the port range at 4000 and with
> a
> >> >> >> >> >> maximum
> >> >> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a
> >> >> >> >> >> config
> >> >> >> >> >> file
> >> >> >> >> >> that pjsua_app.c reads at startup. In there i specify what
> >> >> >> >> >> port
> >> >> >> >> >> video
> >> >> >> >> >> should start at. And i usually put it at 6000. When the
> >> >> >> >> >> application
> >> >> >> >> >> runs it checks if those ports are free or not and starts
> using
> >> >> >> >> >> them.
> >> >> >> >> >> This way my audio and video ports don't overlap.
> >> >> >> >> >>
> >> >> >> >> >> When i create my SDP, and before i send the offer, the
> initial
> >> >> >> >> >> port
> >> >> >> >> >> for video is the one that i specified in the video config
> >> >> >> >> >> file.
> >> >> >> >> >> After
> >> >> >> >> >> having sent the offer and read the incoming remote_sdp, what
> i
> >> >> >> >> >> pass
> >> >> >> >> >> to
> >> >> >> >> >> VLC is just the port number to transmit to, IP address to
> >> >> >> >> >> transmit
> >> >> >> >> >> to,
> >> >> >> >> >> transcoding codec, video bit rate and the mux type. I pass
> it
> >> >> >> >> >> to
> >> >> >> >> >> the
> >> >> >> >> >> commands buffer of VLC and use the functions VLC_Create(),
> >> >> >> >> >> VLC_Init(int, int, char **s),
> >> >> >> >> >> VLC_Play(int),VLC_FullScreen(int),
> >> >> >> >> >> etc... So to answer your question no i don't let PJSIP
> handle
> >> >> >> >> >> the
> >> >> >> >> >> video streams. I use PJSIP only for SDP negotiation that's
> it.
> >> >> >> >> >> I
> >> >> >> >> >> leave
> >> >> >> >> >> PJSIP to take care of all the audio streams and ports. And i
> >> >> >> >> >> keep
> >> >> >> >> >> the
> >> >> >> >> >> video part to VLC, including its transport and everything
> >> >> >> >> >> else.
> >> >> >> >> >> PJSIP
> >> >> >> >> >> doesn't touch that part.
> >> >> >> >> >>
> >> >> >> >> >> I can see you're using H264. I am too. Did you ever have two
> >> >> >> >> >> incoming
> >> >> >> >> >> H264 streams on your PC? How was your CPU usage?. When i
> have
> >> >> >> >> >> more
> >> >> >> >> >> than one on my PC my CPU usage doesn't look too good..
> >> >> >> >> >>
> >> >> >> >> >> Hubert
> >> >> >> >> >>
> >> >> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
> >> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >> > Hi Hubert;
> >> >> >> >> >> >
> >> >> >> >> >> > Haven't you created another stream for video ?
> >> >> >> >> >> >
> >> >> >> >> >> > As far as i understand after SDP negotiation you get if
> >> >> >> >> >> > there
> >> >> >> >> >> > is
> >> >> >> >> >> > video
> >> >> >> >> >> > stream or not...
> >> >> >> >> >> >
> >> >> >> >> >> > This is my OK answer form pjsip to another sip client
> >> >> >> >> >> >
> >> >> >> >> >> > m=audio 4000 RTP/AVP 3
> >> >> >> >> >> > a=rtpmap:3 GSM/8000
> >> >> >> >> >> > m=video 4002 RTP/AVP 98
> >> >> >> >> >> > a=rtpmap:98 H264/90000
> >> >> >> >> >> > a=recvonly
> >> >> >> >> >> >
> >> >> >> >> >> > Everything seems pretty. But after streams are created
> Pjsip
> >> >> >> >> >> > mixes
> >> >> >> >> >> > the
> >> >> >> >> >> > ports
> >> >> >> >> >> > with audio and video and it all crashes ...
> >> >> >> >> >> > How is your point of view to audio and video streams in
> your
> >> >> >> >> >> > application.
> >> >> >> >> >> >
> >> >> >> >> >> > Regards
> >> >> >> >> >> > Muge
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
> >> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> >> > wrote:
> >> >> >> >> >> >>
> >> >> >> >> >> >> Hello everyone,
> >> >> >> >> >> >>
> >> >> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
> >> >> >> >> >> >> completely
> >> >> >> >> >> >> finished it yet but i can now make some video calls
> between
> >> >> >> >> >> >> PCs.
> >> >> >> >> >> >> In
> >> >> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get an
> >> >> >> >> >> >> incoming
> >> >> >> >> >> >> call i check if it has video media. I do this by grabbing
> >> >> >> >> >> >> the
> >> >> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had to
> >> >> >> >> >> >> change
> >> >> >> >> >> >> a
> >> >> >> >> >> >> few
> >> >> >> >> >> >> things in negotiating SDP's. If i have video media i just
> >> >> >> >> >> >> grab
> >> >> >> >> >> >> the
> >> >> >> >> >> >> remote IP and port number out of the remote_sdp, put
> these
> >> >> >> >> >> >> values
> >> >> >> >> >> >> in
> >> >> >> >> >> >> the commands buffer for VLC and start playing from remote
> >> >> >> >> >> >> stream
> >> >> >> >> >> >> and
> >> >> >> >> >> >> streaming off my webcam using the VLC functions:
> >> >> >> >> >> >> VLC_Create(),
> >> >> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),
> >> >> >> >> >> >> VLC_AddIntf(int,
> >> >> >> >> >> >> char
> >> >> >> >> >> >> *s,
> >> >> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
> >> >> >> >> >> >> VLC_Pause(int),
> >> >> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but as
> >> >> >> >> >> >> soon
> >> >> >> >> >> >> as
> >> >> >> >> >> >> I
> >> >> >> >> >> >> get
> >> >> >> >> >> >> two video calls up on my PC my CPU usage jumps really
> high
> >> >> >> >> >> >> and
> >> >> >> >> >> >> stays
> >> >> >> >> >> >> there for the duration of the two calls. Is it because
> I'm
> >> >> >> >> >> >> using
> >> >> >> >> >> >> the
> >> >> >> >> >> >> wrong type of video codec? I'm currently using H264.
> >> >> >> >> >> >>
> >> >> >> >> >> >> Any ideas would be greatly appreciated.
> >> >> >> >> >> >>
> >> >> >> >> >> >> Hubert
> >> >> >> >> >> >>
> >> >> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
> >> >> >> >> >> >> <tiagores@gmail.com>
> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> > Hello all,
> >> >> >> >> >> >> > Thanks for your responses.
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > My Idea is to make some kind of videoconference. It
> >> >> >> >> >> >> > should
> >> >> >> >> >> >> > be
> >> >> >> >> >> >> > signaled
> >> >> >> >> >> >> > with
> >> >> >> >> >> >> > SIP, and stream via RTP.
> >> >> >> >> >> >> > I'm able to capture video using directshow libraries,
> and
> >> >> >> >> >> >> > it
> >> >> >> >> >> >> > would
> >> >> >> >> >> >> > be
> >> >> >> >> >> >> > great
> >> >> >> >> >> >> > to use transport functions of PJSIP to do the rest.
> >> >> >> >> >> >> > What do you think?
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > Thanks,
> >> >> >> >> >> >> > Tiago
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> Hi;
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> Did you able to start two way stream with 264 . I have
> >> >> >> >> >> >> >> some
> >> >> >> >> >> >> >> port
> >> >> >> >> >> >> >> issues
> >> >> >> >> >> >> >> ..
> >> >> >> >> >> >> >> video stream is using audio streams port.. i will be
> >> >> >> >> >> >> >> handling
> >> >> >> >> >> >> >> it
> >> >> >> >> >> >> >> soon i
> >> >> >> >> >> >> >> guess..
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> and what are you using for displaying stream , ? VLC
> or
> >> >> >> >> >> >> >> ffmpeg
> >> >> >> >> >> >> >> .?
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> muge
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
> >> >> >> >> >> >> >> <perry@pjsip.org>
> >> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> emanuele bottegoni wrote:
> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >>>> Hi Tiago,
> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >>>> I've added negotation to receive H264 streams,is it
> >> >> >> >> >> >> >>>> interesting
> >> >> >> >> >> >> >>>> for
> >> >> >> >> >> >> >>>> you?
> >> >> >> >> >> >> >>>> Tell me your problem and if it's possible I can help
> >> >> >> >> >> >> >>>> you.
> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >>>> Emanuele Bottegoni
> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> Hi Emanuele,
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> Certainly, adding video support is always
> interesting.
> >> >> >> >> >> >> >>> Contact
> >> >> >> >> >> >> >>> me
> >> >> >> >> >> >> >>> if
> >> >> >> >> >> >> >>> you
> >> >> >> >> >> >> >>> are willing to write a wiki page or a blog post about
> >> >> >> >> >> >> >>> it.
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> Thank you for your support,
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> --
> >> >> >> >> >> >> >>> Perry Ismangil
> >> >> >> >> >> >> >>> http://www.pjsip.org
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> _______________________________________________
> >> >> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> pjsip mailing list
> >> >> >> >> >> >> >>> pjsip@lists.pjsip.org
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >>
> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >>
> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >>
> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > _______________________________________________
> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >
> >> >> >> >> > pjsip mailing list
> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >> _______________________________________________
> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >>
> >> >> >> >> pjsip mailing list
> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >
> >> >> >> > pjsip mailing list
> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >>
> >> >> >> pjsip mailing list
> >> >> >> pjsip@lists.pjsip.org
> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >
> >> >> > pjsip mailing list
> >> >> > pjsip@lists.pjsip.org
> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >>
> >> >> _______________________________________________
> >> >> Visit our blog: http://blog.pjsip.org
> >> >>
> >> >> pjsip mailing list
> >> >> pjsip@lists.pjsip.org
> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >> > _______________________________________________
> >> > Visit our blog: http://blog.pjsip.org
> >> >
> >> > pjsip mailing list
> >> > pjsip@lists.pjsip.org
> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >>
> >> _______________________________________________
> >> Visit our blog: http://blog.pjsip.org
> >>
> >> pjsip mailing list
> >> pjsip@lists.pjsip.org
> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
> > _______________________________________________
> > Visit our blog: http://blog.pjsip.org
> >
> > pjsip mailing list
> > pjsip@lists.pjsip.org
> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
HL
Hubert Langevin
Sat, Oct 18, 2008 5:57 AM
Hi Muge,
Unfortunately i didn't build vlc myself. The lib and dll was given to
me. But have a look at those two links:
http://www.slackware.com/~alien/slackbuilds/vlc/build/
http://www.slackware.com/~alien/slackbuilds/vlc/build/vlc.SlackBuild
The author did this impressive script that automatically builds VLC
with most of the codecs you need. And i think he's got the latest VLC
as well, version h or i. You run the script and after a few minutes
it's done. You can tweak the script to do what you need it to do. That
might help you. If you're strongly considering VLC you definitely
should download the packages from the first link above and run the
script vlc.Slackbuild.
Best Regards,
Hubert
On Sat, Oct 18, 2008 at 4:22 AM, P.Muge Ersoy muge.ersoy@gmail.com wrote:
Hi Hubert;
Did you compile vlc with h264 support by yourself ?
It will be really helpfull if you check which vlc you installed for the
libvlc.dll for me ? :)
Regards
Muge
On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin hubertlangevin@gmail.com
wrote:
Hi Muge,
So you can't stream H264. Hmmm not sure what's going on there. I think
i had a similar problem and it had to do with what type of transport i
was using and type of mux i was putting in the commands buffer. And
also the video bit rate (vb=???). As i mentioned before i could stream
to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
had to change my webcam and still my image on the remote softphone was
pixelated. I was using a cheap (i mean really really cheap) webcam
before and i had a problem transcoding the frames to H264. When i
changed webcam to a more decent one things were slightly better. So it
could be your webcam. However i have a strong feeling it's more to do
with the version you're using, that is 8.6c.
Also some videophones and soft IP PBXs have different payload types
for video. You could check using Ethereal what payload type the
softphone is using and expecting in return. Could be a
mis-compatibility in payload types here and that's why it's not
showing up on the other end. I'm just guessing here. I had a LOT of
trouble getting video calls to work with different softphones out
there and things tend to get complicated with incompatible payload
types.
I guess a way of testing if there's a problem with the dll or camera
you're using would be to get your pjsua to negotiate SDP's with a
softphone, in other words, establish a normal video call. BUT don't
send your video from your pjsua/vlc yet, disable the video part or
comment it out in your code. We just want the video SDP session up.
Grab the remote ip and port of the softphone from the remote_sdp that
it just sent you. Print it to screen or write it down. Get a pure H264
video sample off google or anywhere. Open the latest and greatest VLC
player and start streaming that pure H264 sample to the softphone
using the options in the VLC player and the ip and port parameters
from remote_sdp. See if the softphone can display that stream. The
softphone should not care what application is sending the video stream
to it. It's just expecting video media on that port it gave you. And
you can check with Ethereal if the outgoing stream from the player is
H264 and which transport it is using, and also the stream the
softphone is sending you and what transport it's using. If the
softphone can display that stream coming from your VLC player, even
pixelated, it's possible that there's a problem with the dll you're
using. I saw quotes from other people on forums saying they forgot to
include some options like --enable-x264 etc... when building their
vlc.
By the way i just wanted to mention i remember i also tried a normal
video call (to test compatibility in general between independent soft
videophones) between an Eyebeam softphone and a WengoPhone softphone
and i just could not get them to work together. I was using a
relatively new version of WengoPhone and an old version of Eyebeam.
Maybe it had to do with again the webcam i was using or software
versions or something on my PC i'm not sure. I checked codecs,
firewalls, devices used and everything else but i could only get
WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
just didn't work for me. I haven't tried scenario of WengoPhone <===>
pjsua/vlc.
To answer your questions yes i am using the libvlc.dll and the OLD
API. I haven't moved to the new API. I think because i had the same
problem as you, meaning i couldn't get it to work in Visual C. I'm
sure the new API would have more enhancements but i'm not interested
in that right now. I just wanted to get PJSIP to PJSIP videocalls
working with the least amount of trouble. When i feel like playing
with MingW again i will get started on the new VLC API.
And regarding your sdp file at first glance it looks fine. Mine is
very similar to yours. You can write all these parameters using
virtually only local_sdp or remote_sdp. I can see you're using payload
type 98. I know the RFC says something about payload type 100, 99 and
98. But what i had to make sure was along the path of the video call,
all devices involved on the way, i mean the SIP registrar, your SIP
user agent, and the remote softphone, actually agree on the payload
types and that no one was silently complaining.
Let me know how you go with your tests.
Best Regards,
Hubert
On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your method of grapping ports and ip address and it works fine.
But when ever i start streaming i am not able to stream h264 .. it
captured
my outgoing packages and see that my stream is mpeg2 (Payload type:
MPEG-II
transport streams (33)) . So i am not able to see anything on the
softphone
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be 8.6c
is
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried
VLC
9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i don't
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main things
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your cpu
is
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried to
make
.def filen and convert libvlc.lib but lib didnt work.. I guess it was
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there any
Pjsua
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good tips
on
which functions you use but the whole thing is a bit too confusing
for
me and just didn't work for me. I am using the old version of VLC,
i'm
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
I was reading what you mentioned earlier, about the fact that you
want
video calls between pjsua to other software clients and soft phones/
VoIP Phones. Can't you do that already using VLC both ways? I mean
for
video calls all you need is modify your outgoing SDP so it contains
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding SDP
and start one instance of VLC that reads and decodes at the same
time.
I do that using VLC_AddIntf() for multiple video streams incoming
and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example
change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the new
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an eyebeam
(x-lite) video phone and everything was fine. Audio was fine and
video
was showing as well. Actually video was very pixelated, even though
I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
have different implementations of H264 i'm not sure. But video calls
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua too.
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My
implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
guide
a
bit too complicated/confusing and overloaded for what i wanted to
do.
Especially his definitions in the vlc.h file. Don't need all
that.
What i do is just get the remote IP, port, codec from remote_sdp
and
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do.
Plus,
i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hello Muge,
Yes my implementation sounds different. I guess i took the
easiest
and
quickest way to get video working. I do write the file.sdp
file
just
like you and get VLC to read and decode the sdp file, but i
also
use
VLC to stream.
To answer your question yes i did install Microsoft Platform
SDK...
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode, why
not
use
it to stream as well? You won't have to take care of streams,
ports,
transports, etc... It might be easier for you. I mean you are
already
using VLC to decode, might as well use it to encode. Makes
your
life
easier. Maybe i'm missing something that you want to
accomplish.
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours. I
want
pjsip
to
stream h264 from one side to other.. You choose VLC to do
it..
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which
includes
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show
headers
?
Muge
On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Mugo,
No i don't create another stream for video. I just make
sure
the
port
ranges for audio and video don't overlap. For example for
audio i
do
the usual pjsip thing, start the port range at 4000 and
with a
maximum
of 32 calls it'll go up to 4063. For the video i've got a
config
file
that pjsua_app.c reads at startup. In there i specify what
port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts
using
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the
initial
port
for video is the one that i specified in the video config
file.
After
having sent the offer and read the incoming remote_sdp,
what i
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I pass
it
to
the
commands buffer of VLC and use the functions VLC_Create(),
VLC_Init(int, int, char **s),
VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP
handle
the
video streams. I use PJSIP only for SDP negotiation that's
it.
I
leave
PJSIP to take care of all the audio streams and ports. And
i
keep
the
video part to VLC, including its transport and everything
else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have
two
incoming
H264 streams on your PC? How was your CPU usage?. When i
have
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if
there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created
Pjsip
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in
your
application.
Regards
Muge
On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls
between
PCs.
In
the callback on_call_state() in pjsua_app.c when i get
an
incoming
call i check if it has video media. I do this by
grabbing
the
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had to
change
a
few
things in negotiating SDP's. If i have video media i
just
grab
the
remote IP and port number out of the remote_sdp, put
these
values
in
the commands buffer for VLC and start playing from
remote
stream
and
streaming off my webcam using the VLC functions:
VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int),
VLC_AddIntf(int,
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but as
soon
as
I
get
two video calls up on my PC my CPU usage jumps really
high
and
stays
there for the duration of the two calls. Is it because
I'm
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It
should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow libraries,
and
it
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I
have
some
port
issues
..
video stream is using audio streams port.. i will be
handling
it
soon i
guess..
and what are you using for displaying stream , ? VLC
or
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is it
interesting
for
you?
Tell me your problem and if it's possible I can
help
you.
Emanuele Bottegoni
Hi Muge,
Unfortunately i didn't build vlc myself. The lib and dll was given to
me. But have a look at those two links:
http://www.slackware.com/~alien/slackbuilds/vlc/build/
http://www.slackware.com/~alien/slackbuilds/vlc/build/vlc.SlackBuild
The author did this impressive script that automatically builds VLC
with most of the codecs you need. And i think he's got the latest VLC
as well, version h or i. You run the script and after a few minutes
it's done. You can tweak the script to do what you need it to do. That
might help you. If you're strongly considering VLC you definitely
should download the packages from the first link above and run the
script vlc.Slackbuild.
Best Regards,
Hubert
On Sat, Oct 18, 2008 at 4:22 AM, P.Muge Ersoy <muge.ersoy@gmail.com> wrote:
> Hi Hubert;
>
> Did you compile vlc with h264 support by yourself ?
>
> It will be really helpfull if you check which vlc you installed for the
> libvlc.dll for me ? :)
>
> Regards
> Muge
>
> On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin <hubertlangevin@gmail.com>
> wrote:
>>
>> Hi Muge,
>>
>> So you can't stream H264. Hmmm not sure what's going on there. I think
>> i had a similar problem and it had to do with what type of transport i
>> was using and type of mux i was putting in the commands buffer. And
>> also the video bit rate (vb=???). As i mentioned before i could stream
>> to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
>> had to change my webcam and still my image on the remote softphone was
>> pixelated. I was using a cheap (i mean really really cheap) webcam
>> before and i had a problem transcoding the frames to H264. When i
>> changed webcam to a more decent one things were slightly better. So it
>> could be your webcam. However i have a strong feeling it's more to do
>> with the version you're using, that is 8.6c.
>>
>> Also some videophones and soft IP PBXs have different payload types
>> for video. You could check using Ethereal what payload type the
>> softphone is using and expecting in return. Could be a
>> mis-compatibility in payload types here and that's why it's not
>> showing up on the other end. I'm just guessing here. I had a LOT of
>> trouble getting video calls to work with different softphones out
>> there and things tend to get complicated with incompatible payload
>> types.
>>
>> I guess a way of testing if there's a problem with the dll or camera
>> you're using would be to get your pjsua to negotiate SDP's with a
>> softphone, in other words, establish a normal video call. BUT don't
>> send your video from your pjsua/vlc yet, disable the video part or
>> comment it out in your code. We just want the video SDP session up.
>> Grab the remote ip and port of the softphone from the remote_sdp that
>> it just sent you. Print it to screen or write it down. Get a pure H264
>> video sample off google or anywhere. Open the latest and greatest VLC
>> player and start streaming that pure H264 sample to the softphone
>> using the options in the VLC player and the ip and port parameters
>> from remote_sdp. See if the softphone can display that stream. The
>> softphone should not care what application is sending the video stream
>> to it. It's just expecting video media on that port it gave you. And
>> you can check with Ethereal if the outgoing stream from the player is
>> H264 and which transport it is using, and also the stream the
>> softphone is sending you and what transport it's using. If the
>> softphone can display that stream coming from your VLC player, even
>> pixelated, it's possible that there's a problem with the dll you're
>> using. I saw quotes from other people on forums saying they forgot to
>> include some options like --enable-x264 etc... when building their
>> vlc.
>>
>> By the way i just wanted to mention i remember i also tried a normal
>> video call (to test compatibility in general between independent soft
>> videophones) between an Eyebeam softphone and a WengoPhone softphone
>> and i just could not get them to work together. I was using a
>> relatively new version of WengoPhone and an old version of Eyebeam.
>> Maybe it had to do with again the webcam i was using or software
>> versions or something on my PC i'm not sure. I checked codecs,
>> firewalls, devices used and everything else but i could only get
>> WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
>> pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
>> just didn't work for me. I haven't tried scenario of WengoPhone <===>
>> pjsua/vlc.
>>
>> To answer your questions yes i am using the libvlc.dll and the OLD
>> API. I haven't moved to the new API. I think because i had the same
>> problem as you, meaning i couldn't get it to work in Visual C. I'm
>> sure the new API would have more enhancements but i'm not interested
>> in that right now. I just wanted to get PJSIP to PJSIP videocalls
>> working with the least amount of trouble. When i feel like playing
>> with MingW again i will get started on the new VLC API.
>>
>> And regarding your sdp file at first glance it looks fine. Mine is
>> very similar to yours. You can write all these parameters using
>> virtually only local_sdp or remote_sdp. I can see you're using payload
>> type 98. I know the RFC says something about payload type 100, 99 and
>> 98. But what i had to make sure was along the path of the video call,
>> all devices involved on the way, i mean the SIP registrar, your SIP
>> user agent, and the remote softphone, actually agree on the payload
>> types and that no one was silently complaining.
>>
>> Let me know how you go with your tests.
>>
>> Best Regards,
>>
>> Hubert
>>
>> On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> wrote:
>> > Hi Hubert;
>> >
>> > I tried your method of grapping ports and ip address and it works fine.
>> >
>> > But when ever i start streaming i am not able to stream h264 .. it
>> > captured
>> > my outgoing packages and see that my stream is mpeg2 (Payload type:
>> > MPEG-II
>> > transport streams (33)) . So i am not able to see anything on the
>> > softphone
>> > .. But it is working fine between two pjsua client..
>> >
>> > I am sure you checked your stream if it is h264 didnt you ? May be 8.6c
>> > is
>> > not supporting h264 i am not so sure ..
>> >
>> > Btw Visual C example of vlc is not working on new API at all.. I tried
>> > VLC
>> > 9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
>> >
>> > Are you using dll too ?
>> >
>> > Also i d like to show my sdp file something like that ..
>> >
>> > v=0
>> > o=- 597327894206 2 IN IP4 192.168.0.165
>> > s=NONE
>> > t=0 0
>> > c=IN IP4 192.168.0.165
>> > m=video 14444 RTP/AVP 98
>> > b=AS:28
>> > a=rtpmap:98 H264/90000
>> >
>> >
>> >
>> > Muge
>> >
>> >
>> > On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
>> > <hubertlangevin@gmail.com>
>> > wrote:
>> >>
>> >> Hi Muge,
>> >>
>> >> Yes i think you're right. When i run pjsua i do load ALL the plugins
>> >> for VLC from the plugins directory. Maybe i should remove what i don't
>> >> need from there.
>> >>
>> >> Regarding your question about getting SDP information i do it in the
>> >> callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
>> >> SDP negotiation is finished and everyone is happy in terms of sdp
>> >> parameters, and when the callback's event is CONFIRMED, i acquire the
>> >> call using the call_id as in acquire_call("Something Something",
>> >> call_id, &call, &dlg). I then grab the local and remote SDP's using:
>> >>
>> >> pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
>> >> pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
>> >>
>> >> Once i get the two SDP's above, all i do is check for the video
>> >> parameters. I think it's in remote_sdp->conn->addr and
>> >> remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
>> >> and so on and so forth. Just grab the things you think you might need
>> >> from the remote SDP (and local SDP) for whichever player you are
>> >> using. I'm using VLC so IP address, port and codec are the main things
>> >> for me. I also do a LOT of checks but that's the above concept is
>> >> mainly how i do it.
>> >>
>> >> Then you can write the video.sdp file. which you already how it looks
>> >> like. Then you can proceed on how you want to implement your video
>> >> handling from here. If you are using VLC there are a few ways to do
>> >> that, you just need to pick the one you feel more comfortable with. I
>> >> personally use the --extraintf and --vlm-conf method but that's just
>> >> me.
>> >>
>> >> Hubert
>> >>
>> >> On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> wrote:
>> >> > Hi Hubert;
>> >> >
>> >> > I tried your way of vlc video call.. I guess the problem at your cpu
>> >> > is
>> >> > because of loading to many dll ( vlc and plugins) during the call..
>> >> > My computer was forced also..
>> >> > I am using VStudio so i am using libvlc.dll... actually i ve tried to
>> >> > make
>> >> > .def filen and convert libvlc.lib but lib didnt work.. I guess it was
>> >> > because new api of vlc..
>> >> >
>> >> > Did you code to get SDP information from pjsua_app.c or is there any
>> >> > Pjsua
>> >> > api to get active sdp information ?
>> >> >
>> >> > muge
>> >> >
>> >> >
>> >> >
>> >> > On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
>> >> > <hubertlangevin@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> Hi Muge,
>> >> >>
>> >> >> Yeah that's why i didn't follow that guide. It's got some good tips
>> >> >> on
>> >> >> which functions you use but the whole thing is a bit too confusing
>> >> >> for
>> >> >> me and just didn't work for me. I am using the old version of VLC,
>> >> >> i'm
>> >> >> not sure how to call it. It's at this link below. Again the old
>> >> >> version is simple for what i want to accomplish.
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
>> >> >>
>> >> >> I was reading what you mentioned earlier, about the fact that you
>> >> >> want
>> >> >> video calls between pjsua to other software clients and soft phones/
>> >> >> VoIP Phones. Can't you do that already using VLC both ways? I mean
>> >> >> for
>> >> >> video calls all you need is modify your outgoing SDP so it contains
>> >> >> video media at a certain port that you specify at startup so the
>> >> >> remote video phones can read it and you read their corresponding SDP
>> >> >> and start one instance of VLC that reads and decodes at the same
>> >> >> time.
>> >> >> I do that using VLC_AddIntf() for multiple video streams incoming
>> >> >> and
>> >> >> outgoing. The audio is still handled by pjsip during that same sdp
>> >> >> exchange and the video by vlc. For any re-invites, for example
>> >> >> change
>> >> >> of remote video port or remote video codec, just destroy the vlc
>> >> >> instance in on_call_media() callback and re-create it using the new
>> >> >> values from the re-invites. I mean it is still a video call that i
>> >> >> make to other video phones. I did a test from my pjsua to an eyebeam
>> >> >> (x-lite) video phone and everything was fine. Audio was fine and
>> >> >> video
>> >> >> was showing as well. Actually video was very pixelated, even though
>> >> >> I
>> >> >> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and videolan
>> >> >> have different implementations of H264 i'm not sure. But video calls
>> >> >> between pjsua <===> pjsua works perfectly.
>> >> >>
>> >> >> And VLC does support SRTP from what i've seen. I'm using pjsua too.
>> >> >> Are you using libvlc.lib and libvlc.dll?
>> >> >>
>> >> >> Hubert
>> >> >>
>> >> >> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> >> wrote:
>> >> >> > yeah i am not getting anything also..
>> >> >> > may i ask which version of vlc you are using?
>> >> >> >
>> >> >> > I tried it but there are some errors like below
>> >> >> > main interface error: no interface module matched "hotkeys,none"
>> >> >> >
>> >> >> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
>> >> >> > <hubertlangevin@gmail.com>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> Hi Muge,
>> >> >> >>
>> >> >> >> Oh that tutorial. Yeah i started off that tutorial. My
>> >> >> >> implementation
>> >> >> >> of video is very very similar. I use the commands buffer,
>> >> >> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
>> >> >> >> guide
>> >> >> >> a
>> >> >> >> bit too complicated/confusing and overloaded for what i wanted to
>> >> >> >> do.
>> >> >> >> Especially his definitions in the vlc.h file. Don't need all
>> >> >> >> that.
>> >> >> >> What i do is just get the remote IP, port, codec from remote_sdp
>> >> >> >> and
>> >> >> >> use a couple of VLC functions to stream and decode. Done. That
>> >> >> >> tutorial i found was too much for what i simply wanted to do.
>> >> >> >> Plus,
>> >> >> >> i
>> >> >> >> was never good at spanish. ;)
>> >> >> >>
>> >> >> >> Hubert
>> >> >> >>
>> >> >> >>
>> >> >> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy
>> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> wrote:
>> >> >> >> > Hi Hubert;
>> >> >> >> >
>> >> >> >> > I have a question for you ..
>> >> >> >> >
>> >> >> >> > Did you use the below tutorial for vlc display inside pjsip?
>> >> >> >> > http://wiki.videolan.org/LibVLC_Visual_C
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > Muge
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
>> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> > wrote:
>> >> >> >> >>
>> >> >> >> >> Hello Muge,
>> >> >> >> >>
>> >> >> >> >> Yes my implementation sounds different. I guess i took the
>> >> >> >> >> easiest
>> >> >> >> >> and
>> >> >> >> >> quickest way to get video working. I do write the file.sdp
>> >> >> >> >> file
>> >> >> >> >> just
>> >> >> >> >> like you and get VLC to read and decode the sdp file, but i
>> >> >> >> >> also
>> >> >> >> >> use
>> >> >> >> >> VLC to stream.
>> >> >> >> >>
>> >> >> >> >> To answer your question yes i did install Microsoft Platform
>> >> >> >> >> SDK...
>> >> >> >> >> Hmmm... i can't remember which version though.
>> >> >> >> >>
>> >> >> >> >> Quick question. Since you are already using VLC to decode, why
>> >> >> >> >> not
>> >> >> >> >> use
>> >> >> >> >> it to stream as well? You won't have to take care of streams,
>> >> >> >> >> ports,
>> >> >> >> >> transports, etc... It might be easier for you. I mean you are
>> >> >> >> >> already
>> >> >> >> >> using VLC to decode, might as well use it to encode. Makes
>> >> >> >> >> your
>> >> >> >> >> life
>> >> >> >> >> easier. Maybe i'm missing something that you want to
>> >> >> >> >> accomplish.
>> >> >> >> >>
>> >> >> >> >> What do you think?
>> >> >> >> >>
>> >> >> >> >> Hubert
>> >> >> >> >>
>> >> >> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
>> >> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> >> wrote:
>> >> >> >> >> > Hi Hubert;
>> >> >> >> >> >
>> >> >> >> >> > Actually my implementation is quite different from yours. I
>> >> >> >> >> > want
>> >> >> >> >> > pjsip
>> >> >> >> >> > to
>> >> >> >> >> > stream h264 from one side to other.. You choose VLC to do
>> >> >> >> >> > it..
>> >> >> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
>> >> >> >> >> > functions
>> >> >> >> >> > as
>> >> >> >> >> > well
>> >> >> >> >> > as SDP negotiation.
>> >> >> >> >> >
>> >> >> >> >> > I want vlc to decode this h264 stream with file.sdp which
>> >> >> >> >> > includes
>> >> >> >> >> > remote ip
>> >> >> >> >> > and port information with codec.
>> >> >> >> >> >
>> >> >> >> >> > Did you install Microsoft Platform SDK for direct show
>> >> >> >> >> > headers
>> >> >> >> >> > ?
>> >> >> >> >> >
>> >> >> >> >> > Muge
>> >> >> >> >> >
>> >> >> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
>> >> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> >> > wrote:
>> >> >> >> >> >>
>> >> >> >> >> >> Hi Mugo,
>> >> >> >> >> >>
>> >> >> >> >> >> No i don't create another stream for video. I just make
>> >> >> >> >> >> sure
>> >> >> >> >> >> the
>> >> >> >> >> >> port
>> >> >> >> >> >> ranges for audio and video don't overlap. For example for
>> >> >> >> >> >> audio i
>> >> >> >> >> >> do
>> >> >> >> >> >> the usual pjsip thing, start the port range at 4000 and
>> >> >> >> >> >> with a
>> >> >> >> >> >> maximum
>> >> >> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a
>> >> >> >> >> >> config
>> >> >> >> >> >> file
>> >> >> >> >> >> that pjsua_app.c reads at startup. In there i specify what
>> >> >> >> >> >> port
>> >> >> >> >> >> video
>> >> >> >> >> >> should start at. And i usually put it at 6000. When the
>> >> >> >> >> >> application
>> >> >> >> >> >> runs it checks if those ports are free or not and starts
>> >> >> >> >> >> using
>> >> >> >> >> >> them.
>> >> >> >> >> >> This way my audio and video ports don't overlap.
>> >> >> >> >> >>
>> >> >> >> >> >> When i create my SDP, and before i send the offer, the
>> >> >> >> >> >> initial
>> >> >> >> >> >> port
>> >> >> >> >> >> for video is the one that i specified in the video config
>> >> >> >> >> >> file.
>> >> >> >> >> >> After
>> >> >> >> >> >> having sent the offer and read the incoming remote_sdp,
>> >> >> >> >> >> what i
>> >> >> >> >> >> pass
>> >> >> >> >> >> to
>> >> >> >> >> >> VLC is just the port number to transmit to, IP address to
>> >> >> >> >> >> transmit
>> >> >> >> >> >> to,
>> >> >> >> >> >> transcoding codec, video bit rate and the mux type. I pass
>> >> >> >> >> >> it
>> >> >> >> >> >> to
>> >> >> >> >> >> the
>> >> >> >> >> >> commands buffer of VLC and use the functions VLC_Create(),
>> >> >> >> >> >> VLC_Init(int, int, char **s),
>> >> >> >> >> >> VLC_Play(int),VLC_FullScreen(int),
>> >> >> >> >> >> etc... So to answer your question no i don't let PJSIP
>> >> >> >> >> >> handle
>> >> >> >> >> >> the
>> >> >> >> >> >> video streams. I use PJSIP only for SDP negotiation that's
>> >> >> >> >> >> it.
>> >> >> >> >> >> I
>> >> >> >> >> >> leave
>> >> >> >> >> >> PJSIP to take care of all the audio streams and ports. And
>> >> >> >> >> >> i
>> >> >> >> >> >> keep
>> >> >> >> >> >> the
>> >> >> >> >> >> video part to VLC, including its transport and everything
>> >> >> >> >> >> else.
>> >> >> >> >> >> PJSIP
>> >> >> >> >> >> doesn't touch that part.
>> >> >> >> >> >>
>> >> >> >> >> >> I can see you're using H264. I am too. Did you ever have
>> >> >> >> >> >> two
>> >> >> >> >> >> incoming
>> >> >> >> >> >> H264 streams on your PC? How was your CPU usage?. When i
>> >> >> >> >> >> have
>> >> >> >> >> >> more
>> >> >> >> >> >> than one on my PC my CPU usage doesn't look too good..
>> >> >> >> >> >>
>> >> >> >> >> >> Hubert
>> >> >> >> >> >>
>> >> >> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
>> >> >> >> >> >> <muge.ersoy@gmail.com>
>> >> >> >> >> >> wrote:
>> >> >> >> >> >> > Hi Hubert;
>> >> >> >> >> >> >
>> >> >> >> >> >> > Haven't you created another stream for video ?
>> >> >> >> >> >> >
>> >> >> >> >> >> > As far as i understand after SDP negotiation you get if
>> >> >> >> >> >> > there
>> >> >> >> >> >> > is
>> >> >> >> >> >> > video
>> >> >> >> >> >> > stream or not...
>> >> >> >> >> >> >
>> >> >> >> >> >> > This is my OK answer form pjsip to another sip client
>> >> >> >> >> >> >
>> >> >> >> >> >> > m=audio 4000 RTP/AVP 3
>> >> >> >> >> >> > a=rtpmap:3 GSM/8000
>> >> >> >> >> >> > m=video 4002 RTP/AVP 98
>> >> >> >> >> >> > a=rtpmap:98 H264/90000
>> >> >> >> >> >> > a=recvonly
>> >> >> >> >> >> >
>> >> >> >> >> >> > Everything seems pretty. But after streams are created
>> >> >> >> >> >> > Pjsip
>> >> >> >> >> >> > mixes
>> >> >> >> >> >> > the
>> >> >> >> >> >> > ports
>> >> >> >> >> >> > with audio and video and it all crashes ...
>> >> >> >> >> >> > How is your point of view to audio and video streams in
>> >> >> >> >> >> > your
>> >> >> >> >> >> > application.
>> >> >> >> >> >> >
>> >> >> >> >> >> > Regards
>> >> >> >> >> >> > Muge
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
>> >> >> >> >> >> > <hubertlangevin@gmail.com>
>> >> >> >> >> >> > wrote:
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Hello everyone,
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
>> >> >> >> >> >> >> completely
>> >> >> >> >> >> >> finished it yet but i can now make some video calls
>> >> >> >> >> >> >> between
>> >> >> >> >> >> >> PCs.
>> >> >> >> >> >> >> In
>> >> >> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get
>> >> >> >> >> >> >> an
>> >> >> >> >> >> >> incoming
>> >> >> >> >> >> >> call i check if it has video media. I do this by
>> >> >> >> >> >> >> grabbing
>> >> >> >> >> >> >> the
>> >> >> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
>> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
>> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had to
>> >> >> >> >> >> >> change
>> >> >> >> >> >> >> a
>> >> >> >> >> >> >> few
>> >> >> >> >> >> >> things in negotiating SDP's. If i have video media i
>> >> >> >> >> >> >> just
>> >> >> >> >> >> >> grab
>> >> >> >> >> >> >> the
>> >> >> >> >> >> >> remote IP and port number out of the remote_sdp, put
>> >> >> >> >> >> >> these
>> >> >> >> >> >> >> values
>> >> >> >> >> >> >> in
>> >> >> >> >> >> >> the commands buffer for VLC and start playing from
>> >> >> >> >> >> >> remote
>> >> >> >> >> >> >> stream
>> >> >> >> >> >> >> and
>> >> >> >> >> >> >> streaming off my webcam using the VLC functions:
>> >> >> >> >> >> >> VLC_Create(),
>> >> >> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),
>> >> >> >> >> >> >> VLC_AddIntf(int,
>> >> >> >> >> >> >> char
>> >> >> >> >> >> >> *s,
>> >> >> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
>> >> >> >> >> >> >> VLC_Pause(int),
>> >> >> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but as
>> >> >> >> >> >> >> soon
>> >> >> >> >> >> >> as
>> >> >> >> >> >> >> I
>> >> >> >> >> >> >> get
>> >> >> >> >> >> >> two video calls up on my PC my CPU usage jumps really
>> >> >> >> >> >> >> high
>> >> >> >> >> >> >> and
>> >> >> >> >> >> >> stays
>> >> >> >> >> >> >> there for the duration of the two calls. Is it because
>> >> >> >> >> >> >> I'm
>> >> >> >> >> >> >> using
>> >> >> >> >> >> >> the
>> >> >> >> >> >> >> wrong type of video codec? I'm currently using H264.
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Any ideas would be greatly appreciated.
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> Hubert
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
>> >> >> >> >> >> >> <tiagores@gmail.com>
>> >> >> >> >> >> >> wrote:
>> >> >> >> >> >> >> > Hello all,
>> >> >> >> >> >> >> > Thanks for your responses.
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > My Idea is to make some kind of videoconference. It
>> >> >> >> >> >> >> > should
>> >> >> >> >> >> >> > be
>> >> >> >> >> >> >> > signaled
>> >> >> >> >> >> >> > with
>> >> >> >> >> >> >> > SIP, and stream via RTP.
>> >> >> >> >> >> >> > I'm able to capture video using directshow libraries,
>> >> >> >> >> >> >> > and
>> >> >> >> >> >> >> > it
>> >> >> >> >> >> >> > would
>> >> >> >> >> >> >> > be
>> >> >> >> >> >> >> > great
>> >> >> >> >> >> >> > to use transport functions of PJSIP to do the rest.
>> >> >> >> >> >> >> > What do you think?
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > Thanks,
>> >> >> >> >> >> >> > Tiago
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> Hi;
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> Did you able to start two way stream with 264 . I
>> >> >> >> >> >> >> >> have
>> >> >> >> >> >> >> >> some
>> >> >> >> >> >> >> >> port
>> >> >> >> >> >> >> >> issues
>> >> >> >> >> >> >> >> ..
>> >> >> >> >> >> >> >> video stream is using audio streams port.. i will be
>> >> >> >> >> >> >> >> handling
>> >> >> >> >> >> >> >> it
>> >> >> >> >> >> >> >> soon i
>> >> >> >> >> >> >> >> guess..
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> and what are you using for displaying stream , ? VLC
>> >> >> >> >> >> >> >> or
>> >> >> >> >> >> >> >> ffmpeg
>> >> >> >> >> >> >> >> .?
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> muge
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
>> >> >> >> >> >> >> >> <perry@pjsip.org>
>> >> >> >> >> >> >> >> wrote:
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> emanuele bottegoni wrote:
>> >> >> >> >> >> >> >>>>
>> >> >> >> >> >> >> >>>> Hi Tiago,
>> >> >> >> >> >> >> >>>>
>> >> >> >> >> >> >> >>>> I've added negotation to receive H264 streams,is it
>> >> >> >> >> >> >> >>>> interesting
>> >> >> >> >> >> >> >>>> for
>> >> >> >> >> >> >> >>>> you?
>> >> >> >> >> >> >> >>>> Tell me your problem and if it's possible I can
>> >> >> >> >> >> >> >>>> help
>> >> >> >> >> >> >> >>>> you.
>> >> >> >> >> >> >> >>>>
>> >> >> >> >> >> >> >>>> Emanuele Bottegoni
>> >> >> >> >> >> >> >>>>
>> >> >> >> >> >> >> >>>>
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> Hi Emanuele,
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> Certainly, adding video support is always
>> >> >> >> >> >> >> >>> interesting.
>> >> >> >> >> >> >> >>> Contact
>> >> >> >> >> >> >> >>> me
>> >> >> >> >> >> >> >>> if
>> >> >> >> >> >> >> >>> you
>> >> >> >> >> >> >> >>> are willing to write a wiki page or a blog post
>> >> >> >> >> >> >> >>> about
>> >> >> >> >> >> >> >>> it.
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> Thank you for your support,
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> --
>> >> >> >> >> >> >> >>> Perry Ismangil
>> >> >> >> >> >> >> >>> http://www.pjsip.org
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> _______________________________________________
>> >> >> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> pjsip mailing list
>> >> >> >> >> >> >> >>> pjsip@lists.pjsip.org
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>>
>> >> >> >> >> >> >> >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > _______________________________________________
>> >> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > pjsip mailing list
>> >> >> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >> >
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >> >>
>> >> >> >> >> >> >>
>> >> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > _______________________________________________
>> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> > pjsip mailing list
>> >> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >> >
>> >> >> >> >> >> >
>> >> >> >> >> >>
>> >> >> >> >> >> _______________________________________________
>> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> pjsip mailing list
>> >> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> >>
>> >> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > _______________________________________________
>> >> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > pjsip mailing list
>> >> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >>
>> >> >> >> >> _______________________________________________
>> >> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >> >>
>> >> >> >> >> pjsip mailing list
>> >> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > _______________________________________________
>> >> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >> >
>> >> >> >> > pjsip mailing list
>> >> >> >> > pjsip@lists.pjsip.org
>> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Visit our blog: http://blog.pjsip.org
>> >> >> >>
>> >> >> >> pjsip mailing list
>> >> >> >> pjsip@lists.pjsip.org
>> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Visit our blog: http://blog.pjsip.org
>> >> >> >
>> >> >> > pjsip mailing list
>> >> >> > pjsip@lists.pjsip.org
>> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> _______________________________________________
>> >> >> Visit our blog: http://blog.pjsip.org
>> >> >>
>> >> >> pjsip mailing list
>> >> >> pjsip@lists.pjsip.org
>> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Visit our blog: http://blog.pjsip.org
>> >> >
>> >> > pjsip mailing list
>> >> > pjsip@lists.pjsip.org
>> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> Visit our blog: http://blog.pjsip.org
>> >>
>> >> pjsip mailing list
>> >> pjsip@lists.pjsip.org
>> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>> > _______________________________________________
>> > Visit our blog: http://blog.pjsip.org
>> >
>> > pjsip mailing list
>> > pjsip@lists.pjsip.org
>> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip@lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
PE
P.Muge Ersoy
Mon, Oct 20, 2008 2:04 PM
Hi Hubert;
Thank you for your email and support :)
It is really pain to compile on cygwin with h264 support.. Is it possible to
send me the dll if you dont mind ?
Thanks indeed
muge
On Sat, Oct 18, 2008 at 8:57 AM, Hubert Langevin
hubertlangevin@gmail.comwrote:
Hi Hubert;
Did you compile vlc with h264 support by yourself ?
It will be really helpfull if you check which vlc you installed for the
libvlc.dll for me ? :)
Regards
Muge
On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin <
Hi Muge,
So you can't stream H264. Hmmm not sure what's going on there. I think
i had a similar problem and it had to do with what type of transport i
was using and type of mux i was putting in the commands buffer. And
also the video bit rate (vb=???). As i mentioned before i could stream
to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
had to change my webcam and still my image on the remote softphone was
pixelated. I was using a cheap (i mean really really cheap) webcam
before and i had a problem transcoding the frames to H264. When i
changed webcam to a more decent one things were slightly better. So it
could be your webcam. However i have a strong feeling it's more to do
with the version you're using, that is 8.6c.
Also some videophones and soft IP PBXs have different payload types
for video. You could check using Ethereal what payload type the
softphone is using and expecting in return. Could be a
mis-compatibility in payload types here and that's why it's not
showing up on the other end. I'm just guessing here. I had a LOT of
trouble getting video calls to work with different softphones out
there and things tend to get complicated with incompatible payload
types.
I guess a way of testing if there's a problem with the dll or camera
you're using would be to get your pjsua to negotiate SDP's with a
softphone, in other words, establish a normal video call. BUT don't
send your video from your pjsua/vlc yet, disable the video part or
comment it out in your code. We just want the video SDP session up.
Grab the remote ip and port of the softphone from the remote_sdp that
it just sent you. Print it to screen or write it down. Get a pure H264
video sample off google or anywhere. Open the latest and greatest VLC
player and start streaming that pure H264 sample to the softphone
using the options in the VLC player and the ip and port parameters
from remote_sdp. See if the softphone can display that stream. The
softphone should not care what application is sending the video stream
to it. It's just expecting video media on that port it gave you. And
you can check with Ethereal if the outgoing stream from the player is
H264 and which transport it is using, and also the stream the
softphone is sending you and what transport it's using. If the
softphone can display that stream coming from your VLC player, even
pixelated, it's possible that there's a problem with the dll you're
using. I saw quotes from other people on forums saying they forgot to
include some options like --enable-x264 etc... when building their
vlc.
By the way i just wanted to mention i remember i also tried a normal
video call (to test compatibility in general between independent soft
videophones) between an Eyebeam softphone and a WengoPhone softphone
and i just could not get them to work together. I was using a
relatively new version of WengoPhone and an old version of Eyebeam.
Maybe it had to do with again the webcam i was using or software
versions or something on my PC i'm not sure. I checked codecs,
firewalls, devices used and everything else but i could only get
WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
just didn't work for me. I haven't tried scenario of WengoPhone <===>
pjsua/vlc.
To answer your questions yes i am using the libvlc.dll and the OLD
API. I haven't moved to the new API. I think because i had the same
problem as you, meaning i couldn't get it to work in Visual C. I'm
sure the new API would have more enhancements but i'm not interested
in that right now. I just wanted to get PJSIP to PJSIP videocalls
working with the least amount of trouble. When i feel like playing
with MingW again i will get started on the new VLC API.
And regarding your sdp file at first glance it looks fine. Mine is
very similar to yours. You can write all these parameters using
virtually only local_sdp or remote_sdp. I can see you're using payload
type 98. I know the RFC says something about payload type 100, 99 and
98. But what i had to make sure was along the path of the video call,
all devices involved on the way, i mean the SIP registrar, your SIP
user agent, and the remote softphone, actually agree on the payload
types and that no one was silently complaining.
Let me know how you go with your tests.
Best Regards,
Hubert
On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your method of grapping ports and ip address and it works
But when ever i start streaming i am not able to stream h264 .. it
captured
my outgoing packages and see that my stream is mpeg2 (Payload type:
MPEG-II
transport streams (33)) . So i am not able to see anything on the
softphone
.. But it is working fine between two pjsua client..
I am sure you checked your stream if it is h264 didnt you ? May be
is
not supporting h264 i am not so sure ..
Btw Visual C example of vlc is not working on new API at all.. I tried
VLC
9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
Are you using dll too ?
Also i d like to show my sdp file something like that ..
v=0
o=- 597327894206 2 IN IP4 192.168.0.165
s=NONE
t=0 0
c=IN IP4 192.168.0.165
m=video 14444 RTP/AVP 98
b=AS:28
a=rtpmap:98 H264/90000
Muge
On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yes i think you're right. When i run pjsua i do load ALL the plugins
for VLC from the plugins directory. Maybe i should remove what i
need from there.
Regarding your question about getting SDP information i do it in the
callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
SDP negotiation is finished and everyone is happy in terms of sdp
parameters, and when the callback's event is CONFIRMED, i acquire the
call using the call_id as in acquire_call("Something Something",
call_id, &call, &dlg). I then grab the local and remote SDP's using:
pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
Once i get the two SDP's above, all i do is check for the video
parameters. I think it's in remote_sdp->conn->addr and
remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
and so on and so forth. Just grab the things you think you might need
from the remote SDP (and local SDP) for whichever player you are
using. I'm using VLC so IP address, port and codec are the main
for me. I also do a LOT of checks but that's the above concept is
mainly how i do it.
Then you can write the video.sdp file. which you already how it looks
like. Then you can proceed on how you want to implement your video
handling from here. If you are using VLC there are a few ways to do
that, you just need to pick the one you feel more comfortable with. I
personally use the --extraintf and --vlm-conf method but that's just
me.
Hubert
On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy muge.ersoy@gmail.com
wrote:
Hi Hubert;
I tried your way of vlc video call.. I guess the problem at your
is
because of loading to many dll ( vlc and plugins) during the call..
My computer was forced also..
I am using VStudio so i am using libvlc.dll... actually i ve tried
make
.def filen and convert libvlc.lib but lib didnt work.. I guess it
because new api of vlc..
Did you code to get SDP information from pjsua_app.c or is there
Pjsua
api to get active sdp information ?
muge
On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Yeah that's why i didn't follow that guide. It's got some good
on
which functions you use but the whole thing is a bit too confusing
for
me and just didn't work for me. I am using the old version of VLC,
i'm
not sure how to call it. It's at this link below. Again the old
version is simple for what i want to accomplish.
I was reading what you mentioned earlier, about the fact that you
want
video calls between pjsua to other software clients and soft
VoIP Phones. Can't you do that already using VLC both ways? I mean
for
video calls all you need is modify your outgoing SDP so it
video media at a certain port that you specify at startup so the
remote video phones can read it and you read their corresponding
and start one instance of VLC that reads and decodes at the same
time.
I do that using VLC_AddIntf() for multiple video streams incoming
and
outgoing. The audio is still handled by pjsip during that same sdp
exchange and the video by vlc. For any re-invites, for example
change
of remote video port or remote video codec, just destroy the vlc
instance in on_call_media() callback and re-create it using the
values from the re-invites. I mean it is still a video call that i
make to other video phones. I did a test from my pjsua to an
(x-lite) video phone and everything was fine. Audio was fine and
video
was showing as well. Actually video was very pixelated, even
I
did specify H264 from Eyebeam and pjsua. Maybe eyebeam and
have different implementations of H264 i'm not sure. But video
between pjsua <===> pjsua works perfectly.
And VLC does support SRTP from what i've seen. I'm using pjsua
Are you using libvlc.lib and libvlc.dll?
Hubert
On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <
yeah i am not getting anything also..
may i ask which version of vlc you are using?
I tried it but there are some errors like below
main interface error: no interface module matched "hotkeys,none"
On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Muge,
Oh that tutorial. Yeah i started off that tutorial. My
implementation
of video is very very similar. I use the commands buffer,
VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
guide
a
bit too complicated/confusing and overloaded for what i wanted
do.
Especially his definitions in the vlc.h file. Don't need all
that.
What i do is just get the remote IP, port, codec from
and
use a couple of VLC functions to stream and decode. Done. That
tutorial i found was too much for what i simply wanted to do.
Plus,
i
was never good at spanish. ;)
Hubert
On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hello Muge,
Yes my implementation sounds different. I guess i took the
easiest
and
quickest way to get video working. I do write the file.sdp
file
just
like you and get VLC to read and decode the sdp file, but i
also
use
VLC to stream.
To answer your question yes i did install Microsoft Platform
SDK...
Hmmm... i can't remember which version though.
Quick question. Since you are already using VLC to decode,
not
use
it to stream as well? You won't have to take care of
ports,
transports, etc... It might be easier for you. I mean you
already
using VLC to decode, might as well use it to encode. Makes
your
life
easier. Maybe i'm missing something that you want to
accomplish.
What do you think?
Hubert
On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Actually my implementation is quite different from yours.
want
pjsip
to
stream h264 from one side to other.. You choose VLC to do
it..
I changed pjmedia_session_create and pjmedia_stream_create
functions
as
well
as SDP negotiation.
I want vlc to decode this h264 stream with file.sdp which
includes
remote ip
and port information with codec.
Did you install Microsoft Platform SDK for direct show
headers
?
Muge
On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hi Mugo,
No i don't create another stream for video. I just make
sure
the
port
ranges for audio and video don't overlap. For example for
audio i
do
the usual pjsip thing, start the port range at 4000 and
with a
maximum
of 32 calls it'll go up to 4063. For the video i've got a
config
file
that pjsua_app.c reads at startup. In there i specify
port
video
should start at. And i usually put it at 6000. When the
application
runs it checks if those ports are free or not and starts
using
them.
This way my audio and video ports don't overlap.
When i create my SDP, and before i send the offer, the
initial
port
for video is the one that i specified in the video config
file.
After
having sent the offer and read the incoming remote_sdp,
what i
pass
to
VLC is just the port number to transmit to, IP address to
transmit
to,
transcoding codec, video bit rate and the mux type. I
it
to
the
commands buffer of VLC and use the functions
VLC_Init(int, int, char **s),
VLC_Play(int),VLC_FullScreen(int),
etc... So to answer your question no i don't let PJSIP
handle
the
video streams. I use PJSIP only for SDP negotiation
it.
I
leave
PJSIP to take care of all the audio streams and ports.
i
keep
the
video part to VLC, including its transport and everything
else.
PJSIP
doesn't touch that part.
I can see you're using H264. I am too. Did you ever have
two
incoming
H264 streams on your PC? How was your CPU usage?. When i
have
more
than one on my PC my CPU usage doesn't look too good..
Hubert
On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
muge.ersoy@gmail.com
wrote:
Hi Hubert;
Haven't you created another stream for video ?
As far as i understand after SDP negotiation you get if
there
is
video
stream or not...
This is my OK answer form pjsip to another sip client
m=audio 4000 RTP/AVP 3
a=rtpmap:3 GSM/8000
m=video 4002 RTP/AVP 98
a=rtpmap:98 H264/90000
a=recvonly
Everything seems pretty. But after streams are created
Pjsip
mixes
the
ports
with audio and video and it all crashes ...
How is your point of view to audio and video streams in
your
application.
Regards
Muge
On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
hubertlangevin@gmail.com
wrote:
Hello everyone,
I'm using VLC for video streaming in pjsip. I haven't
completely
finished it yet but i can now make some video calls
between
PCs.
In
the callback on_call_state() in pjsua_app.c when i get
an
incoming
call i check if it has video media. I do this by
grabbing
the
local_sdp and remote_sdp using call_id, acquire_call,
pjmedia_sdp_neg_get_active_local(),
pjmedia_sdp_neg_get_active_remote(), etc. I also had
change
a
few
things in negotiating SDP's. If i have video media i
just
grab
the
remote IP and port number out of the remote_sdp, put
these
values
in
the commands buffer for VLC and start playing from
remote
stream
and
streaming off my webcam using the VLC functions:
VLC_Create(),
VLC_Init(int, int, char **s), VLC_Play(int),
VLC_AddIntf(int,
char
*s,
int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
VLC_Pause(int),
VLC_Stop(int), VLC_FullScreen(int). It works fine but
soon
as
I
get
two video calls up on my PC my CPU usage jumps really
high
and
stays
there for the duration of the two calls. Is it because
I'm
using
the
wrong type of video codec? I'm currently using H264.
Any ideas would be greatly appreciated.
Hubert
On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
tiagores@gmail.com
wrote:
Hello all,
Thanks for your responses.
My Idea is to make some kind of videoconference. It
should
be
signaled
with
SIP, and stream via RTP.
I'm able to capture video using directshow
and
it
would
be
great
to use transport functions of PJSIP to do the rest.
What do you think?
Thanks,
Tiago
2008/10/9 P.Muge Ersoy muge.ersoy@gmail.com
Hi;
Did you able to start two way stream with 264 . I
have
some
port
issues
..
video stream is using audio streams port.. i will
handling
it
soon i
guess..
and what are you using for displaying stream , ?
or
ffmpeg
.?
muge
On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
perry@pjsip.org
wrote:
emanuele bottegoni wrote:
Hi Tiago,
I've added negotation to receive H264 streams,is
interesting
for
you?
Tell me your problem and if it's possible I can
help
you.
Emanuele Bottegoni
Hi Hubert;
Thank you for your email and support :)
It is really pain to compile on cygwin with h264 support.. Is it possible to
send me the dll if you dont mind ?
Thanks indeed
muge
On Sat, Oct 18, 2008 at 8:57 AM, Hubert Langevin
<hubertlangevin@gmail.com>wrote:
> Hi Muge,
>
> Unfortunately i didn't build vlc myself. The lib and dll was given to
> me. But have a look at those two links:
>
> http://www.slackware.com/~alien/slackbuilds/vlc/build/<http://www.slackware.com/%7Ealien/slackbuilds/vlc/build/>
> http://www.slackware.com/~alien/slackbuilds/vlc/build/vlc.SlackBuild<http://www.slackware.com/%7Ealien/slackbuilds/vlc/build/vlc.SlackBuild>
>
> The author did this impressive script that automatically builds VLC
> with most of the codecs you need. And i think he's got the latest VLC
> as well, version h or i. You run the script and after a few minutes
> it's done. You can tweak the script to do what you need it to do. That
> might help you. If you're strongly considering VLC you definitely
> should download the packages from the first link above and run the
> script vlc.Slackbuild.
>
> Best Regards,
>
> Hubert
>
> On Sat, Oct 18, 2008 at 4:22 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> wrote:
> > Hi Hubert;
> >
> > Did you compile vlc with h264 support by yourself ?
> >
> > It will be really helpfull if you check which vlc you installed for the
> > libvlc.dll for me ? :)
> >
> > Regards
> > Muge
> >
> > On Fri, Oct 17, 2008 at 2:55 AM, Hubert Langevin <
> hubertlangevin@gmail.com>
> > wrote:
> >>
> >> Hi Muge,
> >>
> >> So you can't stream H264. Hmmm not sure what's going on there. I think
> >> i had a similar problem and it had to do with what type of transport i
> >> was using and type of mux i was putting in the commands buffer. And
> >> also the video bit rate (vb=???). As i mentioned before i could stream
> >> to a softphone (Eyebeam) that was using H264 from pjsua/vlc. However i
> >> had to change my webcam and still my image on the remote softphone was
> >> pixelated. I was using a cheap (i mean really really cheap) webcam
> >> before and i had a problem transcoding the frames to H264. When i
> >> changed webcam to a more decent one things were slightly better. So it
> >> could be your webcam. However i have a strong feeling it's more to do
> >> with the version you're using, that is 8.6c.
> >>
> >> Also some videophones and soft IP PBXs have different payload types
> >> for video. You could check using Ethereal what payload type the
> >> softphone is using and expecting in return. Could be a
> >> mis-compatibility in payload types here and that's why it's not
> >> showing up on the other end. I'm just guessing here. I had a LOT of
> >> trouble getting video calls to work with different softphones out
> >> there and things tend to get complicated with incompatible payload
> >> types.
> >>
> >> I guess a way of testing if there's a problem with the dll or camera
> >> you're using would be to get your pjsua to negotiate SDP's with a
> >> softphone, in other words, establish a normal video call. BUT don't
> >> send your video from your pjsua/vlc yet, disable the video part or
> >> comment it out in your code. We just want the video SDP session up.
> >> Grab the remote ip and port of the softphone from the remote_sdp that
> >> it just sent you. Print it to screen or write it down. Get a pure H264
> >> video sample off google or anywhere. Open the latest and greatest VLC
> >> player and start streaming that pure H264 sample to the softphone
> >> using the options in the VLC player and the ip and port parameters
> >> from remote_sdp. See if the softphone can display that stream. The
> >> softphone should not care what application is sending the video stream
> >> to it. It's just expecting video media on that port it gave you. And
> >> you can check with Ethereal if the outgoing stream from the player is
> >> H264 and which transport it is using, and also the stream the
> >> softphone is sending you and what transport it's using. If the
> >> softphone can display that stream coming from your VLC player, even
> >> pixelated, it's possible that there's a problem with the dll you're
> >> using. I saw quotes from other people on forums saying they forgot to
> >> include some options like --enable-x264 etc... when building their
> >> vlc.
> >>
> >> By the way i just wanted to mention i remember i also tried a normal
> >> video call (to test compatibility in general between independent soft
> >> videophones) between an Eyebeam softphone and a WengoPhone softphone
> >> and i just could not get them to work together. I was using a
> >> relatively new version of WengoPhone and an old version of Eyebeam.
> >> Maybe it had to do with again the webcam i was using or software
> >> versions or something on my PC i'm not sure. I checked codecs,
> >> firewalls, devices used and everything else but i could only get
> >> WengoPhone <===> WengoPhone, Eyebeam <===> Eyebeam, and of course,
> >> pjsua/vlc <===> pjsua/vlc. The scenario of Eyebeam <===> WengoPhone
> >> just didn't work for me. I haven't tried scenario of WengoPhone <===>
> >> pjsua/vlc.
> >>
> >> To answer your questions yes i am using the libvlc.dll and the OLD
> >> API. I haven't moved to the new API. I think because i had the same
> >> problem as you, meaning i couldn't get it to work in Visual C. I'm
> >> sure the new API would have more enhancements but i'm not interested
> >> in that right now. I just wanted to get PJSIP to PJSIP videocalls
> >> working with the least amount of trouble. When i feel like playing
> >> with MingW again i will get started on the new VLC API.
> >>
> >> And regarding your sdp file at first glance it looks fine. Mine is
> >> very similar to yours. You can write all these parameters using
> >> virtually only local_sdp or remote_sdp. I can see you're using payload
> >> type 98. I know the RFC says something about payload type 100, 99 and
> >> 98. But what i had to make sure was along the path of the video call,
> >> all devices involved on the way, i mean the SIP registrar, your SIP
> >> user agent, and the remote softphone, actually agree on the payload
> >> types and that no one was silently complaining.
> >>
> >> Let me know how you go with your tests.
> >>
> >> Best Regards,
> >>
> >> Hubert
> >>
> >> On Fri, Oct 17, 2008 at 12:42 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> wrote:
> >> > Hi Hubert;
> >> >
> >> > I tried your method of grapping ports and ip address and it works
> fine.
> >> >
> >> > But when ever i start streaming i am not able to stream h264 .. it
> >> > captured
> >> > my outgoing packages and see that my stream is mpeg2 (Payload type:
> >> > MPEG-II
> >> > transport streams (33)) . So i am not able to see anything on the
> >> > softphone
> >> > .. But it is working fine between two pjsua client..
> >> >
> >> > I am sure you checked your stream if it is h264 didnt you ? May be
> 8.6c
> >> > is
> >> > not supporting h264 i am not so sure ..
> >> >
> >> > Btw Visual C example of vlc is not working on new API at all.. I tried
> >> > VLC
> >> > 9. 4 and VLC 8.6c .. Only 8.6c was worked with libvlc.dll export..
> >> >
> >> > Are you using dll too ?
> >> >
> >> > Also i d like to show my sdp file something like that ..
> >> >
> >> > v=0
> >> > o=- 597327894206 2 IN IP4 192.168.0.165
> >> > s=NONE
> >> > t=0 0
> >> > c=IN IP4 192.168.0.165
> >> > m=video 14444 RTP/AVP 98
> >> > b=AS:28
> >> > a=rtpmap:98 H264/90000
> >> >
> >> >
> >> >
> >> > Muge
> >> >
> >> >
> >> > On Thu, Oct 16, 2008 at 1:12 AM, Hubert Langevin
> >> > <hubertlangevin@gmail.com>
> >> > wrote:
> >> >>
> >> >> Hi Muge,
> >> >>
> >> >> Yes i think you're right. When i run pjsua i do load ALL the plugins
> >> >> for VLC from the plugins directory. Maybe i should remove what i
> don't
> >> >> need from there.
> >> >>
> >> >> Regarding your question about getting SDP information i do it in the
> >> >> callback on_call_state(pjsua_call_id call_id, pjsip_event *e). When
> >> >> SDP negotiation is finished and everyone is happy in terms of sdp
> >> >> parameters, and when the callback's event is CONFIRMED, i acquire the
> >> >> call using the call_id as in acquire_call("Something Something",
> >> >> call_id, &call, &dlg). I then grab the local and remote SDP's using:
> >> >>
> >> >> pjmedia_sdp_neg_get_active_local(call->inv->neg, &local_sdp);
> >> >> pjmedia_sdp_neg_get_active_remote(call->inv->neg, &remote_sdp);
> >> >>
> >> >> Once i get the two SDP's above, all i do is check for the video
> >> >> parameters. I think it's in remote_sdp->conn->addr and
> >> >> remote_sdp->media[i]->desc.port and remote_sdp->media[i]->desc.fmt[0]
> >> >> and so on and so forth. Just grab the things you think you might need
> >> >> from the remote SDP (and local SDP) for whichever player you are
> >> >> using. I'm using VLC so IP address, port and codec are the main
> things
> >> >> for me. I also do a LOT of checks but that's the above concept is
> >> >> mainly how i do it.
> >> >>
> >> >> Then you can write the video.sdp file. which you already how it looks
> >> >> like. Then you can proceed on how you want to implement your video
> >> >> handling from here. If you are using VLC there are a few ways to do
> >> >> that, you just need to pick the one you feel more comfortable with. I
> >> >> personally use the --extraintf and --vlm-conf method but that's just
> >> >> me.
> >> >>
> >> >> Hubert
> >> >>
> >> >> On Thu, Oct 16, 2008 at 2:18 AM, P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> wrote:
> >> >> > Hi Hubert;
> >> >> >
> >> >> > I tried your way of vlc video call.. I guess the problem at your
> cpu
> >> >> > is
> >> >> > because of loading to many dll ( vlc and plugins) during the call..
> >> >> > My computer was forced also..
> >> >> > I am using VStudio so i am using libvlc.dll... actually i ve tried
> to
> >> >> > make
> >> >> > .def filen and convert libvlc.lib but lib didnt work.. I guess it
> was
> >> >> > because new api of vlc..
> >> >> >
> >> >> > Did you code to get SDP information from pjsua_app.c or is there
> any
> >> >> > Pjsua
> >> >> > api to get active sdp information ?
> >> >> >
> >> >> > muge
> >> >> >
> >> >> >
> >> >> >
> >> >> > On Wed, Oct 15, 2008 at 2:07 AM, Hubert Langevin
> >> >> > <hubertlangevin@gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> Hi Muge,
> >> >> >>
> >> >> >> Yeah that's why i didn't follow that guide. It's got some good
> tips
> >> >> >> on
> >> >> >> which functions you use but the whole thing is a bit too confusing
> >> >> >> for
> >> >> >> me and just didn't work for me. I am using the old version of VLC,
> >> >> >> i'm
> >> >> >> not sure how to call it. It's at this link below. Again the old
> >> >> >> version is simple for what i want to accomplish.
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__old.html
> >> >> >>
> >> >> >> I was reading what you mentioned earlier, about the fact that you
> >> >> >> want
> >> >> >> video calls between pjsua to other software clients and soft
> phones/
> >> >> >> VoIP Phones. Can't you do that already using VLC both ways? I mean
> >> >> >> for
> >> >> >> video calls all you need is modify your outgoing SDP so it
> contains
> >> >> >> video media at a certain port that you specify at startup so the
> >> >> >> remote video phones can read it and you read their corresponding
> SDP
> >> >> >> and start one instance of VLC that reads and decodes at the same
> >> >> >> time.
> >> >> >> I do that using VLC_AddIntf() for multiple video streams incoming
> >> >> >> and
> >> >> >> outgoing. The audio is still handled by pjsip during that same sdp
> >> >> >> exchange and the video by vlc. For any re-invites, for example
> >> >> >> change
> >> >> >> of remote video port or remote video codec, just destroy the vlc
> >> >> >> instance in on_call_media() callback and re-create it using the
> new
> >> >> >> values from the re-invites. I mean it is still a video call that i
> >> >> >> make to other video phones. I did a test from my pjsua to an
> eyebeam
> >> >> >> (x-lite) video phone and everything was fine. Audio was fine and
> >> >> >> video
> >> >> >> was showing as well. Actually video was very pixelated, even
> though
> >> >> >> I
> >> >> >> did specify H264 from Eyebeam and pjsua. Maybe eyebeam and
> videolan
> >> >> >> have different implementations of H264 i'm not sure. But video
> calls
> >> >> >> between pjsua <===> pjsua works perfectly.
> >> >> >>
> >> >> >> And VLC does support SRTP from what i've seen. I'm using pjsua
> too.
> >> >> >> Are you using libvlc.lib and libvlc.dll?
> >> >> >>
> >> >> >> Hubert
> >> >> >>
> >> >> >> On Wed, Oct 15, 2008 at 9:36 AM, P.Muge Ersoy <
> muge.ersoy@gmail.com>
> >> >> >> wrote:
> >> >> >> > yeah i am not getting anything also..
> >> >> >> > may i ask which version of vlc you are using?
> >> >> >> >
> >> >> >> > I tried it but there are some errors like below
> >> >> >> > main interface error: no interface module matched "hotkeys,none"
> >> >> >> >
> >> >> >> > On Wed, Oct 15, 2008 at 1:04 AM, Hubert Langevin
> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> Hi Muge,
> >> >> >> >>
> >> >> >> >> Oh that tutorial. Yeah i started off that tutorial. My
> >> >> >> >> implementation
> >> >> >> >> of video is very very similar. I use the commands buffer,
> >> >> >> >> VLC_Create(), VLC_Init(), VLC_ADDINTF(), etc. But i found the
> >> >> >> >> guide
> >> >> >> >> a
> >> >> >> >> bit too complicated/confusing and overloaded for what i wanted
> to
> >> >> >> >> do.
> >> >> >> >> Especially his definitions in the vlc.h file. Don't need all
> >> >> >> >> that.
> >> >> >> >> What i do is just get the remote IP, port, codec from
> remote_sdp
> >> >> >> >> and
> >> >> >> >> use a couple of VLC functions to stream and decode. Done. That
> >> >> >> >> tutorial i found was too much for what i simply wanted to do.
> >> >> >> >> Plus,
> >> >> >> >> i
> >> >> >> >> was never good at spanish. ;)
> >> >> >> >>
> >> >> >> >> Hubert
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> On Wed, Oct 15, 2008 at 5:27 AM, P.Muge Ersoy
> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > Hi Hubert;
> >> >> >> >> >
> >> >> >> >> > I have a question for you ..
> >> >> >> >> >
> >> >> >> >> > Did you use the below tutorial for vlc display inside pjsip?
> >> >> >> >> > http://wiki.videolan.org/LibVLC_Visual_C
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > Muge
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > On Tue, Oct 14, 2008 at 12:51 AM, Hubert Langevin
> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> > wrote:
> >> >> >> >> >>
> >> >> >> >> >> Hello Muge,
> >> >> >> >> >>
> >> >> >> >> >> Yes my implementation sounds different. I guess i took the
> >> >> >> >> >> easiest
> >> >> >> >> >> and
> >> >> >> >> >> quickest way to get video working. I do write the file.sdp
> >> >> >> >> >> file
> >> >> >> >> >> just
> >> >> >> >> >> like you and get VLC to read and decode the sdp file, but i
> >> >> >> >> >> also
> >> >> >> >> >> use
> >> >> >> >> >> VLC to stream.
> >> >> >> >> >>
> >> >> >> >> >> To answer your question yes i did install Microsoft Platform
> >> >> >> >> >> SDK...
> >> >> >> >> >> Hmmm... i can't remember which version though.
> >> >> >> >> >>
> >> >> >> >> >> Quick question. Since you are already using VLC to decode,
> why
> >> >> >> >> >> not
> >> >> >> >> >> use
> >> >> >> >> >> it to stream as well? You won't have to take care of
> streams,
> >> >> >> >> >> ports,
> >> >> >> >> >> transports, etc... It might be easier for you. I mean you
> are
> >> >> >> >> >> already
> >> >> >> >> >> using VLC to decode, might as well use it to encode. Makes
> >> >> >> >> >> your
> >> >> >> >> >> life
> >> >> >> >> >> easier. Maybe i'm missing something that you want to
> >> >> >> >> >> accomplish.
> >> >> >> >> >>
> >> >> >> >> >> What do you think?
> >> >> >> >> >>
> >> >> >> >> >> Hubert
> >> >> >> >> >>
> >> >> >> >> >> On Tue, Oct 14, 2008 at 12:06 AM, P.Muge Ersoy
> >> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >> > Hi Hubert;
> >> >> >> >> >> >
> >> >> >> >> >> > Actually my implementation is quite different from yours.
> I
> >> >> >> >> >> > want
> >> >> >> >> >> > pjsip
> >> >> >> >> >> > to
> >> >> >> >> >> > stream h264 from one side to other.. You choose VLC to do
> >> >> >> >> >> > it..
> >> >> >> >> >> > I changed pjmedia_session_create and pjmedia_stream_create
> >> >> >> >> >> > functions
> >> >> >> >> >> > as
> >> >> >> >> >> > well
> >> >> >> >> >> > as SDP negotiation.
> >> >> >> >> >> >
> >> >> >> >> >> > I want vlc to decode this h264 stream with file.sdp which
> >> >> >> >> >> > includes
> >> >> >> >> >> > remote ip
> >> >> >> >> >> > and port information with codec.
> >> >> >> >> >> >
> >> >> >> >> >> > Did you install Microsoft Platform SDK for direct show
> >> >> >> >> >> > headers
> >> >> >> >> >> > ?
> >> >> >> >> >> >
> >> >> >> >> >> > Muge
> >> >> >> >> >> >
> >> >> >> >> >> > On Sat, Oct 11, 2008 at 8:53 AM, Hubert Langevin
> >> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> >> > wrote:
> >> >> >> >> >> >>
> >> >> >> >> >> >> Hi Mugo,
> >> >> >> >> >> >>
> >> >> >> >> >> >> No i don't create another stream for video. I just make
> >> >> >> >> >> >> sure
> >> >> >> >> >> >> the
> >> >> >> >> >> >> port
> >> >> >> >> >> >> ranges for audio and video don't overlap. For example for
> >> >> >> >> >> >> audio i
> >> >> >> >> >> >> do
> >> >> >> >> >> >> the usual pjsip thing, start the port range at 4000 and
> >> >> >> >> >> >> with a
> >> >> >> >> >> >> maximum
> >> >> >> >> >> >> of 32 calls it'll go up to 4063. For the video i've got a
> >> >> >> >> >> >> config
> >> >> >> >> >> >> file
> >> >> >> >> >> >> that pjsua_app.c reads at startup. In there i specify
> what
> >> >> >> >> >> >> port
> >> >> >> >> >> >> video
> >> >> >> >> >> >> should start at. And i usually put it at 6000. When the
> >> >> >> >> >> >> application
> >> >> >> >> >> >> runs it checks if those ports are free or not and starts
> >> >> >> >> >> >> using
> >> >> >> >> >> >> them.
> >> >> >> >> >> >> This way my audio and video ports don't overlap.
> >> >> >> >> >> >>
> >> >> >> >> >> >> When i create my SDP, and before i send the offer, the
> >> >> >> >> >> >> initial
> >> >> >> >> >> >> port
> >> >> >> >> >> >> for video is the one that i specified in the video config
> >> >> >> >> >> >> file.
> >> >> >> >> >> >> After
> >> >> >> >> >> >> having sent the offer and read the incoming remote_sdp,
> >> >> >> >> >> >> what i
> >> >> >> >> >> >> pass
> >> >> >> >> >> >> to
> >> >> >> >> >> >> VLC is just the port number to transmit to, IP address to
> >> >> >> >> >> >> transmit
> >> >> >> >> >> >> to,
> >> >> >> >> >> >> transcoding codec, video bit rate and the mux type. I
> pass
> >> >> >> >> >> >> it
> >> >> >> >> >> >> to
> >> >> >> >> >> >> the
> >> >> >> >> >> >> commands buffer of VLC and use the functions
> VLC_Create(),
> >> >> >> >> >> >> VLC_Init(int, int, char **s),
> >> >> >> >> >> >> VLC_Play(int),VLC_FullScreen(int),
> >> >> >> >> >> >> etc... So to answer your question no i don't let PJSIP
> >> >> >> >> >> >> handle
> >> >> >> >> >> >> the
> >> >> >> >> >> >> video streams. I use PJSIP only for SDP negotiation
> that's
> >> >> >> >> >> >> it.
> >> >> >> >> >> >> I
> >> >> >> >> >> >> leave
> >> >> >> >> >> >> PJSIP to take care of all the audio streams and ports.
> And
> >> >> >> >> >> >> i
> >> >> >> >> >> >> keep
> >> >> >> >> >> >> the
> >> >> >> >> >> >> video part to VLC, including its transport and everything
> >> >> >> >> >> >> else.
> >> >> >> >> >> >> PJSIP
> >> >> >> >> >> >> doesn't touch that part.
> >> >> >> >> >> >>
> >> >> >> >> >> >> I can see you're using H264. I am too. Did you ever have
> >> >> >> >> >> >> two
> >> >> >> >> >> >> incoming
> >> >> >> >> >> >> H264 streams on your PC? How was your CPU usage?. When i
> >> >> >> >> >> >> have
> >> >> >> >> >> >> more
> >> >> >> >> >> >> than one on my PC my CPU usage doesn't look too good..
> >> >> >> >> >> >>
> >> >> >> >> >> >> Hubert
> >> >> >> >> >> >>
> >> >> >> >> >> >> On Fri, Oct 10, 2008 at 7:26 PM, P.Muge Ersoy
> >> >> >> >> >> >> <muge.ersoy@gmail.com>
> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> > Hi Hubert;
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > Haven't you created another stream for video ?
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > As far as i understand after SDP negotiation you get if
> >> >> >> >> >> >> > there
> >> >> >> >> >> >> > is
> >> >> >> >> >> >> > video
> >> >> >> >> >> >> > stream or not...
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > This is my OK answer form pjsip to another sip client
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > m=audio 4000 RTP/AVP 3
> >> >> >> >> >> >> > a=rtpmap:3 GSM/8000
> >> >> >> >> >> >> > m=video 4002 RTP/AVP 98
> >> >> >> >> >> >> > a=rtpmap:98 H264/90000
> >> >> >> >> >> >> > a=recvonly
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > Everything seems pretty. But after streams are created
> >> >> >> >> >> >> > Pjsip
> >> >> >> >> >> >> > mixes
> >> >> >> >> >> >> > the
> >> >> >> >> >> >> > ports
> >> >> >> >> >> >> > with audio and video and it all crashes ...
> >> >> >> >> >> >> > How is your point of view to audio and video streams in
> >> >> >> >> >> >> > your
> >> >> >> >> >> >> > application.
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > Regards
> >> >> >> >> >> >> > Muge
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > On Fri, Oct 10, 2008 at 1:02 AM, Hubert Langevin
> >> >> >> >> >> >> > <hubertlangevin@gmail.com>
> >> >> >> >> >> >> > wrote:
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> Hello everyone,
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> I'm using VLC for video streaming in pjsip. I haven't
> >> >> >> >> >> >> >> completely
> >> >> >> >> >> >> >> finished it yet but i can now make some video calls
> >> >> >> >> >> >> >> between
> >> >> >> >> >> >> >> PCs.
> >> >> >> >> >> >> >> In
> >> >> >> >> >> >> >> the callback on_call_state() in pjsua_app.c when i get
> >> >> >> >> >> >> >> an
> >> >> >> >> >> >> >> incoming
> >> >> >> >> >> >> >> call i check if it has video media. I do this by
> >> >> >> >> >> >> >> grabbing
> >> >> >> >> >> >> >> the
> >> >> >> >> >> >> >> local_sdp and remote_sdp using call_id, acquire_call,
> >> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_local(),
> >> >> >> >> >> >> >> pjmedia_sdp_neg_get_active_remote(), etc. I also had
> to
> >> >> >> >> >> >> >> change
> >> >> >> >> >> >> >> a
> >> >> >> >> >> >> >> few
> >> >> >> >> >> >> >> things in negotiating SDP's. If i have video media i
> >> >> >> >> >> >> >> just
> >> >> >> >> >> >> >> grab
> >> >> >> >> >> >> >> the
> >> >> >> >> >> >> >> remote IP and port number out of the remote_sdp, put
> >> >> >> >> >> >> >> these
> >> >> >> >> >> >> >> values
> >> >> >> >> >> >> >> in
> >> >> >> >> >> >> >> the commands buffer for VLC and start playing from
> >> >> >> >> >> >> >> remote
> >> >> >> >> >> >> >> stream
> >> >> >> >> >> >> >> and
> >> >> >> >> >> >> >> streaming off my webcam using the VLC functions:
> >> >> >> >> >> >> >> VLC_Create(),
> >> >> >> >> >> >> >> VLC_Init(int, int, char **s), VLC_Play(int),
> >> >> >> >> >> >> >> VLC_AddIntf(int,
> >> >> >> >> >> >> >> char
> >> >> >> >> >> >> >> *s,
> >> >> >> >> >> >> >> int, int), VLC_Die(), VLC_CleanUp(), VLC_Destroy(),
> >> >> >> >> >> >> >> VLC_Pause(int),
> >> >> >> >> >> >> >> VLC_Stop(int), VLC_FullScreen(int). It works fine but
> as
> >> >> >> >> >> >> >> soon
> >> >> >> >> >> >> >> as
> >> >> >> >> >> >> >> I
> >> >> >> >> >> >> >> get
> >> >> >> >> >> >> >> two video calls up on my PC my CPU usage jumps really
> >> >> >> >> >> >> >> high
> >> >> >> >> >> >> >> and
> >> >> >> >> >> >> >> stays
> >> >> >> >> >> >> >> there for the duration of the two calls. Is it because
> >> >> >> >> >> >> >> I'm
> >> >> >> >> >> >> >> using
> >> >> >> >> >> >> >> the
> >> >> >> >> >> >> >> wrong type of video codec? I'm currently using H264.
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> Any ideas would be greatly appreciated.
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> Hubert
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> On Fri, Oct 10, 2008 at 4:39 AM, Tiago Rés
> >> >> >> >> >> >> >> <tiagores@gmail.com>
> >> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> >> > Hello all,
> >> >> >> >> >> >> >> > Thanks for your responses.
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> > My Idea is to make some kind of videoconference. It
> >> >> >> >> >> >> >> > should
> >> >> >> >> >> >> >> > be
> >> >> >> >> >> >> >> > signaled
> >> >> >> >> >> >> >> > with
> >> >> >> >> >> >> >> > SIP, and stream via RTP.
> >> >> >> >> >> >> >> > I'm able to capture video using directshow
> libraries,
> >> >> >> >> >> >> >> > and
> >> >> >> >> >> >> >> > it
> >> >> >> >> >> >> >> > would
> >> >> >> >> >> >> >> > be
> >> >> >> >> >> >> >> > great
> >> >> >> >> >> >> >> > to use transport functions of PJSIP to do the rest.
> >> >> >> >> >> >> >> > What do you think?
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> > Thanks,
> >> >> >> >> >> >> >> > Tiago
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> > 2008/10/9 P.Muge Ersoy <muge.ersoy@gmail.com>
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> Hi;
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> Did you able to start two way stream with 264 . I
> >> >> >> >> >> >> >> >> have
> >> >> >> >> >> >> >> >> some
> >> >> >> >> >> >> >> >> port
> >> >> >> >> >> >> >> >> issues
> >> >> >> >> >> >> >> >> ..
> >> >> >> >> >> >> >> >> video stream is using audio streams port.. i will
> be
> >> >> >> >> >> >> >> >> handling
> >> >> >> >> >> >> >> >> it
> >> >> >> >> >> >> >> >> soon i
> >> >> >> >> >> >> >> >> guess..
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> and what are you using for displaying stream , ?
> VLC
> >> >> >> >> >> >> >> >> or
> >> >> >> >> >> >> >> >> ffmpeg
> >> >> >> >> >> >> >> >> .?
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> muge
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> On Thu, Oct 9, 2008 at 4:27 PM, Perry Ismangil
> >> >> >> >> >> >> >> >> <perry@pjsip.org>
> >> >> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> emanuele bottegoni wrote:
> >> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >> >>>> Hi Tiago,
> >> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >> >>>> I've added negotation to receive H264 streams,is
> it
> >> >> >> >> >> >> >> >>>> interesting
> >> >> >> >> >> >> >> >>>> for
> >> >> >> >> >> >> >> >>>> you?
> >> >> >> >> >> >> >> >>>> Tell me your problem and if it's possible I can
> >> >> >> >> >> >> >> >>>> help
> >> >> >> >> >> >> >> >>>> you.
> >> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >> >>>> Emanuele Bottegoni
> >> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >> >>>>
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> Hi Emanuele,
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> Certainly, adding video support is always
> >> >> >> >> >> >> >> >>> interesting.
> >> >> >> >> >> >> >> >>> Contact
> >> >> >> >> >> >> >> >>> me
> >> >> >> >> >> >> >> >>> if
> >> >> >> >> >> >> >> >>> you
> >> >> >> >> >> >> >> >>> are willing to write a wiki page or a blog post
> >> >> >> >> >> >> >> >>> about
> >> >> >> >> >> >> >> >>> it.
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> Thank you for your support,
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> --
> >> >> >> >> >> >> >> >>> Perry Ismangil
> >> >> >> >> >> >> >> >>> http://www.pjsip.org
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> _______________________________________________
> >> >> >> >> >> >> >> >>> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>> pjsip mailing list
> >> >> >> >> >> >> >> >>> pjsip@lists.pjsip.org
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >> >>>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >> >
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >>
> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> > pjsip mailing list
> >> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >>
> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >> >>
> >> >> >> >> >> pjsip mailing list
> >> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> >>
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > _______________________________________________
> >> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >> >
> >> >> >> >> > pjsip mailing list
> >> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> >> >
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >> _______________________________________________
> >> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >> >>
> >> >> >> >> pjsip mailing list
> >> >> >> >> pjsip@lists.pjsip.org
> >> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >> >
> >> >> >> > pjsip mailing list
> >> >> >> > pjsip@lists.pjsip.org
> >> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> Visit our blog: http://blog.pjsip.org
> >> >> >>
> >> >> >> pjsip mailing list
> >> >> >> pjsip@lists.pjsip.org
> >> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > Visit our blog: http://blog.pjsip.org
> >> >> >
> >> >> > pjsip mailing list
> >> >> > pjsip@lists.pjsip.org
> >> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >> >
> >> >> >
> >> >>
> >> >> _______________________________________________
> >> >> Visit our blog: http://blog.pjsip.org
> >> >>
> >> >> pjsip mailing list
> >> >> pjsip@lists.pjsip.org
> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >> > _______________________________________________
> >> > Visit our blog: http://blog.pjsip.org
> >> >
> >> > pjsip mailing list
> >> > pjsip@lists.pjsip.org
> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >> >
> >> >
> >>
> >> _______________________________________________
> >> Visit our blog: http://blog.pjsip.org
> >>
> >> pjsip mailing list
> >> pjsip@lists.pjsip.org
> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
> > _______________________________________________
> > Visit our blog: http://blog.pjsip.org
> >
> > pjsip mailing list
> > pjsip@lists.pjsip.org
> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
YA
Youssef AZZOUZI
Wed, Sep 16, 2009 9:44 AM
Hi,
I am trying to do stream my camera with vlc, can I know please which libreries
are you using for this?
I used libvlc_vlm.h to stream my disktop and some videos but not yet my camera
Can you help please?
Hi,
I am trying to do stream my camera with vlc, can I know please which libreries
are you using for this?
I used libvlc_vlm.h to stream my disktop and some videos but not yet my camera
Can you help please?