[jitsi-dev] video implemtation details


#1

Hi all,
we are planning to develop a SIP conferencing client with video support at our department. One of the main goals is to run the client as an applet directly from web browser without any further installation. I have read a lot of Java Media Framework and also got to know that it has been abandonned by Sun for five years and using it from applets is rather difficult since it requires installation. So that's not an option.
I came across the Jitsi project when doing some research of libraries that can be used for our purpose. I noticed at lot of posts about FMJ project and I guess that this is the one you currently use as the RTP stack and other media related staff. However, I am still not sure about this. I also understood that you used to use the LTI-CIVIL library for capturing video from webcam, but you have your own implementation of wrappers for the native libraries (directshow, quicktime and video4linux) now.
I would like to ask you whether you could shed some light on these issues for me. I am specifically interested in the way how you capture video from webcam from Java and how do you perform transcoding to other formats and streaming. What libraries (either native or java) do you use? Do you think that it is feasible to use the same approach as you do in an applet?
Thank you in advance.
I am looking forward to hearing from you soon.
Best regards

···

--
Ing. Martin Zukal
E-mail: martin.zukal@phd.feec.vutbr.cz

Brno University of Technology
Faculty of Electrical Engineering and Communication
Department of Telecommunications
Purkynova 118
612 00 Brno
Czech Republic


#2

Hi, Marin.

I came across the Jitsi project when doing some research of libraries that can be used for our purpose. I noticed at lot of posts about FMJ project and I guess that this is the one you currently use as the RTP stack and other media related staff. However, I am still not sure about this.

Yes, we use FMJ for media-related functionality including RTP.

I also understood that you used to use the LTI-CIVIL library for capturing video from webcam, but you have your own implementation of wrappers for the native libraries (directshow, quicktime and video4linux) now.

Yes, we used LTI-CIVIL for video capture before but we replaced it with our own more performant OS-specific implementations.

I would like to ask you whether you could shed some light on these issues for me. I am specifically interested in the way how you capture video from webcam from Java

As you've correctly observed, we've implemented OS-specific FMJ plug-ins for video capture: DirectShow on Windows, QuickTime on Mac OS X and Video4Linux2 on GNU/Linux. The Java code pretty much resides in src/net/java/sip/communicator/impl/neomedia/jmfext/media/protocol/ and the native counterparts are available in src/native/.

and how do you perform transcoding to other formats

We use FMJ as the media framework to drive the transcoding, of course. Then we mostly use our own FMJ plug-ins for the codecs Jitsi supports. The Java code is available in src/net/java/sip/communicator/impl/neomedia/codec/ and the respective native code (if any) is in src/native/.

and streaming. What libraries (either native or java) do you use?

We have both pure Java and JNI codecs. Please consult the code of the codecs in question for its dependencies. The native code in src/native/ usually has a README and/or a Makefile which gives specifics with respect to the library dependancies.

Do you think that it is feasible to use the same approach as you do in an applet?

I think I remember discussions on this dev mailing list related to deploying Jitsi as an applet so you may want to consult the archive at http://java.net/nonav/projects/jitsi/lists/dev/archive.

Regards,
Lyubomir

···

On 16.02.2012, at 16:31, Martin Zukal wrote: