Java Media Framework - Transmiting live captured with JMF

Hello I'm new here.I need some help how do i transmit live video from my webcam over a lan?

I try this but it doesn't work can someone helpe me , i really need this to my project .

Thank you.

david.pinto.araujo@gmail.com

mport java.io.*;

import java.util.*;

import javax.media.*;

import javax.media.protocol.*;

import javax.media.format.*;

import javax.media.control.*;

import javax.media.datasink.*;

import jmapps.util.StateHelper;

publicclass SendVideoCaptureV1{

private CaptureDeviceInfo di=null;

private Processor p=null;

private TrackControl track[]=null;

privateboolean encodingOk=false;

private DataSource ds=null;

privatestaticfinal ContentDescriptor ct=new ContentDescriptor(ContentDescriptor.RAW_RTP);

privatestaticfinal Format[] fr=new Format []{

new VideoFormat(VideoFormat.RGB)

};

StateHelper sh=null;

public SendVideoCaptureV1(){

VideoFormat format =new VideoFormat(VideoFormat.RGB);

//AudioFormat format = new AudioFormat(AudioFormat.LINEAR);

//detecta todos os dispositvos de video q suportam RGB

Vector devices=CaptureDeviceManager.getDeviceList(format);

//System.out.println(devices.toString());

if(devices.size()>0){

di=(CaptureDeviceInfo)devices.elementAt(0);

}

else{

System.exit(-1);

}

//criar o processor

try{

p=Manager.createProcessor(di.getLocator());

sh=new StateHelper(p);

//p=Manager.createRealizedProcessor(new ProcessorModel(ds,fr,ct));

}

catch(IOException io){

io.printStackTrace();

}

catch(NoProcessorException pe){

pe.printStackTrace();

}

//configurar o processor

//p.configure();

//bloquear ate estar configurado

if(!sh.configure(10000))System.exit(-1);

p.setContentDescriptor(new ContentDescriptor(ContentDescriptor.RAW));

track=p.getTrackControls();

for(int i=0;i<track.length;i++){

if(!encodingOk && track<i>instanceof FormatControl){

if(((FormatControl)track<i>).setFormat(new VideoFormat(VideoFormat.JPEG_RTP))==null){

//if(((FormatControl)track<i>).setFormat(new AudioFormat(AudioFormat.GSM_RTP))==null){

track<i>.setEnabled(false);

}

else{

encodingOk=true;

}

}

else{

track<i>.setEnabled(false);

}

}

//ds=p.getDataOutput();

if(encodingOk){

if(!sh.realize(10000))System.exit(-1);

//p.realize();

try{

ds=p.getDataOutput();

}

catch(NotRealizedError ne){

ne.printStackTrace();

System.exit(-1);

}

try{

//String url="vfw://0 192.168.1.255:40000/video/1";

String url="rtp://192.168.1.255:40000/audio/1";

MediaLocator m=new MediaLocator(url);

DataSink d=Manager.createDataSink(ds, m);

d.open();

d.start();

}

catch(Exception ex){

ex.printStackTrace();

}

}

}

publicstaticvoid main(String []args){

SendVideoCaptureV1 sv=new SendVideoCaptureV1();

}

}

[6784 byte] By [pintoia] at [2007-11-26 23:13:07]
# 1
i dont understand.. you've just created a processor for motion jpeg over rtp, but your medialocator url is for audio (String url="rtp://192.168.1.255:40000/audio/1"; ) how come?
andreyvka at 2007-7-10 14:11:08 > top of Java-index,Security,Cryptography...