Synchronous video capturing with a simple webcam with DIAdem-DAC/Visual

Hello,
because of DIAdem is not able to synchronise captured video files and MDF-data files measured with
Vector Canape with all the skills of and in DIAdem-VIEW,
how about even capturing a video additional to the other measured data with DIAdem-DAC ??
Vector Canape can this do with a simple webcam ( a better model from Logitech suffice ) and it really works fine,
but DIAdem is much better for the rest of all measuring tasks and so our favourite.
And yes : DIAdem  can  data acquisition and we like it  !!! 

Hallo,
diese Funktion vermisse ich seit Jahren bei Diadem. Die Hardware (Web-cam) gibts längst an jeder Ecke nur Diadem hinkt (u.a. Vector) hinterher, das kanns ja wohl nicht sein ....

Similar Messages

  • Re: how can i transmit live video that is captured by a usb webcam with rtp

    oh,my oicq number is:282987147
    Anyone can leave a message to me.
    Thanks a lot !

    Have you taken a look at
    [email protected]
    It should show you the basic principles involved
    You will probably have to find additional codecs though

  • Video captured in iMovie is split with frames missing

    I have a client who sends me video to edit for him in FCP that he captures in iMovie.
    Always around the 15 minutes mark there is a break in the footage. Looking in the 'iMovie Events' folder I see two files clip-2165-02-15 22;26;25.mov & clip.mov.
    clip.mov is the first part and clip-2165-02-15 22;26;25.mov is the second part.
    This would not if when I joined them in the FCP timeline they matched up, but there seems to be a few frames missing.
    Does anyone one know what is going on?

    FCP's 20 year old, nomenclature and file management are clumsy and capturing is unstable.
    FCP isn't even 10 years old. Not even the app that Apple bought and made into FCP is 10 years old yet. And I beg to differ on the capturing being unstable. If it was so unstable, why would over 1 million people be using it? Why would over half of the production companies in Los Angeles be using it if it was so awful and unstable? No. The application is very stable, and very easy to use. If it isn't working right, then something is wrong... Bad tape, bad deck, bad cable, bad install of the app, machine issues, user error.
    I've often captured footage in iMove that was causing too much grief in FCP Or when I actually wanted separate clips on TC breaks.
    iMovie captures without timecode, nor reel numbers. That is a hugely important thing for professional editors. That is the basis for good file management, and since iMovie lacks that, it's worse at file management then FCP. A professional wouldn't work without TC and reel numbers. It also captures in a codec that mixes audio and video in ways that make the format uneditable in FCP without rendering.
    And, BTW, FCP will make separate clips. It has a SCENE DETECTOR that will break up a big clip into subclips (or does it just add markers)...if you want that "easy button."
    Attempting to capture this footage in FCP would probably just cause even more headaches.
    What footage?
    And there are at least as many threads about capturing problems in FCP as there are "iMovie footage" threads. The two are directly correlated.
    No...iMovie is consumer, FCP is professional. And capturing problems can be caused by one of a dozen reasons. I listed them above.
    If Apple isn't going to fix FCP the least they can do is allow iMovie to share the codecs that are installed with FCP and encourage cross compatibility rather than hobbling it.
    Allow FCP to use consumer codecs? Lacking timecode and reel numbers? Ugh...I hope not. And what is broken about FCP? Is EVERYONE having the SAME capture issue? You see a few dozen posts about how capturing footage doesn't work and you think EVERYONE has the issue? With over 1 million FCP copies out there, unless you saw nearly that many posts about the issue, it isn't something that is broken in the application. It is an isolated event happening to a few people.
    Looking at posts on FCP is much like sitting in a hospital waiting room. You only see the problems that occur. If you see a dozen people coming in with broken arms, you now assume that EVERYONE has a broken arm? Or that with all these sick people wandering about, that the whole town is sick? No, only a small percentage is sick.
    Shane

  • How to stream audio and video captured from mic and webcam in sync.

    I am working on a video chat project. I need to capture audio and video from mic and webcam and create rtp stream for them. How can I proceed for this. Any source code help will be highly appreciated. Otherwise just guide me how to do this and point to any good resource which is directly related to my need.
    Thanx.

    t.b.m
    As mentioned by you, i am doing exactly like that . I have coded transmitter class. But at the receiver side it is unable to play the stream. I am posting my code . Can you please help with me with any mistake i m making in my code ?? Or with way I should receive stream at receiver side. Plz see my code. I am streaming to ip address 172.31.80.67.
    package heyram;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import java.io.IOException;
    import java.util.Vector;
    import java.net.InetAddress;
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.rtcp.*;
    import com.sun.media.rtp.*;
    import java.lang.Thread.*;
    public class HEYRAM{
    Format[] format=new Format[2];
    Vector[] devices=new Vector[2];
    CaptureDeviceInfo[] di=new CaptureDeviceInfo[2];
       SessionManager rtpsm = new com.sun.media.rtp.RTPSessionMgr();
    Processor p=null;
    Processor p1=null;
    boolean result;
    public HEYRAM(String address,int port,int ttl){
        try{
                InetAddress destaddr = InetAddress.getByName(address);
                SessionAddress sessaddr = new SessionAddress(destaddr,
                                                             port,
                                                             destaddr,
                                                             port + 1);
                String cname = rtpsm.generateCNAME();
                    String username = null;
                try {
                username = System.getProperty("user.name");
            } catch (SecurityException e){
                username = "jmf-user";
            // create our local Session Address
            SessionAddress localaddr = new SessionAddress();
                SourceDescription[] userdesclist= new SourceDescription[]
                    new SourceDescription(SourceDescription
                                          .SOURCE_DESC_EMAIL,
                                          "[email protected]",
                                                                     1,
                                          false),
                    new SourceDescription(SourceDescription
                                          .SOURCE_DESC_CNAME,
                                          cname,
                                          1,
                                          false),
                    new SourceDescription(SourceDescription
                                          .SOURCE_DESC_TOOL,
                                          "JMF RTP Player v2.0",
                                          1,
                                          false)
                rtpsm.initSession(localaddr,
                                userdesclist,
                                0.05,
                                0.25);
                rtpsm.startSession(sessaddr,ttl,null);
            } catch (Exception e) {
                System.err.println(e.getMessage());
                //return null;
        // rtpsm.initSession(localAddress, defaultUserDesc, rtcp_bw_fraction, rtcp_sender_bw_fraction);
            // rtpsm.startSession(...);
    public void createVideoSession()
        format[1] = new VideoFormat(VideoFormat.YUV);
        devices[1]= CaptureDeviceManager.getDeviceList( format[1]);
         di[1]= null;
            if (devices[1].size() > 0) {
                 di[1] = (CaptureDeviceInfo)devices[1].elementAt(0);
                  System.out.println(di[1].toString());
            else {
                // exit if we could not find the relevant capture device.
             System.out.println("1234jjfjsajfjasf1");
                System.exit(-1);
            // Create a processor for this capture device & exit if we
            // cannot create it
            try {
                p1 = Manager.createProcessor(di[1].getLocator());
            } catch (IOException e) {
                System.out.println("1234jjfjsajfjasf2");
                System.exit(-1);
            } catch (NoProcessorException e) {
                System.out.println("1234jjfjsajfjasf3");
                System.exit(-1);
            // at this point, we have succesfully created the processor.
            // Realize it and block until it is configured.
           // p1.configure();
         result = waitForState(p1, Processor.Configured);
         if (result == false)
         System.out.println("Couldn't realize processor");
            p1.setContentDescriptor(new ContentDescriptor( ContentDescriptor.RAW_RTP));
            // block until it has been configured
            TrackControl track[] = p1.getTrackControls();
            boolean encodingOk = false;
            // Go through the tracks and try to program one of them to
            // output ULAW_RTP data.
            for (int i = 0; i < track.length; i++) {
                if (!encodingOk && track[i] instanceof FormatControl) {
                    if (((FormatControl)track).
    setFormat( new VideoFormat(VideoFormat.YUV)) == null) {
    track[i].setEnabled(false);
    else {
    encodingOk = true;
    else {
    // we could not set this track to gsm, so disable it
    track[i].setEnabled(false);
    // Realize it and block until it is realized.
    p1.realize();
    result = waitForState(p1, Processor.Realized);
         if (result == false)
         System.out.println("Couldn't realize processor");
    // block until realized.
    // get the output datasource of the processor and exit
    // if we fail
    DataSource ds = null;
    try {
    ds = p1.getDataOutput();
    } catch (NotRealizedError e){
    //System.exit(-1);
    System.out.println("1234jjfjsajfjasf4");
    // Create a SessionManager and hand over the
    // datasource for SendStream creation.
    // The session manager then needs to be initialized and started:
    // rtpsm.initSession(...);
    // rtpsm.startSession(...);
    try {
    (rtpsm.createSendStream(ds, 0)).start();
    } catch (IOException e){
    System.out.println("1234jjfjsajfjasf6");
    e.printStackTrace();
    } catch( UnsupportedFormatException e) {
    System.out.println("1234jjfjsajfjasf7");
    e.printStackTrace();
    public void createAudioSession(){
    format[0] = new AudioFormat("linear",8000,8,1);
    devices[0]= CaptureDeviceManager.getDeviceList( format[0]);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Need help with a simple process with FTP Adapter and File Adapter

    I am trying out a simple BPEL process that gets a file in opaque mode from a FTP server using a FTP adapter and writes it to the local file system using a File Adapter. However, the file written is always empty (zero bytes). I then tried out the FTPDebatching sample using the same FTP server JNDI name and this work fine surprisingly. I also verified by looking at the FTP server logs that my process actually does hit the FTP server and seems to list the files based on the filtering condition - but it does not issue any GET or RETR commands to actually get the files. I am suspecting that the problem could be in the Receive, Assign or Invoke activities, but I am not able identify what it is.
    I can provide additional info such as the contents of my bpel and wsdl files if needed.
    Would appreciate if someone can help me with this at the earliest.
    Thanks
    Jay

    persiandude wrote:
    Topic: Need help with if, else, and which statements and loops.
    How would I display 60 < temp. <= 85 in java
    System.out.println("60 < temp. <= 85 in java");
    another question is how do I ask a question like want to try again (y/n) after a output and asking that everytime I type in yes after a output and terminate when saying No.Sun's [basic Java tutorial|http://java.sun.com/docs/books/tutorial/]
    Sun's [New To Java Center|http://java.sun.com/learning/new2java/index.html].Includes an overview of what Java is, instructions for setting up Java, an intro to programming (that includes links to the above tutorial or to parts of it), quizzes, a list of resources, and info on certification and courses.
    [http://javaalmanac.com|http://javaalmanac.com]. A couple dozen code examples that supplement [The Java Developers Almanac|http://www.amazon.com/exec/obidos/tg/detail/-/0201752808?v=glance].
    jGuru. A general Java resource site. Includes FAQs, forums, courses, more.
    JavaRanch. To quote the tagline on their homepage: "a friendly place for Java greenhorns." FAQs, forums (moderated, I believe), sample code, all kinds of goodies for newbies. From what I've heard, they live up to the "friendly" claim.
    Bruce Eckel's [Thinking in Java|http://mindview.net/Books/DownloadSites] (Available online.)
    Joshua Bloch's [Effective Java|http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/ref=pd_bbs_1?ie=UTF8&s=books&qid=1214349768&sr=8-1]
    Bert Bates and Kathy Sierra's [Head First Java|http://www.amazon.com/exec/obidos/tg/detail/-/0596004656?v=glance].
    James Gosling's [The Java Programming Language|http://www.bookpool.com/sm/0321349806].

  • Need help with a simple problem with monitors

    I used a power g4 and I want to use two monitors for final cut. I have the apple monitor 4:3 and I got a new 22inch 16:9 monitor. I want to use them both for final cut. I want to use 4:3 for bins. When i hook them up the 4:3 has the time lines and canvas. How do i make the 16:9 the time line and the 4:3 flat screen the bins. I need to reverse how they are. Someone help please

    I will try that. I will kick myself in the *** if thats all i need to do

  • Detection problem on HP webcam with JMF

    Hi,
    I'm trying NyARtoolkit and I need to use the video stream of my HP's webcam encrusted above the screen of my laptop (a HP Pavillon tx 2670ef)
    After the installation of JMF, I lunch JMStudio and I manage tu detect my webcam in : File->Preferences->Capture Devices->detect capture devices.
    Then i close the windows and i do File->Capture...->I enable "use video device" and unable "use audio device" then i click on "OK" but aftewards i have an error message saying that JMF couldn't initialize the capture device...
    2 students with me have the same pb...
    I made some researches about this issue and i found this post
    http://72.5.124.102/thread.jspa?messageID=10177842
    Afterwards I've installed ManyCam and i managed to get a video capture from the virtual webcam simulated with ManyCam.
    In fact, when i click on detect capture devices in JMStudio, a windows appears and i can choose "ManyCam Virtual Webcam" instead of "HP webcam".
    Moreover, in the options before capturing video, the encoding is in RVB instead of YUV before with the "HP webcam".
    But when i run my program i have this error :
    java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
         at java.util.Vector.elementAt(Unknown Source)
         at jp.nyatla.nyartoolkit.jmf.utils.JmfCaptureDeviceList.getDevice(JmfCaptureDeviceList.java:80)
         at jp.nyatla.nyartoolkit.java3d.utils.NyARSingleMarkerBehaviorHolder.<init>(NyARSingleMarkerBehaviorHolder.java:68)
         at J3DJME.NyARJava3D.<init>(NyARJava3D.java:174)
         at J3DJME.NyARJava3D.main(NyARJava3D.java:76)
    I tried many other things (Quicktime with QTcap... but i didn't managed to solve this pb yet)
    Coud you help to use my webcam with jmf ?
    josy

    You probably want to remove the crust from your web cam if you expect it to work. Most things that are encrusted aren't in the best of shape...
    JMF connects to web cameras by wrapping around native interfaces. If the JMStudio isn't able to use your web cam, it could mean a number of things...your web cam isn't compliant with the version of the interfaces (VFW and DirectShow, I believe) that JMF is wrapping around, the web cam doesn't output any formats JMF can use, etc.
    But if JMStudio can't use your web cam sucessfully, 99% of the time that means your web cam isn't going to work with JMF... unless you want to code support for it yourself.

  • Video Capture Card for Adobe Connect

    Does anyone have any recommendations for a video capture card for the Mac to use with Adobe Connect? I have a HD camera that I want to connect to my Mac through the S video connection on the camera. I need a video capture card that will work with Adobe Connect.

    The Video Telephony Pod is the video pod when Video Telephony Conferencing equipment/cameras are configured to talk with Adobe Connect. This was introduced in Connect 8.1 for SIP and H.264  based VTC systems. It will only work with H.264 video streams from the VTC type cameras found in conference rooms. Usually the major players in the U.S. are Polycom and Tandberg.
    The VTC Pod appears as a standard pod once the administrator of an Adobe Connect on-premise server has configured the various admin screens and added the SIP addesees to the configuration xml file.
    The video quality is different than the webcam video as here is a table:
    Tandberg 990:
    Profile Level At FMG End
    Video Out At Device
    High
    1200.0kbps  448p
    Medium
    600.0 kbps   448p
    Low
    250kbps       CIF
    Tandberg Edge 95 MXP:
    Profile Level At FMG End
    Video Out At Device
    High
    1700 kbps w720p
    Medium
    600kbps    w448p
    Low
    250kbps    w288p
    More information on formats:
    768 x 448@30fps (w448p)
    576 x 448@30fps (448p)
    512 x 288@30fps (w288p)
    352 x 288@30fps (CIF)
    176 x 144@30fps (QCIF)
    So, that HIGH, MEDIUM and LOW refer to the Adobe Connect room preference setting for video. Notice that HIGH shows we can deliver 720p resolution.
    The normal webcam video pod is locked to 480p (VGA) 4x3 resolution at 20 frames per second but the server admin on an on-premise install  can alter a configuration xml file to go 24 fps but not higher than VGA on the webcam pod.
    Probably more than you ever imagined I would share but that's my style.
    Take care.

  • A tool to export a video of DIAdem VIEW, playing a synchronized video, map, audio and data

    It's very common you need to do a presentation with several information and if you can put a video playing a synchronized video, map, audio and data graphs, like DIAdem VIEW do, your presentation will be cause a excellent impression. To do this today you need a capture screen toll, If DIAdem have a native tool to do this it would be great.
    

    Hello,
    Today I tested the screen capture software Camtasia Studio 8 and this works really good. The files can be saved as an AVI file and different qualities can be chosen, which gives some flexibility in the file size. The screen capture is working fast, so if I run with 1 Hz the VIEW layout with a map and several 2d graphs all the frames are captured.
    With kind regards,
    Stijn

  • Sparadic video capture

    When I create a processor using a ProcessorModel and Manager.createRealizedProcessor using the ProcessorModel, my video capture works. The problem with this is it is a blocking call, so if something goes wrong, my session hangs.
    To avoid this I have used the StateHelper, and modified it so it accepts a processor instead of a player. I have now modified my code to configure and realize the processor step by step, using this code;
         // Use CaptureUtil to create a monitored capture datasource
         datasource = getCaptureDS(vf, af, videoCanvas);
         if (datasource != null) {
    try {
    VideoFormat outvf = new VideoFormat(VideoFormat.JPEG_RTP);
    processor = Manager.createProcessor(datasource);
    processorSH = new StateHelper(processor);
    if (!processorSH.configure()) {
    System.out.println("StartMonitoring: Failed to configure processor.");
    processor = null;
    processorSH = null;
    return;
         // Set the preferred content type for the Processor's output
         processor.setContentDescriptor(new ContentDescriptor(ContentDescriptor.RAW));
    TrackControl track[] = processor.getTrackControls();
    boolean retval = false;
    for (int i=0; i < track.length; i++) {
    if (!retval && track[i] instanceof FormatControl) {
    try {
    track.setFormat(outvf);
    retval = true;
    } catch (Exception e) {
    track[i].setEnabled(false);
    System.out.println("Info: exception setting track: " + e);
    } else {
    track[i].setEnabled(false);
    if (retval) {
    if (processorSH.realize()) {
    // datasource.connect();
    datasource.start();
    processor.start();
    } else {
    System.out.println("Info: retval false");
    getCaptureDS creates a new datasource after finding a capture device for the given video format, and connects the media locator of the capture device.
    My problem is, the video capture is sparadic, it captures an image and displays it for a few seconds and then stops. When I create and start the outbound datasink (broadcasting to an RTP URL), then it will broadcast a few frames, stop for about 5 minutes, and broadcast a few more. Using the ProcessorModel before it would broadcast continuously.
    Help, what am I doing wrong? I've tried everything I can think of but nothing is working, please help.

    thanks for the advice, I revisted my code and removed all datasource.start calls, but still no luck. Its really beginning to bug me, and I just don't know where else to look. Here's the complete code I'm using, maybe somebody will be able to advise me, please!
    package RmiChat;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.control.*;
    import javax.media.format.*;
    import java.awt.*;
    import java.net.*;
    import java.util.*;
    public class VideoBroadcast {
    // URL for RTP transmission
    String HostIPAddress;
    String PortNumber = "55555";
    String StreamName = "/video/1";
    String SendUrl;
    VideoInfo videoinfo;
    boolean imageFlipped = true;
    // Flag to determine if the capture device needs to be rebuilt
    boolean videoRestart = false;
    // Flags to indicate if broadcasting video or audio
    boolean sendingVideo = false;
    // Video Sizes
    protected final Dimension SmallVideoSize = new Dimension(160, 120);
    protected final Dimension MediumVideoSize = new Dimension(320, 240);
    protected final Dimension LargeVideoSize = new Dimension(640, 480);
    protected final Dimension DefaultVideoSize = MediumVideoSize;
    protected final float LowFrameRate = 5f;
    protected final float MidFrameRate = 15f;
    protected final float BestFrameRate = 30f;
    protected final float DefaultFrameRate = 30f;
    protected final String DefaultVideoEncoding = VideoFormat.RGB;
    protected final String DefaultRTPVideoEncoding = VideoFormat.JPEG_RTP;
    // JMF objects
    MonitorCDS myVideoDS = null;
    StateHelper processorSH = null;
    Processor processor = null;
    DataSink datasink = null;
    Canvas videoPreview = null;
    DataSource captureDS = null;
    DataSource previewDS = null;
    DataSource cloneableDS = null;
    DataSource initialDS = null;
    ClientMonitorStream previewStream = null;
    // String outputType = "video.quicktime";
    String outputType = "video.x_msvideo";
    VideoFormat vf = null;
    float frameRate = DefaultFrameRate;
    Dimension videoSize = DefaultVideoSize;
    String VideoEncoding = DefaultVideoEncoding;
    String outputFileExt = ".avi";
    myLog myLog;
    Button videoButton = null;
    public VideoBroadcast(Canvas vp, Button vb) {
    this.videoPreview = vp;
    this.videoButton = vb;
    this.myLog = new myLog();
    float frameRate = DefaultFrameRate;
    Dimension videoSize = DefaultVideoSize;
    // get local IP address and create SendURL
    try {
    InetAddress ipadr = InetAddress.getLocalHost();
    HostIPAddress = ipadr.getHostAddress();
    } catch(Exception e) {
    myLog.log("Error: failed to get InetAddress.");
    myLog.log("Exception: " + e);
    SendUrl = "rtp://" + HostIPAddress + ":" + PortNumber + StreamName;
    protected boolean prepareVideoCapture() {
         // Close the previous processor, which in turn closes the capture device
         if (processor != null) {
    try {
    myLog.log("PerpareVideoCapture: processor is already created, will stop and close processor.");
         processor.stop();
         processor.close();
         } catch (Exception e) {
    myLog.log("Warn: failed to close processor.");
    processor = null;
    processorSH = null;
         if (captureDS != null) {
    try {
    myLog.log("PerpareVideoCapture: captureDS is already created, will disconnect.");
    captureDS.disconnect();
         } catch (Exception e) {
    myLog.log("Warn: failed to close captureDS.");
    captureDS = null;
    if (datasink != null) {
    try {
    myLog.log("Info: Datasink still open, so closing.");
    datasink.stop();
    datasink.close();
         } catch (Exception e) {
    myLog.log("Warn: failed to close datasink.");
    datasink = null;
         vf = new VideoFormat(VideoEncoding, videoSize, Format.NOT_SPECIFIED, null, frameRate);
    videoinfo = new VideoInfo(SendUrl, imageFlipped, videoSize);
         // create a monitored capture captureDS
         initialDS = createDataSource(vf);
    captureDS = Manager.createCloneableDataSource(initialDS);
    previewDS = ((SourceCloneable)captureDS).createClone();
         if (captureDS != null) {
    // create the processor
    try {
    PushBufferDataSource dds = (PushBufferDataSource) previewDS;
    PushBufferStream [] videoStreams = dds.getStreams();
    previewStream = new ClientMonitorStream(videoStreams[0], videoPreview, videoinfo);
    processor = Manager.createProcessor(captureDS);
    processorSH = new StateHelper(processor);
    if (processorSH.configure()) {
    // Set the preferred content type for the Processor's output
    processor.setContentDescriptor(new ContentDescriptor(ContentDescriptor.RAW));
    boolean retval = false;
    TrackControl track[] = processor.getTrackControls();
         VideoFormat outvf = new VideoFormat(VideoFormat.JPEG_RTP);
    for (int i=0; i < track.length; i++) {
    if (!retval && track[i] instanceof FormatControl) {
    try {
    track.setFormat(outvf);
    retval = true;
    } catch (Exception e) {
    track[i].setEnabled(false);
    System.out.println("Info: exception setting track: " + e);
    } else {
    track[i].setEnabled(false);
    if (retval) {
    if (processorSH.realize()) {
    processor.start();
    setJPEGQuality(processor, 0.5f);
    previewStream.setEnabled(true);
    } else {
    System.out.println("Info: retval false");
         } catch (Exception e) {
    myLog.log("Error: creating realized processor: " +e);
              // Make sure the capture devices are released
    if (processor != null) {
    processor.close();
    processor = null;
    processorSH = null;
              return false;
    myLog.log("Info: Sending rtp url: " + SendUrl);
    return true;
    protected void startVideoCapture() {
    // If processor hasn't been created then try to create it
    if (processor == null) {
    prepareVideoCapture();
    // ensure we have a processor, otherwise nothing will work
    if (processor != null) {
    if (datasink != null) {
    try {
    myLog.log("Info: Datasink still open, so closing.");
    datasink.stop();
    datasink.close();
         } catch (Exception e) {
    try {
         DataSource outputDS = processor.getDataOutput();
    MediaLocator mlsend = new MediaLocator(SendUrl);
    DataSink datasink = Manager.createDataSink(outputDS, mlsend);
    datasink.open();
    datasink.start();
         processor.start();
    sendingVideo = true;
    if (videoButton != null) {
    videoButton.setLabel("Stop Broadcast");
    videoButton.setActionCommand("Stop Broadcast");
         } catch (Exception e) {
         myLog.log("Error: Failed to create DataSink for broadcast: " +e);
    datasink = null;
         myLog.log("Started broadcasting...");
    } else {
    myLog.log("Error: Attempting to start capture, but have no processor.");
    protected void stopVideoCapture() {
         // Stop the capture and the file writer (DataSink)
    if (processor != null) {
         if (datasink != null) {
    try {
    datasink.stop();
         } catch (Exception e) {
    myLog.log("Warn: Exception whilst stopping datasink: " + e);
    datasink.close();
         processor.stop();
         processor.close();
         processor = null;
         processorSH = null;
         // Restart monitoring
         prepareVideoCapture();
    sendingVideo = false;
    if (videoButton != null) {
    videoButton.setLabel("Start Broadcast");
    videoButton.setActionCommand("Start Broadcast");
         myLog.log("Stoping Capture.");
    protected void changeVideoSize(Dimension size) {
    if (!videoSize.equals(size)) {
    videoSize = size;
    videoRestart = true;
    videoinfo = new VideoInfo(SendUrl, imageFlipped, videoSize);
    public DataSource getCaptureDS(VideoFormat vf) {
         DataSource VideoDS = null;
         // Create a capture DataSource for the video
         // If there is no video capture device, then exit with null
         if (vf != null) {
         VideoDS = createDataSource(vf);
         // Create the monitoring datasource wrapper
    //     if (VideoDS != null) {
    // VideoDS = new MonitorCDS(VideoDS, videoPreview);
         return VideoDS;
    public DataSource createDataSource(Format format) {
         DataSource ds;
         Vector devices;
         CaptureDeviceInfo cdi;
         MediaLocator ml;
         // Find devices for format
         devices = CaptureDeviceManager.getDeviceList(format);
         if (devices.size() < 1) {
         myLog.log("Error: No Devices for " + format);
         return null;
         // Pick the first device
         cdi = (CaptureDeviceInfo) devices.elementAt(0);
         ml = cdi.getLocator();
         try {
         ds = Manager.createDataSource(ml);
         ds.connect();
         if (ds instanceof CaptureDevice) {
              setCaptureFormat((CaptureDevice) ds, format);
         } catch (Exception e) {
         myLog.log("Error: createDataSource: Exception: " +e);
         return null;
         return ds;
    public void setCaptureFormat(CaptureDevice cdev, Format format) {
         FormatControl [] fcs = cdev.getFormatControls();
         if (fcs.length < 1) {
              myLog.log("Warning: No formatControls");
         return;
         for (int i = 0; i < fcs.length; i++) {
              myLog.log("Info: Available format: " + fcs[i].getFormat());
         FormatControl fc = fcs[0];
         Format [] formats = fc.getSupportedFormats();
         for (int i = 0; i < formats.length; i++) {
         if (formats[i].matches(format)) {
              format = formats[i].intersects(format);
              myLog.log("Info: Setting format " + format);
              fc.setFormat(format);
              break;
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
         Control cs[] = p.getControls();
         QualityControl qc = null;
         VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
         // Loop through the controls to find the Quality control for
         // the JPEG encoder.
         for (int i = 0; i < cs.length; i++) {
         if (cs[i] instanceof QualityControl &&
              cs[i] instanceof Owned) {
              Object owner = ((Owned)cs[i]).getOwner();
              // Check to see if the owner is a Codec.
              // Then check for the output format.
              if (owner instanceof Codec) {
              Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
              for (int j = 0; j < fmts.length; j++) {
                   if (fmts[j].matches(jpegFmt)) {
                   qc = (QualityControl)cs[i];
                   qc.setQuality(val);
                   System.err.println("- Setting quality to " +
                             val + " on " + qc);
                   break;
              if (qc != null)
              break;
    Here's the code for the ClientMonitorStream which has loads of println in it;
    package RmiChat;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.control.*;
    import javax.media.format.*;
    import javax.media.util.BufferToImage;
    import java.io.IOException;
    import java.net.*;
    import java.awt.*;
    public class ClientMonitorStream
    implements PushBufferStream, MonitorControl, BufferTransferHandler {
    PushBufferStream actual = null;
    boolean dataAvailable = false;
    boolean terminate = false;
    boolean videoPlaying = false;
    Object bufferLock = new Object();
    Buffer cbuffer = new Buffer();
    BufferTransferHandler transferHandler = null;
    Canvas videoCanvas = null;
    BufferToImage bti = null;
    VideoInfo videoinfo = null;
    ClientMonitorStream(PushBufferStream actual, Canvas canvas, VideoInfo videoinfo) {
    System.out.println("Info: inside monitor stream");
         this.actual = actual;
         actual.setTransferHandler(this);
         this.videoCanvas = canvas;
    this.videoinfo = videoinfo;
    if (this.videoinfo != null) {
    this.videoCanvas.setSize(videoinfo.BroadcastSize);
    System.out.println("Info: created new MonitorStream object");
    public javax.media.Format getFormat() {
    System.out.println("Info: inside getFormat");
         return actual.getFormat();
    public void read(Buffer buffer) throws IOException {
    System.out.println("monitor stream: read: inside");
         if (!dataAvailable) {
    System.out.println("monitor stream: read: no data available");
         synchronized (bufferLock) {
    System.out.println("monitor stream: read: no data available, after sync");
              while (!dataAvailable && !terminate) {
              try {
    System.out.println("monitor stream: read: no data available: before wait");
                   bufferLock.wait(1000);
    System.out.println("monitor stream: read: no data available: after wait");
              } catch (InterruptedException ie) {
    System.out.println("transferdata: read: exception");
         if (dataAvailable) {
    System.out.println("monitor stream: read: data available");
         synchronized (bufferLock) {
    System.out.println("monitor stream: read: after sync");
              buffer.copy(cbuffer, true);
    System.out.println("monitor stream: read: after copy");
              dataAvailable = false;
         return;
    public void transferData(PushBufferStream pbs) {
         // Get the data from the original source stream
    System.out.println("transferdata: inside transfer data");
         synchronized (bufferLock) {
    System.out.println("transferdata: transfer data: after sync");
         try {
    System.out.println("transferdata: transfer data: before pbs read");
              pbs.read(cbuffer);
    System.out.println("transferdata: transfer data: after pbs read");
         } catch (IOException ioe) {
    System.out.println("transferdata: transfer data: exception");
              return;
         dataAvailable = true;
    System.out.println("transferdata: transfer data: before notifyAll");
         bufferLock.notifyAll();
    System.out.println("transferdata: transfer data: after notifyAll");
         // Display data if monitor is active
         if (isEnabled()) {
    System.out.println("transferdata: is enabled");
         if (bti == null) {
    System.out.println("transferdata: bti == null");
              VideoFormat vf = (VideoFormat) cbuffer.getFormat();
              bti = new BufferToImage(vf);
         if (bti != null && videoCanvas != null) {
    System.out.println("transferdata: bti != null");
              Image im = bti.createImage(cbuffer);
              Graphics g = videoCanvas.getGraphics();
              if (g != null) {
    System.out.println("transferdata: g != null");
    if (videoinfo.ImageFlipped) {
    System.out.println("transferdata: before draw image");
              g.drawImage(im, 0, im.getHeight(videoCanvas), im.getWidth(videoCanvas), 0, 0, 0, im.getWidth(videoCanvas), im.getHeight(videoCanvas), videoCanvas);
    System.out.println("transferdata: after draw image");
    } else {
              g.drawImage(im, 0, 0, videoCanvas);
         // Maybe synchronize this with setTransferHandler() ?
    //     if (transferHandler != null && videoPlaying)
         if (transferHandler != null)
         transferHandler.transferData(this);
    public void setTransferHandler(BufferTransferHandler transferHandler) {
    System.out.println("setTransferHandler: inside");
         this.transferHandler = transferHandler;
    public boolean setEnabled(boolean value) {
         videoPlaying = value;
    System.out.println("setEnabled: setting enabled flag");
         return videoPlaying;
    public boolean isEnabled() {
         return videoPlaying;
    public Component getControlComponent() {
    System.out.println("getcontrolcomponent: inside");
         return (Component) videoCanvas;
    public float setPreviewFrameRate(float rate) {
         System.err.println("TODO");
         return rate;
    public ContentDescriptor getContentDescriptor() {
    System.out.println("getcontentdescriptor: inside");
         return actual.getContentDescriptor();
    public long getContentLength() {
    System.out.println("getcontentlength: inside");
         return actual.getContentLength();
    public boolean endOfStream() {
    System.out.println("endofstream: inside");
         return actual.endOfStream();
    public Object [] getControls() {
    System.out.println("getcontrols: inside");
         return new Object[0];
    public Object getControl(String str) {
    System.out.println("getcontrol: inside");
         return null;
    Finally in the main program I create a new instance of the VideoBroadcast object and call PrepareVideoCapture initially. When the user clicks the broadcast button, I call startVideoCapture. After the prepare is called, 1 frame is displayed and then nothing, when I start the broadcast a few frames are displayed, it waits several seconds, displays a few more frames, waits, etc. I've checked my PC and performance is okay, memory, CPU, IO all okay, nothing to explain the sparadic activity.
    For those wanting to hack the code a bit, feel free, but if you get it to work, please send me a copy; [email protected]
    The next thing I wanted was to add in the RTPManager, but I need to get the streaming working smoothly, the RTPManager should not help in this, right?

  • How to connect a video capture device to Satellite M30X 127

    I'm going around in circles trying to find a video capture device that will function with a laptop and would be grateful for advice. By way of example, I'm now looking at the 'Canopus ADVC-110', although still looking around (but not Pinnacle, who seem to have a terrible reputation for capture items).
    Problems include:
    1. Main problem is - many video capture external devices require a 'line-in' to PC for good quality audio transfer. This laptop doesn't have a line in, only the mike and headphone jacks. In addition, I've also tried a few RCA pins in the 3.5mm microphone/headphones jack and they were too small. How to solve the problem of getting audio from vcr to my PC?
    2. The ADVC-110 connects to the PC via Firewire (and S-video), but is a SIX-pin type. M30X is a FOUR-pin type. Are there adapters available?
    3. Some capture programmes seem to require huge capacity of RAM. Is a laptop going to be suitable to do the job? (I simply want to capture old vhs tapes from vcr to PC, then burn to DVD with Nero 7 or similar).
    Thanks in advance!

    Hello
    You are right! You must use external device for signal transfer to your notebook. I dont know where you have this info but I have good experiences with Pinnacle product. For data transfer I have used USB port.
    'Canopus ADVC-110 is not known to me but I dont see any reason why this should not work well. Use delivered software for video capturing and there should not be any problem.
    Only thing is that after recording the whole video material must be prepared for burning and unit need a lot of power to do this well und fast. When you buy this and want to use on right way I recommend you to expand RAM to 1GB.
    Compatible memory modules for your Satellite M30x are:
    PC2700 512MB (PA3312U-1M51)
    PC2700 1024MB (PA3313U-1M1G)
    Bye

  • Video capture card for 64 bit operating systems

    We capture video that comes in analogue from a satellite feed.  It comes in 24 hours per day.  I have taken that and fed into a pci Green Valley Canopus capture card ACEDVio, (RCA fittings), and then I capture using Scenalyer.  I have done this for three years, with great success. Since I am now using Windows 7, I have discovered that The Green Valley card does NOT work with 64 bit.  I contacted Gree Valley and they admit that it will not work.  The EXTERNAL Canopus 110 does work, but it is not reliable for 24/7 use, because sometimes it will shut down.  I need an internal card that will stay on all of the time.  Can anyone help with this?

    John,
    Thank you for taking the time to offer a responce. As to the "dual boot" suggestion: I do not know how to do that, although I could research just how to do it.  My conserns are: XP is being completely abandoned by Microsoft.  I am challenged every time that I have to do a re-install using XP, (I manage 26 computers for a company). For about a year now, it has been more and more time consumng, because Microsoft seems to be making it that way.  I am guessing that the "XP" part would be for running 32 bit and the Win 7 part would be for the 64 bit, is that true?  More on the subject would be good.  Where to find inforation as to using that option.
    It would be great if there was a video capture card that would work with Premiere and the  Win 7 64 bit operating system. There must be someone that makes one.  A guy at Tigert Direct suggested a Haupauge WinTV-HVR1250.  I am going to have to call Haupauge to confirm.  The biggest thing is ALWAYS that it will work with Premiere, and our Scenalyzer program

  • Video capture and than transmit it

    After I made live video capture from (and play it with Man Media Player) I want to transmit this stram (using RTP) to other computer. How could I do this? Thank you.

    I used VideoTransmit.java sample from Sun (JMF solutions...). My problem is: I want see what I transmit. For this I need a Player for my Data Source. If I used a player for my Data Source I cann't used it for transmit. It is already allocated. I could clone my data source and use one for player and the other one for transmit. It works thus. I tried it. But the stream locks from time to time. I need other solution. If I used JMStudio->File->Transmit... the stream is played and transmited very good.

  • I need a video capture device for downloading Band and family video tapes.

    Hi,  I need to download some old video tapes before they turn to dust.  Are there any fairly inexpensive video capture devices that work well with the Imac?
    Thanks

    Are they VHS video cassettes or something like 8MM camcorder tapes?
    If they're camcorder tapes, usually it's best to try to buy an old video camera (MUST have FIREWIRE port).
    Then you can play the tape in the camera and capture from the Firewire. Also important, if you have a 2010 (maybe 2009?) or newer iMac, you'll need a cable that is Firewire 400 to fit the camera at one end and Firewire 800 at the other end to connect to the iMac.

  • Compatible video capture cards

    Any advice on video capture cards that works well with Premiere Pro CS6?

    Analog: Over a Grass Valley ADVC-100+ device
    DV: Direct from camera or over the Grass Valley ADVC-100+ device
    H.264: Can not be captured, must be imported by copying to hard disk.

Maybe you are looking for

  • Adjust volume via iTunes for multiple speakers

    I upgraded my iTunes to 6.02 and finally it is possible to select multiple AE and my PC at the same time to stream music to them. It works almost perfect for me! Just one thing bugs me: I can't adjust the volume on my AE via Airtunes if I selected my

  • How to find out the Queries Generated for a particular ods?

    Hi all, There are atleast 10 queries generated for a Particular ODs zyyyyy. I would like to know what are the queries generated for a particular ods. I have used the where use list of the ods. But it did not displayed the queries generated for that o

  • OS hang on permissions repair--help!

    Hi all- My Mac Pro started locking up the other day. The cursor still moved, but everything else frozen. It would happen consistently within about 5 minutes of finishing the booting process. There'd be some disk activity for about five minutes and th

  • How can I rearrange a form

    Hello everyone I'm making a very complex form in muse, I say complex because it has a lots of items and I have two questions 1) How can i rearrage the fields and checkboxes if the client wants to add a field for example? The order of the fields and c

  • Import eif files of OFA to Oracle 10g

    I have exported my super and shared databases of OFA into "eif" files. Pls tell me how i should import it into Oracle 10g database and subsequently view it using BI Beans or Discoverer. Thanks, Krishanu