[Asterisk-video] Videomixing in MeetMe

Lorenzo Miniero lorenzo.miniero at unina.it
Fri Jun 15 07:57:45 CDT 2007


PS: if it can be of help, these are the settings I configured FFmpeg 
with, and which surely work:

FFmpeg version SVN-r8380, Copyright (c) 2000-2007 Fabrice Bellard, et al.
   configuration: --prefix=/usr --enable-libfaac --enable-libgsm 
--enable-libmp3lame --enable-xvid --enable-x264 --enable-libogg 
--enable-libvorbis --enable-libtheora --enable-gpl --enable-shared 
--enable-libfaad --enable-swscaler --cross-prefix=/usr/bin/
   libavutil version: 49.4.0
   libavcodec version: 51.40.4
   libavformat version: 51.12.1
   built on May 29 2007 10:54:40, gcc: 4.1.1 20070105 (Red Hat 4.1.1-51)

Cheers,
Lorenzo


Klaus Darilion ha scritto:
> Hi Lorenzo!
> 
> Now with ortp 0.13.1 and adding -lavutil:
> 
> darilion at samuel:/export/darilion/confiance/confiance_videomixer-0.1$ make
> gcc  -ggdb -o cvm.o -c cvm.c -Wall -Wstrict-prototypes 
> -Wmissing-prototypes -Wmissing-declarations -O2
> gcc  -ggdb -o cvm_protocol.o -c cvm_protocol.c -Wall -Wstrict-prototypes 
> -Wmissing-prototypes -Wmissing-declarations -O2
> gcc  -ggdb -o cvm_session.o -c cvm_session.c -Wall -Wstrict-prototypes 
> -Wmissing-prototypes -Wmissing-declarations -O2
> gcc  -ggdb -o confiance_vm cvm.o cvm_protocol.o cvm_session.o -Wall 
> -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -O2 
> -lortp -lavcodec -lavformat -lavutil -lpthread
> /usr/local/lib/libavformat.a(utils.o)(.text+0x2947): In function 
> `av_find_stream_info':
> /export/darilion/confiance/ffmpeg/libavformat/utils.c:1908: undefined 
> reference to `avcodec_pix_fmt_to_codec_tag'
> /usr/local/lib/libavformat.a(allformats.o)(.text+0x21): In function 
> `av_register_all':
> /export/darilion/confiance/ffmpeg/libavformat/allformats.c:47: undefined 
> reference to `avcodec_register_all'
> /usr/local/lib/libavformat.a(raw.o)(.text+0xb3c): In function `ac3_probe':
> /export/darilion/confiance/ffmpeg/libavformat/raw.c:435: undefined 
> reference to `ff_ac3_parse_header'
> /usr/local/lib/libavformat.a(mov.o)(.text+0x213b): In function 
> `mov_read_cmov':
> /export/darilion/confiance/ffmpeg/libavformat/mov.c:1136: undefined 
> reference to `uncompress'
> /usr/local/lib/libavformat.a(mp3.o)(.text+0x92): In function 
> `mp3_read_probe':
> /export/darilion/confiance/ffmpeg/libavformat/mp3.c:410: undefined 
> reference to `ff_mpa_decode_header'
> collect2: ld returned 1 exit status
> 
> 
> I tried to change the order of the ffmpeg libraries during linking, but 
> then other errors occour.
> 
> 
> regards
> kalus
> 
> Lorenzo Miniero wrote:
>> Hi Klaus,
>>
>> first of all thanks for giving the videomixer a try!
>>
>> libortp4 must be really updated, since the latest version of oRTP is 
>> 0.13.1, which is the one I'm using. In case you don't find a deb 
>> package, you can get the source here:
>>
>> 	http://download.savannah.nongnu.org/releases/linphone/ortp/sources/
>>
>> About FFmpeg, the LIBS variable is probably missing a -lavutil. Try 
>> adding it after -lavformat. Let me know if it fixes the problem and I'll 
>> correct it in the package too.
>>
>> Cheers,
>> Lorenzo
>>
>>
>> Klaus Darilion ha scritto:
>>> Hi Lorenzo!
>>>
>>> I have problems when linking the videomixer:
>>>
>>> cvm_session.o(.text+0x93b): In function `cvm_peer_new':
>>> /export/darilion/confiance/confiance_videomixer-0.1/cvm_session.c:315: 
>>> undefined reference to `rtp_session_set_connected_mode'
>>> /usr/local/lib/libavformat.a(utils.o)(.text+0x2947): In function 
>>> `av_find_stream_info':
>>> /export/darilion/confiance/confiance_videomixer-0.1/ffmpeg/libavformat/utils.c:1908: 
>>> undefined reference to `avcodec_pix_fmt_to_codec_tag'
>>> /usr/local/lib/libavformat.a(allformats.o)(.text+0x21): In function 
>>> `av_register_all':
>>>
>>> I use libort4 (from backports.org for debian woody) and
>>> ffmpeg self-installed from todays SVN trunk.
>>>
>>> Which version of ortp do you use.
>>>
>>> regards
>>> klaus
>>>
>>>
>>>
>>> Lorenzo Miniero wrote:
>>>> Klaus Darilion ha scritto:
>>>>> Hi Lorenzo!
>>>>>
>>>>> How can the VideoMixer be used with Asterisk?
>>>>>
>>>>> regards
>>>>> klaus
>>>> Hi Klaus,
>>>>
>>>> both the videomixers are external elements, which receive commands 
>>>> through dedicated protocols. The patch which you can get on 
>>>> http://confiance.sf.net/ enables MeetMe to talk this protocols, and to 
>>>> bridge the video RTP connections between the users and the active 
>>>> videomixer.
>>>>
>>>> Regards,
>>>> Lorenzo
>>>>
>>>>
>>>>> Lorenzo Miniero wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I just uploaded on the CONFIANCE webpage, http://confiance.sf.net/, 
>>>>>> the patch to enable videomixing and continuous presence in MeetMe. 
>>>>>> The patch enables such functionality both for our enhanced MeetMe 
>>>>>> (i.e. video sources are enabled/disabled through BFCP moderation) and 
>>>>>> for basic MeetMe rooms (the videoswitch console command I uploaded 
>>>>>> some time ago is used to enable/disable video sources). All the 
>>>>>> instructions needed to build and configure it are attached with the 
>>>>>> patch.
>>>>>>
>>>>>> To provide such a feature MeetMe can make use of two videomixers:
>>>>>>
>>>>>>     * the CONFIANCE VideoMixer we're writing (available on 
>>>>>> http://confiance.sf.net/);
>>>>>>     * the VideoMixer Sergio Garcia Murillo is writing (available via 
>>>>>> svn, svn co http://sip.fontventa.com/svn/mcu, needs xmlrpc-c 1.1).
>>>>>>
>>>>>> You can choose which one to use by setting a value in the 
>>>>>> configuration file. You can even disable them both and still rely on 
>>>>>> basic videoswitching, if you're not interested in videomixing...
>>>>>>
>>>>>> All is work in progress, so both Sergio and I would really appreciate 
>>>>>> any kind of feedback you'll be able to provide us.
>>>>>>
>>>>>> I'll spend two words on my work, and I'll let Sergio speak of his own 
>>>>>> since I couldn't do it better than him. The CONFIANCE VideoMixer 
>>>>>> currently provides:
>>>>>>
>>>>>>     * adaptive layouts according to how many active video sources are 
>>>>>> feeding the mix;
>>>>>>     * continuous presence for up to 8 users (this can be easily 
>>>>>> enhanced by adding new layouts in the code; if you look at the code, 
>>>>>> you'll see that creating and modifying layouts is really simple);
>>>>>>     * a static logo when no video sources are active;
>>>>>>     * support for H.261, H.263 and H.263+ (QCIF only for the moment).
>>>>>>
>>>>>> Currently, only one global layout is available for all users in the 
>>>>>> same conference, but this will be changed in the future.
>>>>>>
>>>>>> We tested it with many softphones, as:
>>>>>>
>>>>>>     * Minisip, one the softphone we're enhancing to add XCON support, 
>>>>>> and which makes use of H.263+ as codec;
>>>>>>     * another custom client we're writing, making use of H.263 (JMF);
>>>>>>     * X-Lite 3.0, H.263;
>>>>>>     * Ekiga stable 2.0.x (H.261).
>>>>>>
>>>>>> All work quite fine except Ekiga, since H.261 support in our 
>>>>>> videomixer is still quite buggy (probaby related to how we handle the 
>>>>>> H,261 payload header), and sometimes makes Ekiga crash. Any feedback 
>>>>>> upon this will be more than welcome!
>>>>>>
>>>>>>
>>>>>> If you're interested in knowing something more about the 
>>>>>> implementation details and/or how the videomixers have been 
>>>>>> integrated in MeetMe, feel absolutely free to ask.
>>>>>>
>>>>>>
>>>>>> Hope to hear you soon, regards,
>>>>>> Lorenzo
>>>>>>
>>>>> _______________________________________________
>>>>> --Bandwidth and Colocation provided by Easynews.com --
>>>>>
>>>>> asterisk-video mailing list
>>>>> To UNSUBSCRIBE or update options visit:
>>>>>   http://lists.digium.com/mailman/listinfo/asterisk-video
>>>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation provided by Easynews.com --
>>>
>>> asterisk-video mailing list
>>> To UNSUBSCRIBE or update options visit:
>>>    http://lists.digium.com/mailman/listinfo/asterisk-video
>>>
>>
> 
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
> 
> asterisk-video mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-video
> 


-- 
Lorenzo Miniero, Junior Researcher
Dipartimento di Informatica e Sistemistica
Università degli Studi di Napoli "Federico II"
Via Claudio 21 -- 80125 Napoli (Italy)
Phone: +390817683821 - Fax: +390817683816
Email: lorenzo.miniero at unina.it



More information about the asterisk-video mailing list