JMF how to??

how can i add jmf api to my package .. i downloaded and installed jmf-2_1_1e-scsl-bin.zip
after installation whenever i try to import it "import javax.media.*;" an error message occurs telling me that this package does not exist ...???
can anyone tell me how to be able to import it so that i can do like voice chatting and video conferencing program
thanks in advance,
sincerely
mohamed gouda

Look at adding it to your classpath

Similar Messages

  • Basic things in JMF(How to start?)

    Hello Friends
    I m new to this JMF
    n trying to explore this topic from long time.
    also i hv read many post in this topic.
    But havent got any basic rules to run jmf programs.
    please help me
    I m doing 1 project which requires to transfer audio to many participants.
    How can that be done.
    Please help me.

    Hi Sheryl,
    We have had numerous problems with our OS Collector for the last several years too.  I have a few steps that I follow to start the OS Collector when our collector fails.
    1 - Make sure saposcol is using the latest patch from service.sap.com.
    2 - Sign on to system as <SID>OFR and run the following commands.
    CALL PGM(SAPOSCOL) PARM('-d')  
         Brings up the saposcol program in a dialog mode for commands to be keyed
    key in the following in the saposcol dialog:  clean
         Cleans shared memory
    key in the following:  quit
    Stop the OS collector with the following command:
    CALL PGM(SAPOSCOL) PARM('-k')  
    key in the following in the saposcol dialog:  leave
         a message "shared memory deleted" or "shared memory not attached" should be displayed
    key in the following:  quit
    Change directory to /usr/sap/tmp and rename file coll.put (rename to coll.put.old)
    Try to start the OS Collector from ST06.  Wait about 5 minutes and refresh statistics.
    3 - Open a customer message with SAP.  SAP has been very helpful with our saposcol restarts.
    Hope this helps!
    Traci

  • JMF - how to detect second webcamera

    Hi
    I am trying to modify single web cam capturing screen code into multiple web cam screen capturing. The method autoDetect() recognizes the web camera. I want to choose web cam by myself. I tried all devInfo from the list but it resulted no success. Always the first camera is selected . I use different cameras (Logitech and Genius). Please, how to detect both camera to work at the same time.
    public CaptureDeviceInfo autoDetect ( )
            Vector list = CaptureDeviceManager.getDeviceList (null);
            CaptureDeviceInfo devInfo = null;
                if ( list != null )
                String name;
                for ( int i=0; i<list.size(); i++ )
                    devInfo = (CaptureDeviceInfo)list.elementAt ( i );
                    name = devInfo.getName();
                   if ( name.startsWith ("vfw:") )
                                     break;
    The whole code is on: JWebCam

    I tried getting the device list on my system but the following code is not returning any devices (deviicelist is empty) ? When I look at my Device Manager on Windows7 machine, I see there is 'High Definition audio device' . Does anyone have a clue why/when would this happen ?
    I have jmf installed and it is in the classpath. I also have jmf.jar, sound.jar added to my project.
    CaptureDCaptureDeviceInfo di = null;
    Vector deviceList = CaptureDeviceManager.getDeviceList(
                        null);
              if (deviceList.isEmpty())
                   System.out.println("No Devices found");
              if ( deviceList.size() > 0 )
              di = (CaptureDeviceInfo)deviceList.firstElement();
              System.out.println("di::" + di.getName());

  • JMF How to stream rtp from udp packet

    I implemented an rtsp client and use the client to setup two rtp session(audio, vedio). But when I use the example pramgram "AVReceive3" to stream the udp packet, it doesn't work.
    When the AVReceive3 receive the udp packet from the rtp port, it will call the update(ReceiveStreamEvent evt) function, and the event type is StreamMappedEvent, and the call to evt.getReceiveStream().getDataSource() return null.
    I thought the first event should be NewReceiveStreamEvent. Please help to solve the problem.
    What's rtp packet will cause the event StreamMappedEvent.
    Following is the code of AVReceive3.java:
    * AVReceive3.java
    * Created on 2007&#24180;10&#26376;30&#26085;, &#19979;&#21320;4:11
    * To change this template, choose Tools | Template Manager
    * and open the template in the editor.
    package PlayerTest;
    import java.io.*;
    import java.awt.*;
    import java.net.*;
    import java.awt.event.*;
    import java.util.Vector;
    import javax.media.*;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.media.format.AudioFormat;
    import javax.media.format.VideoFormat;
    import javax.media.Format;
    import javax.media.format.FormatChangeEvent;
    import javax.media.control.BufferControl;
    * AVReceive3 to receive RTP transmission using the RTPConnector.
    public class AVReceive3 extends Thread implements ReceiveStreamListener, SessionListener,
    ControllerListener
    String sessions[] = null;
    RTPManager mgrs[] = null;
    Vector playerWindows = null;
    boolean dataReceived = false;
    Object dataSync = new Object();
    public AVReceive3(String sessions[])
    this.sessions = sessions;
    public void run()
    initialize();
    public boolean initialize() {
    try {
    mgrs = new RTPManager[sessions.length];
    playerWindows = new Vector();
    SessionLabel session;
    // Open the RTP sessions.
    for (int i = 0; i < sessions.length; i++) {
    // Parse the session addresses.
    try {
    session = new SessionLabel(sessions);
    } catch (IllegalArgumentException e) {
    System.err.println("Failed to parse the session address given: " + sessions[i]);
    return false;
    System.err.println(" - Open RTP session for: addr: " + session.addr + " port: " + session.port + " ttl: " + session.ttl);
    mgrs[i] = (RTPManager) RTPManager.newInstance();
    mgrs[i].addSessionListener(this);
    mgrs[i].addReceiveStreamListener(this);
    // Initialize the RTPManager with the RTPSocketAdapter
    mgrs[i].initialize(new RTPSocketAdapter(
    InetAddress.getByName(session.addr),
    session.port, session.ttl));
    // You can try out some other buffer size to see
    // if you can get better smoothness.
    BufferControl bc = (BufferControl)mgrs[i].getControl("javax.media.control.BufferControl");
    if (bc != null)
    bc.setBufferLength(350);
    } catch (Exception e){
    System.err.println("Cannot create the RTP Session: " + e.getMessage());
    return false;
    // Wait for data to arrive before moving on.
    long then = System.currentTimeMillis();
    long waitingPeriod = 30000; // wait for a maximum of 30 secs.
    try{
    synchronized (dataSync) {
    while (!dataReceived &&
    System.currentTimeMillis() - then < waitingPeriod) {
    if (!dataReceived)
    System.err.println(" - Waiting for RTP data to arrive");
    dataSync.wait(1000);
    } catch (Exception e) {}
    if (!dataReceived) {
    System.err.println("No RTP data was received.");
    close();
    return false;
    return true;
    public boolean isDone() {
    return playerWindows.size() == 0;
    * Close the players and the session managers.
    protected void close() {
    for (int i = 0; i < playerWindows.size(); i++) {
    try {
    ((PlayerWindow)playerWindows.elementAt(i)).close();
    } catch (Exception e) {}
    playerWindows.removeAllElements();
    // close the RTP session.
    for (int i = 0; i < mgrs.length; i++) {
    if (mgrs[i] != null) {
    mgrs[i].removeTargets( "Closing session from AVReceive3");
    mgrs[i].dispose();
    mgrs[i] = null;
    PlayerWindow find(Player p) {
    for (int i = 0; i < playerWindows.size(); i++) {
    PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
    if (pw.player == p)
    return pw;
    return null;
    PlayerWindow find(ReceiveStream strm) {
    for (int i = 0; i < playerWindows.size(); i++) {
    PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
    if (pw.stream == strm)
    return pw;
    return null;
    * SessionListener.
    public synchronized void update(SessionEvent evt) {
    if (evt instanceof NewParticipantEvent) {
    Participant p = ((NewParticipantEvent)evt).getParticipant();
    System.err.println(" - A new participant had just joined: " + p.getCNAME());
    * ReceiveStreamListener
    public synchronized void update( ReceiveStreamEvent evt) {
    System.out.println("\nReceive an receiveStreamEvent:"+evt.toString());
    RTPManager mgr = (RTPManager)evt.getSource();
    Participant participant = evt.getParticipant(); // could be null.
    ReceiveStream stream = evt.getReceiveStream(); // could be null.
    System.out.println("The RTPManager is:");
    if (evt instanceof RemotePayloadChangeEvent) {
    System.err.println(" - Received an RTP PayloadChangeEvent.");
    System.err.println("Sorry, cannot handle payload change.");
    System.exit(0);
    else if (evt instanceof NewReceiveStreamEvent) {
    try {
    stream = ((NewReceiveStreamEvent)evt).getReceiveStream();
    DataSource ds = stream.getDataSource();
    // Find out the formats.
    RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
    if (ctl != null){
    System.err.println(" - Recevied new RTP stream: " + ctl.getFormat());
    } else
    System.err.println(" - Recevied new RTP stream");
    if (participant == null)
    System.err.println(" The sender of this stream had yet to be identified.");
    else {
    System.err.println(" The stream comes from: " + participant.getCNAME());
    // create a player by passing datasource to the Media Manager
    Player p = javax.media.Manager.createPlayer(ds);
    if (p == null)
    return;
    p.addControllerListener(this);
    p.realize();
    PlayerWindow pw = new PlayerWindow(p, stream);
    playerWindows.addElement(pw);
    pw.setVisible(true);
    // Notify intialize() that a new stream had arrived.
    synchronized (dataSync) {
    dataReceived = true;
    dataSync.notifyAll();
    } catch (Exception e) {
    System.err.println("NewReceiveStreamEvent exception " + e.getMessage());
    return;
    else if (evt instanceof StreamMappedEvent) {
    if (stream != null)
    if(stream.getDataSource()!=null)
    DataSource ds = stream.getDataSource();
    // Find out the formats.
    RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
    System.err.println(" - The previously unidentified stream ");
    if (ctl != null)
    System.err.println(" " + ctl.getFormat());
    System.err.println(" had now been identified as sent by: " + participant.getCNAME());
    else if (evt instanceof ByeEvent) {
    System.err.println(" - Got \"bye\" from: " + participant.getCNAME());
    PlayerWindow pw = find(stream);
    if (pw != null) {
    pw.close();
    playerWindows.removeElement(pw);
    * ControllerListener for the Players.
    public synchronized void controllerUpdate(ControllerEvent ce) {
    Player p = (Player)ce.getSourceController();
    if (p == null)
    return;
    // Get this when the internal players are realized.
    if (ce instanceof RealizeCompleteEvent) {
    PlayerWindow pw = find(p);
    if (pw == null) {
    // Some strange happened.
    System.err.println("Internal error!");
    System.exit(-1);
    pw.initialize();
    pw.setVisible(true);
    p.start();
    if (ce instanceof ControllerErrorEvent) {
    p.removeControllerListener(this);
    PlayerWindow pw = find(p);
    if (pw != null) {
    pw.close();
    playerWindows.removeElement(pw);
    System.err.println("AVReceive3 internal error: " + ce);
    * A utility class to parse the session addresses.
    class SessionLabel {
    public String addr = null;
    public int port;
    public int ttl = 1;
    SessionLabel(String session) throws IllegalArgumentException {
    int off;
    String portStr = null, ttlStr = null;
    if (session != null && session.length() > 0) {
    while (session.length() > 1 && session.charAt(0) == '/')
    session = session.substring(1);
    // Now see if there's a addr specified.
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    addr = session;
    } else {
    addr = session.substring(0, off);
    session = session.substring(off + 1);
    // Now see if there's a port specified
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    portStr = session;
    } else {
    portStr = session.substring(0, off);
    session = session.substring(off + 1);
    // Now see if there's a ttl specified
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    ttlStr = session;
    } else {
    ttlStr = session.substring(0, off);
    if (addr == null)
    throw new IllegalArgumentException();
    if (portStr != null) {
    try {
    Integer integer = Integer.valueOf(portStr);
    if (integer != null)
    port = integer.intValue();
    } catch (Throwable t) {
    throw new IllegalArgumentException();
    } else
    throw new IllegalArgumentException();
    if (ttlStr != null) {
    try {
    Integer integer = Integer.valueOf(ttlStr);
    if (integer != null)
    ttl = integer.intValue();
    } catch (Throwable t) {
    throw new IllegalArgumentException();
    * GUI classes for the Player.
    class PlayerWindow extends Frame {
    Player player;
    ReceiveStream stream;
    PlayerWindow(Player p, ReceiveStream strm) {
    player = p;
    stream = strm;
    public void initialize() {
    add(new PlayerPanel(player));
    public void close() {
    player.close();
    setVisible(false);
    dispose();
    public void addNotify() {
    super.addNotify();
    pack();
    * GUI classes for the Player.
    class PlayerPanel extends Panel {
    Component vc, cc;
    PlayerPanel(Player p) {
    setLayout(new BorderLayout());
    if ((vc = p.getVisualComponent()) != null)
    add("Center", vc);
    if ((cc = p.getControlPanelComponent()) != null)
    add("South", cc);
    public Dimension getPreferredSize() {
    int w = 0, h = 0;
    if (vc != null) {
    Dimension size = vc.getPreferredSize();
    w = size.width;
    h = size.height;
    if (cc != null) {
    Dimension size = cc.getPreferredSize();
    if (w == 0)
    w = size.width;
    h += size.height;
    if (w < 160)
    w = 160;
    return new Dimension(w, h);
    public static void main(String argv[]) {
    //if (argv.length == 0)
    // prUsage();
    String sessions[]= new String[] {"127.0.0.1/6670","127.0.0.1/6672"};
    AVReceive3 avReceive = new AVReceive3(sessions);
    if (!avReceive.initialize()) {
    System.err.println("Failed to initialize the sessions.");
    System.exit(-1);
    // Check to see if AVReceive3 is done.
    try {
    while (!avReceive.isDone())
    Thread.sleep(1000);
    } catch (Exception e) {}
    System.err.println("Exiting AVReceive3");
    static void prUsage() {
    System.err.println("Usage: AVReceive3 <session> <session> ");
    System.err.println(" <session>: <address>/<port>/<ttl>");
    System.exit(0);
    }// end of AVReceive3
    Following is the code of RTPSocketAdapter.java:
    * RTPSocketAdapter.java
    * Created on 2007&#24180;10&#26376;30&#26085;, &#19979;&#21320;4:13
    * To change this template, choose Tools | Template Manager
    * and open the template in the editor.
    package PlayerTest;
    import java.io.IOException;
    import java.net.InetAddress;
    import java.net.DatagramSocket;
    import java.net.MulticastSocket;
    import java.net.DatagramPacket;
    import java.net.SocketException;
    import javax.media.protocol.DataSource;
    import javax.media.protocol.PushSourceStream;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.SourceTransferHandler;
    import javax.media.rtp.RTPConnector;
    import javax.media.rtp.OutputDataStream;
    * An implementation of RTPConnector based on UDP sockets.
    public class RTPSocketAdapter implements RTPConnector {
    DatagramSocket dataSock;
    DatagramSocket ctrlSock;
    InetAddress addr;
    int port;
    SockInputStream dataInStrm = null;
    SockInputStream ctrlInStrm = null;
    SockOutputStream dataOutStrm = null;
    SockOutputStream ctrlOutStrm = null;
    public RTPSocketAdapter(InetAddress addr, int port) throws IOException {
    this(addr, port, 1);
    public RTPSocketAdapter(InetAddress addr, int port, int ttl) throws IOException {
    try {
    if (addr.isMulticastAddress()) {
    dataSock = new MulticastSocket(port);
    ctrlSock = new MulticastSocket(port+1);
    ((MulticastSocket)dataSock).joinGroup(addr);
    ((MulticastSocket)dataSock).setTimeToLive(ttl);
    ((MulticastSocket)ctrlSock).joinGroup(addr);
    ((MulticastSocket)ctrlSock).setTimeToLive(ttl);
    } else {
    dataSock = new DatagramSocket(port, InetAddress.getLocalHost());
    ctrlSock = new DatagramSocket(port+1, InetAddress.getLocalHost());
    } catch (SocketException e) {
    throw new IOException(e.getMessage());
    this.addr = addr;
    this.port = port;
    * Returns an input stream to receive the RTP data.
    public PushSourceStream getDataInputStream() throws IOException {
    if (dataInStrm == null) {
    dataInStrm = new SockInputStream(dataSock, addr, port);
    dataInStrm.start();
    return dataInStrm;
    * Returns an output stream to send the RTP data.
    public OutputDataStream getDataOutputStream() throws IOException {
    if (dataOutStrm == null)
    dataOutStrm = new SockOutputStream(dataSock, addr, port);
    return dataOutStrm;
    * Returns an input stream to receive the RTCP data.
    public PushSourceStream getControlInputStream() throws IOException {
    if (ctrlInStrm == null) {
    ctrlInStrm = new SockInputStream(ctrlSock, addr, port+1);
    ctrlInStrm.start();
    return ctrlInStrm;
    * Returns an output stream to send the RTCP data.
    public OutputDataStream getControlOutputStream() throws IOException {
    if (ctrlOutStrm == null)
    ctrlOutStrm = new SockOutputStream(ctrlSock, addr, port+1);
    return ctrlOutStrm;
    * Close all the RTP, RTCP streams.
    public void close() {
    if (dataInStrm != null)
    dataInStrm.kill();
    if (ctrlInStrm != null)
    ctrlInStrm.kill();
    dataSock.close();
    ctrlSock.close();
    * Set the receive buffer size of the RTP data channel.
    * This is only a hint to the implementation. The actual implementation
    * may not be able to do anything to this.
    public void setReceiveBufferSize( int size) throws IOException {
    dataSock.setReceiveBufferSize(size);
    * Get the receive buffer size set on the RTP data channel.
    * Return -1 if the receive buffer size is not applicable for
    * the implementation.
    public int getReceiveBufferSize() {
    try {
    return dataSock.getReceiveBufferSize();
    } catch (Exception e) {
    return -1;
    * Set the send buffer size of the RTP data channel.
    * This is only a hint to the implementation. The actual implementation
    * may not be able to do anything to this.
    public void setSendBufferSize( int size) throws IOException {
    dataSock.setSendBufferSize(size);
    * Get the send buffer size set on the RTP data channel.
    * Return -1 if the send buffer size is not applicable for
    * the implementation.
    public int getSendBufferSize() {
    try {
    return dataSock.getSendBufferSize();
    } catch (Exception e) {
    return -1;
    * Return the RTCP bandwidth fraction. This value is used to
    * initialize the RTPManager. Check RTPManager for more detauls.
    * Return -1 to use the default values.
    public double getRTCPBandwidthFraction() {
    return -1;
    * Return the RTCP sender bandwidth fraction. This value is used to
    * initialize the RTPManager. Check RTPManager for more detauls.
    * Return -1 to use the default values.
    public double getRTCPSenderBandwidthFraction() {
    return -1;
    * An inner class to implement an OutputDataStream based on UDP sockets.
    class SockOutputStream implements OutputDataStream {
    DatagramSocket sock;
    InetAddress addr;
    int port;
    public SockOutputStream(DatagramSocket sock, InetAddress addr, int port) {
    this.sock = sock;
    this.addr = addr;
    this.port = port;
    public int write(byte data[], int offset, int len) {
    try {
    sock.send(new DatagramPacket(data, offset, len, addr, port));
    } catch (Exception e) {
    return -1;
    return len;
    * An inner class to implement an PushSourceStream based on UDP sockets.
    class SockInputStream extends Thread implements PushSourceStream {
    DatagramSocket sock;
    InetAddress addr;
    int port;
    boolean done = false;
    boolean dataRead = false;
    SourceTransferHandler sth = null;
    public SockInputStream(DatagramSocket sock, InetAddress addr, int port) {
    this.sock = sock;
    this.addr = addr;
    this.port = port;
    public int read(byte buffer[], int offset, int length) {
    DatagramPacket p = new DatagramPacket(buffer, offset, length, addr, port);
    try {
    sock.receive(p);
    } catch (IOException e) {
    return -1;
    synchronized (this) {
    dataRead = true;
    notify();
    System.out.println("RTPSocketAdapter receive RTP packet from port:"+port);
    System.out.println("The received RTP packet:"+new String(buffer));
    return p.getLength();
    public synchronized void start() {
    super.start();
    if (sth != null) {
    dataRead = true;
    notify();
    public synchronized void kill() {
    done = true;
    notify();
    public int getMinimumTransferSize() {
    return 2 * 1024; // twice the MTU size, just to be safe.
    public synchronized void setTransferHandler(SourceTransferHandler sth) {
    this.sth = sth;
    dataRead = true;
    notify();
    // Not applicable.
    public ContentDescriptor getContentDescriptor() {
    return null;
    // Not applicable.
    public long getContentLength() {
    return LENGTH_UNKNOWN;
    // Not applicable.
    public boolean endOfStream() {
    return false;
    // Not applicable.
    public Object[] getControls() {
    return new Object[0];
    // Not applicable.
    public Object getControl(String type) {
    return null;
    * Loop and notify the transfer handler of new data.
    public void run() {
    while (!done) {
    synchronized (this) {
    while (!dataRead && !done) {
    try {
    wait();
    } catch (InterruptedException e) { }
    dataRead = false;
    if (sth != null && !done) {
    sth.transferData(this);
    Thanks.

    The error of No format has been registered for RTP Payload type 96
    is caused by the dynamic payload mapping, when I add the dynamic mapping between dynamic payload and format. The Player cann't work yet. I think it because JMF doesn't support the format of my clips. For example:
    video: a=rtpmap:96 H263-2000/90000
    audio:a=rtpmap:97 MP4A-LATM/12000/1
    Is there some available plugin to support these format?
    Thanks

  • JMF - How to get a FrameGrabbingControl with a Processor

    I try to get a FrameGrapbbingControll with a Processor because when I get it with a Player the time to access to the different frames with a FramePositionningControll is very very very long. The problem is that this code return null :
    Processor p = Manager.createProcessor(datasource);
    FrameGrabbingControl fgc = (FrameGrabbingControl)p.getControl("javax.media.control.FrameGrabbingControl");How can I get a FrameGrabbingControl with a Processor ???

    2 ways (if you have Livetype)
    i) In FCP - in the effects tab in the browser choose 'Matte'
    drag onto v1, double click the clip, in the viewer window, change the colour to white.
    Then, again in the browser, go to 'text', choose the text you want to use (e.g 'text'), drag this clip above the 'matte' clip (i.e. onto v2). Double click the 'text' clip and in the viewer choose the 'controls' tab. Change the text colour to black.
    After writing your text, resize the clip as required, add a cross dissolve to the text clip at the start and end to fade in/out the text (if required), render (if needed) and hey presto!
    ii) Use Livetype: (requires a bit of Livetype knowledge to match sequence settings first)
    To change the background colour in LT, go to 'edit' - 'project properties' - and then change the background colour.
    In the 'Media Browser' window, choose your font - hit 'apply', go to the 'inspector' window, type your text, change the text colour in the 'attributes' tab.
    Dave

  • JMF: How to play an  avi file NOT in a Frame...is this possible?

    -----Primary Task------
    Using JMF, I want to play an avi video file NOT in a Frame
    ---------Why?----------
    I want to play this avi file in a "non-decoration" container (ie. no Windows GUI, eg. Window/JWindow, Panel/JPanel)
    -------Problem---------
    The MediaPlayer method in JMF 2.2.1e requires a Frame container, according to JMFUtil.java (eg. mediaplayer = jmapps.util.JMFUtils.createMediaPlayer)
    ------Questions--------
    1. Is there any way to change the method of JMFUtil.java to enable video files to play NOT in a Frame, like a Window or Panel?
    2. If not, do you know of any "tricks" to get rid of the Frame decorations?
    3. If not, any other solutions?

    sigh... first read the API, then ask.
    Frame.setUndecorated(boolean) might help. http://java.sun.com/j2se/1.4.1/docs/api/java/awt/Frame.html#setUndecorated(boolean)

  • JMF - How to draw Circles over Video (JMF / Java2D / Swing)

    Hi there!
    I want to draw polygons over a playing video-panel, but they keep vanishing behind the video... Is there a way to bring them on top of the video canvas? The application which I'm going to develop should indicate ROIs on a playing video... This thread was inspiring, but didn't help at all...
    http://forum.java.sun.com/thread.jspa?forumID=28&threadID=612055

    Hi there!
    I want to draw polygons over a playing video-panel, but they keep vanishing behind the video... Is there a way to bring them on top of the video canvas? The application which I'm going to develop should indicate ROIs on a playing video... This thread was inspiring, but didn't help at all...
    http://forum.java.sun.com/thread.jspa?forumID=28&threadID=612055

  • How to use JMF without download it?

    hi all,
    I have a Video conferencing using JMF
    - transmission : an application (with capturing a webcam source and jmf installed)
    - reception : an applet (display the video without jmf)
    How could a remote user use the applet without download jmf?
    Thanks a lot
    Christel

    hi,
    I have tried this way but it doesn't work.
    I have make a jar-file but there is not Manisfest inside.
    My process:
    1- Type of Archives -> "JAR de l'applet" (Jar of the Applet)
    2- Name = JAR de l'applet
    File = C:/CAV/RtpApplet/RTPApplet.jar (I don't know what i can put in this area)
    I have also checked all CheckBoxes
    3- Classes et ressources du projet (Classes and resources of the Project) -> I have check "Toujours inclure les classes et ressources" (always include classes and resources)
    Add classes et packages : javax, com, rtpavc (my personal package)
    4- Library = "AV" (which is the entire jmf.jar)
    select the CheckBox "Inclure classes et toutes ressources requises" ( include classes and resources needed)
    5- select the CheckBox "Inclure un Manifest dans l'archive" (include a Manifest in the archive)
    Select the RadioButton : "Cr�er un Manifest" (Create a Manifest)
    I have a jar-file (the "JAR de l'applet") but when i select it i have nothing inside and no Manifest-file.
    I really don't know how it's working.
    I really need your help,
    Thanks in advance.
    Christel

  • How to get start

    Hi,
    I want to combine a web cemra in my web application but I dont know how or from where to get started, and to to learn the JMF, how to install it with eclipse etc.
    Any help is appreciated.
    Thanks.

    Hi
    check this for video capture from a cam
    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JVidCap.html
    and about the eclipse, I just installed the jmf and I did not need to modify any thing to make it work with eclipse (I guess u tried that ?!!)
    Best regards
    J.MAX

  • Beginner to jmf

    hello all, im new to this jmf ,i know how to work with applets and frames only & i want to know what is this jmf, how it is useful to run video clips and i need some sample programs also , if possible suggest some tutorials and online books

    try this link, there are some good samples, hope useful for u.
    http://java.sun.com/products/java-media/jmf/2.1.1/solutions/index.html

  • Installing/Using JMF

    Hey all,
    I want to write a program that can perform operations on video files (actually playing the files within the program is not necessary), and it seems JMF is the way to go. I went to the JMF website and tried to download it, but it seems I need to download some sort of Windows service pack. The Java installer on that website doesn't work, so I tried installing the service pack manually. Now on my desktop I have "JMStudio" installed - does this mean I've installed JMF or just the service pack? When I go back to the download page it still says I need to install the service pack before I can download JMF so I don't really know where to go from here. If I have installed JMF, how do I actually use it in a Java program? As is probably painfully evident, I really don't know how all of this works.
    Thanks in advance for any help.

    Karthikeyan_R wrote:
    Is that possible to run JMF application, without installing JMF ?
    Actuallay I'm looking for an answer for this question - How to develope a JMF application which doen't need installing JMF in client machines ?It depends on the application, actually. Capturing video from a web cam, and decoding/encoding certain video types are handled in native code and thus must be installed to work. But a lot of the JMF code is also just implemented in a JAR file.
    So it depends on what your application is whether or not you'll need to have JMF installed.

  • Using PortControl Interface problem????

    I am trying to write a program that captures video from my TV tuner composite port , using the following code:
    import java.awt.Component;
    import java.awt.Frame;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.media.CannotRealizeException;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoDataSourceException;
    import javax.media.NoPlayerException;
    import javax.media.Player;
    import javax.media.control.PortControl;
    import javax.media.protocol.DataSource;
    import javax.swing.JOptionPane;
    * @author Zaid
    public class Crap {
        public static void main(String args[])
            Player player;
            Frame frame = new Frame("Test");
          try {
                JOptionPane.showMessageDialog(null, "begin the device capturing");
                MediaLocator ml = new MediaLocator("vfw://0");
                if(ml == null)
                    JOptionPane.showMessageDialog(null, "No MediaLocator created");
                else
                    JOptionPane.showMessageDialog(frame, ml.toString());
                DataSource ds = Manager.createDataSource(ml);
                // getting the port Control
                Object[] c_list = ds.getControls();
                for(int i=0; i<c_list.length; i++)
                    JOptionPane.showMessageDialog(frame, c_list.toString());
    try {
    player = Manager.createRealizedPlayer(ds);
    JOptionPane.showMessageDialog(null, "player created successfully");
    if (player.getVisualComponent() != null) {
    frame.add(player.getVisualComponent());
    player.getVisualComponent().setSize(300, 300);
    if (player.getControlPanelComponent() != null) {
    frame.add(player.getControlPanelComponent());
    if (player.getControl("javax.media.control.PortControl")!= null) {
    PortControl pc = (PortControl) ds.getControl("javax.media.control.PortControl");
    pc.setPorts(PortControl.COMPOSITE_VIDEO);
    JOptionPane.showMessageDialog(null, "PortControl Found");
    frame.add(player.getControl("PortControl").getControlComponent());
    else
    JOptionPane.showMessageDialog(frame, "PortControl not found!!!");
    player.start();
    //audioPlayer.start();
    frame.setVisible(true);
    frame.setSize(300, 300);
    } catch (CannotRealizeException ex) {
    Logger.getLogger(JMFtest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
    Logger.getLogger(JMFtest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NoPlayerException ex) {
    Logger.getLogger(JMFtest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (NoDataSourceException ex) {
    Logger.getLogger(Crap.class.getName()).log(Level.SEVERE, null, ex);
    JOptionPane.showMessageDialog(frame, "No DataSource found");
    } catch (IOException ioe) {
    System.out.println("Damn exception: " + ioe);
    but PortControl always give that value of null
    the reason is  PortControl Interface is not implemented in the JMF
    How to implement it ???
    Is there any other way to capture TV tuner video from composite port???
    Thanks in advance                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    xinixmayur, please don't post in threads that are long dead. When you have a question, start your own topic. Feel free to provide a link to an old post that may be relevant to your problem.
    I'm locking this thread now.
    db

  • How to edit a stream captured live in jmf?

    hi everybody.
    i want to know how can i edit an audio stream that is being captured live from a microphone. i have looked at Cut.java from jmf solutions. it is taking a file to cut and then write the updated file to another file. when i have tried to modify it by making the program take the input as captured audio, the program is not working! and am not able to hear the output file as well!
    can anyone help me please?
    a
    i have also tried to implement a BufferTransferHandler but my program is still not working! please help!!!

    i was wondering is there a way in jmf to let the capture device capture for some random time and stop, then restart capturing again and stop again..meaning to continue repeat this pattern.. because i want to implement packet losses in jmf .
    previously i was trying to capture a continuous stream of audio and then try to select randomly from the buffer to send this over a network.but that is not working! so am trying to select from the start itself. tell me is it possible to control capture from the microphone in a random fashion as explained above? thankssss a lot ..reply soon!!

  • How do I create a JMF streaming server with QuickTime Web Client?

    Can anyone give me some pointers on how to create a JMF streaming server and user can type in a rtsp URL on the web browser and be able to view the streaming video in QuickTime player?
    thanks

    JMF does not have RTSP server capabilities built-in. You would have to program the RTSP request-response protocol yourself.

  • How to capture the video in a file using JMF-RTP?

    Please someone help in capturing the live streaming in a file using JMF......
    Thanks..

    Hi, I have a problem with RTPExport output video files. One side streams H263/RTP(AVTransmit2.java) and other write this steam to a file by RTPExport.java. When network conditions are ideal, output video file has same fps and same number of frames like original file. Problem occures, when theres packet lost in network, then output file has different fps,and also has less frames like original video(because it didnt write missing frames to file, and thats why it get shorter). Pls how can I achieve output file that will have the same fps like original one? How to write to file an identical copy of what I can see while receiveing video with AVReceive2.java? Its there a way to modifi rtpexport or avreceiver to do this? Thanks!

Maybe you are looking for