Add video

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Muge,

Is it possible to share the new functions you changed?
(pjmedia_session_create and pjmedia_stream_create)
What's the SDK you use to capture video?

Thanks!
Tiago

2008/10/13 P.Muge Ersoy <muge.ersoy at gmail.com>

> 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 at 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 at 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 at 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 at 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 at 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 at 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 at lists.pjsip.org
>> >> >>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> Visit our blog: http://blog.pjsip.org
>> >> >>
>> >> >> pjsip mailing list
>> >> >> pjsip at lists.pjsip.org
>> >> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >>
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Visit our blog: http://blog.pjsip.org
>> >> >
>> >> > pjsip mailing list
>> >> > pjsip at lists.pjsip.org
>> >> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >> >
>> >> >
>> >>
>> >> _______________________________________________
>> >> Visit our blog: http://blog.pjsip.org
>> >>
>> >> pjsip mailing list
>> >> pjsip at lists.pjsip.org
>> >> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>> > _______________________________________________
>> > Visit our blog: http://blog.pjsip.org
>> >
>> > pjsip mailing list
>> > pjsip at lists.pjsip.org
>> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>> >
>> >
>>
>> _______________________________________________
>> Visit our blog: http://blog.pjsip.org
>>
>> pjsip mailing list
>> pjsip at lists.pjsip.org
>> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20081013/6eb04a15/attachment.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux