How to video frame capture?

What's the best way to capture an individual frame(s) of a video as a jpg file
I read somewhere that you can do this with Quicktime pro, but have not been able to confirm.
there are other software applications available, such as "video frame capture for mac" for $25.
Would prefer some freeware if possible.
Thanks!

You've posted in the Windows side of these Discussions pages but list a Mac profile.
Open the QuickTime file with the free QuickTime Player.
Position the "playhead" (movie controller) on the frame you want to capture. Right/left arrow keys step one frame at a time.
Command-C (Control-C for Windows) to get a capture. To get a larger sized image use the grow window (lower right corner of the Player window) and drag it down and to the right.
Open an image editing app, size a new document to the dimensions of your capture and "paste". Save as to any format you desire.

Similar Messages

  • LR 5.5 - Cannot export/publish to HDD or Flickr from video frame capture - "An internal error has occurred: assertion failed"

    Basically as the title states, I cannot publish a set of photos that originated as video frame captures, whether to my hard drive or using a service plugin for Flickr. I have tried multiple publish service plugins for Flickr and everything fails precisely the same way. This only happens when I add photos to the collection that are JPG's derived from video, and it only started doing this recently. I have other frame captures that I uploaded just fine, but it appears that nothing from the set I worked on the other day wants to upload. Other NEF-derived photos from the same set work just fine.
    All I get is a Warning dialog stating that an error has occurred while the main dialog stops on "Preparing to export...", then it kicks me back with no action taken when I click OK. The status in the upper left says "Updating Published Collections". If I remove the new frame capture photo, it works fine, but as soon as I add one to the collection, it fails to publish.
    I updated from 5.4 to 5.5, tried new publish plugins, completely removed and recreated my local profile, reimported my catalog, all to no avail. Everything worked fine two days ago, then when I went to upload my latest edits yesterday, I started receiving the error and have had no luck fixing it.
    I used debugView to capture a log as the error occurred, so I can provide that for a developer or support contact if required.
    EDIT: I just tried choosing some different photos in the set, and most appear to work, so it is just some particular images that it does not like. I will try to narrow it down.
    Message was edited by: Andrew Morton

    I narrowed it down to one photo in particular that it does not like. It's not a deal-breaker, but I am still curious what is going on that is causing that one photo being in a set to break the publish process

  • Video frame capture SW?

    I need to capture still video frames from a couple movies to use the graphics for DVD labels. I need software that is freeware or dirt cheap as I wont be doing this again.
    Xilisoft.com makes such software but I dont want to spend $30 for something I use once. Its trial version slaps their logo on everything making it useless.
    Any ideas? I really dont want to use "Grab" if I dont have to.
    Suggestions?

    MPEG Streamclip will do this. It is free from Squared 5.
    Drag your file into MPEG Streamclip. Move the playhead to the frame you want. Then FILE/EXPORT STILL FRAME. Select JPEG PNG or TIFF and save to location of your choice.

  • Video Frame Capture

    Can you capture individual video frames for sharing or printing using Premiere Elements?

    I am with you pal.  Jpeg never has the same quality as an original when viewed up close, and discerning pros will definitely be looking close.  However, when outputting your work, always consider your target.  I do a lot of posts to my Facebook with photographs.  I start with 8megapixel images, crop and enlarge in camera raw, clean some dust, save them in TIFF, then run automation actions in photoshop to add watermarks and save for web, with settings that are conducive to the type of image (action still, steady still, noise reduced still), which saves as Jpeg in a 1920x1080 or similar size based on the crop.  This saves a high def image with some smoothing of the pixels, with a standardized internet rgb color balance.  It holds fairly close to the real file, and from screen size, it's really difficult to tell a difference without pressing your face against the screen.  By compressing with the save for web, I can control the smooth\sharp compression artifacts to a greater degree, and I can ensure a smaller file size for use on the web.  Since most of my audience will sit back and enjoy (i.e., not the most discerning of eyes and not pressing faces against their screen), Jpeg will do fine.
    As for screen caps from video... ...they are never clear when using a single frame.  If you can find two or more frames that don't have motion, export all of them, and have them process together, like with photoshop auto blend, you can usually get better results.  Personally, I process each as an HDR.  The best way I've found for extracting the frames is to create a dupe sequence, then add edit marks around the frames you want, export that to AE, and have AE export to image files as TIFF.  Then I go to work.  I dupe each frame at least twice, and process dark, and light, adding clarity and processing for the detail in each, then I process the main image for the smoother details like solids or skin tones, and combine each set to make an HDR, then I stack the TIFFs again, auto blend and make any adjustments to get the detail.
    I use this when making the main menus of some video discs.  It's an emotional linkup when you're working on a family oriented project (wedding, bar\bat mitzvah, christening, baptism, etc), and it always ups the sell when you show the previews.  On faster systems this doesn't take long, but on my mobile setup, the processing takes hours, while the actual work is more like minutes.  It results in great images, with exceptional clarity.  Even when compressed, they retain better sharpness.

  • Video frame capture/save/ftp/repeat ad infinitum

    I am looking for MacIntosh software with the following capability.
    1. Capture one frame of video as a JPG from a DV cam
    2. Automatically adjust the captured jpg to a particular specified size
    3. Automatically place this jpg in a specified folder with a computer generated name
    4. Automatically upload this jpg to a specified FTP location.
    5. Automatically repeat this process every 10 minutes
    6. Runs indefinently
    OS 10.3.9 preferred but any later level OK.
    This software must exist but I have only been able to find software which does pieces of this process. I have found this software for Windows!
    This is intended for use as a "weather cam" but it would also be useful for security applications.

    I am looking for MacIntosh software with the following capability.
    1. Capture one frame of video as a JPG from a DV cam
    2. Automatically adjust the captured jpg to a particular specified size
    3. Automatically place this jpg in a specified folder with a computer generated name
    4. Automatically upload this jpg to a specified FTP location.
    5. Automatically repeat this process every 10 minutes
    6. Runs indefinently
    OS 10.3.9 preferred but any later level OK.
    This software must exist but I have only been able to find software which does pieces of this process. I have found this software for Windows!
    This is intended for use as a "weather cam" but it would also be useful for security applications.

  • This is how you extract frames from video

    right then, in answer to many posts about how to get the individual frames from video, here is my solution. it seems to work with mpg files but it doesnt seem to work with any of the avi files i tried. not sure why it doesnt work with those. i have modified javas frame access.
    nothing is displayed except it prints which frame it is doing.
    if anyone wants to improve it, please do. i still dont understand fully how it works so i probably wont be able to answer many questions about it. anyway here it is:
    * @(#)FrameAccess.java 1.5 01/03/13
    * Copyright (c) 1999-2001 Sun Microsystems, Inc. All Rights Reserved.
    * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
    * modify and redistribute this software in source and binary code form,
    * provided that i) this copyright notice and license appear on all copies of
    * the software; and ii) Licensee does not utilize the software in a manner
    * which is disparaging to Sun.
    * This software is provided "AS IS," without a warranty of any kind. ALL
    * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
    * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
    * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
    * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
    * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
    * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
    * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
    * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
    * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
    * POSSIBILITY OF SUCH DAMAGES.
    * This software is not designed or intended for use in on-line control of
    * aircraft, air traffic, aircraft navigation or aircraft communications; or in
    * the design, construction, operation or maintenance of any nuclear
    * facility. Licensee represents and warrants that it will not use or
    * redistribute the Software for such purposes.
    import java.awt.*;
    import javax.media.*;
    import javax.media.control.TrackControl;
    import javax.media.Format;
    import javax.media.format.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.imageio.stream.*;
    import java.awt.image.*;
    import java.util.*;
    import javax.media.util.*;
    * Sample program to access individual video frames by using a
    * "pass-thru" codec. The codec is inserted into the data flow
    * path. As data pass through this codec, a callback is invoked
    * for each frame of video data.
    public class FrameAccess implements ControllerListener {
         Processor p;
         Object waitSync = new Object();
         boolean stateTransitionOK = true;
         public boolean alreadyPrnt = false;
         * Given a media locator, create a processor and use that processor
         * as a player to playback the media.
         * During the processor's Configured state, two "pass-thru" codecs,
         * PreAccessCodec and PostAccessCodec, are set on the video track.
         * These codecs are used to get access to individual video frames
         * of the media.
         * Much of the code is just standard code to present media in JMF.
         public boolean open(MediaLocator ml) {
              try {
                   p = Manager.createProcessor(ml);
              } catch (Exception e) {
                   System.err.println(
                        "Failed to create a processor from the given url: " + e);
                   return false;
              p.addControllerListener(this);
              // Put the Processor into configured state.
              p.configure();
              if (!waitForState(Processor.Configured)) {
                   System.err.println("Failed to configure the processor.");
                   return false;
              // So I can use it as a player.
              p.setContentDescriptor(null);
              // Obtain the track controls.
              TrackControl tc[] = p.getTrackControls();
              if (tc == null) {
                   System.err.println(
                        "Failed to obtain track controls from the processor.");
                   return false;
              // Search for the track control for the video track.
              TrackControl videoTrack = null;
              for (int i = 0; i < tc.length; i++) {
                   if (tc.getFormat() instanceof VideoFormat) videoTrack = tc[i];
                   else     tc[i].setEnabled(false);
              if (videoTrack == null) {
                   System.err.println("The input media does not contain a video track.");
                   return false;
              String videoFormat = videoTrack.getFormat().toString();
              Dimension videoSize = parseVideoSize(videoFormat);
              System.err.println("Video format: " + videoFormat);
              // Instantiate and set the frame access codec to the data flow path.
              try {
                   Codec codec[] = { new PostAccessCodec(videoSize)};
                   videoTrack.setCodecChain(codec);
              } catch (UnsupportedPlugInException e) {
                   System.err.println("The process does not support effects.");
              // Realize the processor.
              p.prefetch();
              if (!waitForState(Processor.Prefetched)) {
                   System.err.println("Failed to realise the processor.");
                   return false;
              p.start();
              return true;
         /**parse the size of the video from the string videoformat*/
         public Dimension parseVideoSize(String videoSize){
              int x=300, y=200;
              StringTokenizer strtok = new StringTokenizer(videoSize, ", ");
              strtok.nextToken();
              String size = strtok.nextToken();
              StringTokenizer sizeStrtok = new StringTokenizer(size, "x");
              try{
                   x = Integer.parseInt(sizeStrtok.nextToken());
                   y = Integer.parseInt(sizeStrtok.nextToken());
              } catch (NumberFormatException e){
                   System.out.println("unable to find video size, assuming default of 300x200");
              System.out.println("Image width = " + String.valueOf(x) +"\nImage height = "+ String.valueOf(y));
              return new Dimension(x, y);
         * Block until the processor has transitioned to the given state.
         * Return false if the transition failed.
         boolean waitForState(int state) {
              synchronized (waitSync) {
                   try {
                        while (p.getState() != state && stateTransitionOK)
                             waitSync.wait();
                   } catch (Exception e) {
              return stateTransitionOK;
         * Controller Listener.
         public void controllerUpdate(ControllerEvent evt) {
              if (evt instanceof ConfigureCompleteEvent
                   || evt instanceof RealizeCompleteEvent
                   || evt instanceof PrefetchCompleteEvent) {
                   synchronized (waitSync) {
                        stateTransitionOK = true;
                        waitSync.notifyAll();
              } else if (evt instanceof ResourceUnavailableEvent) {
                   synchronized (waitSync) {
                        stateTransitionOK = false;
                        waitSync.notifyAll();
              } else if (evt instanceof EndOfMediaEvent) {
                   p.close();
                   System.exit(0);
         * Main program
         public static void main(String[] args) {
              if (args.length == 0) {
                   prUsage();
                   System.exit(0);
              String url = args[0];
              if (url.indexOf(":") < 0) {
                   prUsage();
                   System.exit(0);
              MediaLocator ml;
              if ((ml = new MediaLocator(url)) == null) {
                   System.err.println("Cannot build media locator from: " + url);
                   System.exit(0);
              FrameAccess fa = new FrameAccess();
              if (!fa.open(ml))
                   System.exit(0);
         static void prUsage() {
              System.err.println("Usage: java FrameAccess <url>");
         * Inner class.
         * A pass-through codec to access to individual frames.
         public class PreAccessCodec implements Codec {
              * Callback to access individual video frames.
              void accessFrame(Buffer frame) {
                   // For demo, we'll just print out the frame #, time &
                   // data length.
                   long t = (long) (frame.getTimeStamp() / 10000000f);
                   System.err.println(
                        "Pre: frame #: "
                             + frame.getSequenceNumber()
                             + ", time: "
                             + ((float) t) / 100f
                             + ", len: "
                             + frame.getLength());
              * The code for a pass through codec.
              // We'll advertize as supporting all video formats.
              protected Format supportedIns[] = new Format[] { new VideoFormat(null)};
              // We'll advertize as supporting all video formats.
              protected Format supportedOuts[] = new Format[] { new VideoFormat(null)};
              Format input = null, output = null;
              public String getName() {
                   return "Pre-Access Codec";
              //these dont do anything
              public void open() {}
              public void close() {}
              public void reset() {}
              public Format[] getSupportedInputFormats() {
                   return supportedIns;
              public Format[] getSupportedOutputFormats(Format in) {
                   if (in == null)
                        return supportedOuts;
                   else {
                        // If an input format is given, we use that input format
                        // as the output since we are not modifying the bit stream
                        // at all.
                        Format outs[] = new Format[1];
                        outs[0] = in;
                        return outs;
              public Format setInputFormat(Format format) {
                   input = format;
                   return input;
              public Format setOutputFormat(Format format) {
                   output = format;
                   return output;
              public int process(Buffer in, Buffer out) {
                   // This is the "Callback" to access individual frames.
                   accessFrame(in);
                   // Swap the data between the input & output.
                   Object data = in.getData();
                   in.setData(out.getData());
                   out.setData(data);
                   // Copy the input attributes to the output
                   out.setFlags(Buffer.FLAG_NO_SYNC);
                   out.setFormat(in.getFormat());
                   out.setLength(in.getLength());
                   out.setOffset(in.getOffset());
                   return BUFFER_PROCESSED_OK;
              public Object[] getControls() {
                   return new Object[0];
              public Object getControl(String type) {
                   return null;
         public class PostAccessCodec extends PreAccessCodec {
              // We'll advertize as supporting all video formats.
              public PostAccessCodec(Dimension size) {
                   supportedIns = new Format[] { new RGBFormat()};
                   this.size = size;
              * Callback to access individual video frames.
              void accessFrame(Buffer frame) {
                   // For demo, we'll just print out the frame #, time &
                   // data length.
                   if (!alreadyPrnt) {
                        BufferToImage stopBuffer = new BufferToImage((VideoFormat) frame.getFormat());
                        Image stopImage = stopBuffer.createImage(frame);
                        try {
                             BufferedImage outImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
                             Graphics og = outImage.getGraphics();
                             og.drawImage(stopImage, 0, 0, size.width, size.height, null);
                             //prepareImage(outImage,rheight,rheight, null);
                             Iterator writers = ImageIO.getImageWritersByFormatName("jpg");
                             ImageWriter writer = (ImageWriter) writers.next();
                             //Once an ImageWriter has been obtained, its destination must be set to an ImageOutputStream:
                             File f = new File(frame.getSequenceNumber() + ".jpg");
                             ImageOutputStream ios = ImageIO.createImageOutputStream(f);
                             writer.setOutput(ios);
                             //Finally, the image may be written to the output stream:
                             //BufferedImage bi;
                             //writer.write(imagebi);
                             writer.write(outImage);
                             ios.close();
                        } catch (IOException e) {
                             System.out.println("Error :" + e);
                   //alreadyPrnt = true;
                   long t = (long) (frame.getTimeStamp() / 10000000f);
                   System.err.println(
                        "Post: frame #: "
                             + frame.getSequenceNumber()
                             + ", time: "
                             + ((float) t) / 100f
                             + ", len: "
                             + frame.getLength());
              public String getName() {
                   return "Post-Access Codec";
              private Dimension size;

    The quality of the produced video from this example is very poor.
    It comes to huuuuge surprise the following fact.
    If you comment the line where you set the PostAccessCodec, the chain of the codecs is:
    MPEG-1 decoder -> YUV2RGB -> Direct Draw Renderer. ( The one used from the system to decode and render)
    If you run the example purely as is above you get the following sequence(as long with the poor quality):
    MPEG-1 decoder -> YUV2RGB -> Windows GDI Renderer.
    So you say lets set another Renderer. So
    you add the following line videoTracker.setRenderer( new DDRenderer() )
    What comes to a surprise is the following chain of codecs:
    MPEG-1 decoder -> YUV2RGB -> Post Codec -> Java RGB Converter - > DDRenderer
    The quality now may be perfect but video runs to slow. The surprising thing here is that even though we have set the outputFormat of the PostAccessFrame codec to RGBFormat the system converts it again to RGB through codec Java RGB Format.
    After searching a lot and reaching the conclusion that the deference between the 2 RGB's is their sizes I sudently was brought in front of a method called grabFrame(). Bels started ringing inside my head. Starts were comming up. Looking at the definition of the class com.sun.media.renderer.video.DDRenderer I descovered that this damn class implements the FrameGrabbingControl Interface. What the f.....? The problem that consumed 4 days of my life and multiplied with 10 to give hours has finally come to an and.
    Summing up the solution for grabbing frames is this!!!!!
    DDRenderer renderer = new DDRenderer();
    videoTrack.setRenderer( renderer );
    and in your actionPerformed implementation
    FrameGrabbingControl fr = (FrameGrabbingControl)renderer.getControl( "javax.media.control.FrameGrabbingControl");
    Buffer frame = fr.grabFrame();
    The following stuff ...are stated in FrameAccess
    --Sniper

  • How to use the frameaccess code to convert video frames to jpeg files

    Hello everyone. I am working on a project on video processing, and i need to be able to do image processing on individual video frames. However, to do this, I need to convert the frames to an appropriate format, namely jpeg. It is actually the conversion from buffer frame to BufferedImage that is important, as i already have an approximate knowledge of filewriter for the saving of already rendered file.
    The original frameaccess code can be found here: http://java.sun.com/products/java-media/jmf/2.1.1/solutions/FrameAccess.html
    there are several other threads tied to this topic, some of which do not work for me, or simply do not suit my needs, so please do not link me to them unless you are sure its the real solution.
    if any one could help me by showing me the way of doing it correctly, and maybe give a nice short explanation, i would be very grateful.
    Thanks you.
    P.s: i am only a beginner to intermediate student in java and programming in general so...

    Here is the code i am currently using.
    package Test;
    import java.io.*;
    import java.util.*;
    import java.awt.*;
    import javax.media.*;
    import javax.media.control.TrackControl;
    import javax.media.Format;
    import javax.media.format.*;
    import javax.media.bean.playerbean.MediaPlayer;
    import javax.media.util.*;
    import java.awt.image.BufferedImage;
    import java.awt.image.RenderedImage;
    import java.awt.image.*;
    import javax.imageio.ImageWriter;
    import javax.imageio.ImageIO;
    import javax.media.control.FrameGrabbingControl;
    * Sample program to access individual video frames by using a
    * "pass-thru" codec. The codec is inserted into the data flow
    * path. As data pass through this codec, a callback is invoked
    * for each frame of video data.
    public class FrameAccess extends Frame implements ControllerListener {
    Processor p;
    Object waitSync = new Object();
    boolean stateTransitionOK = true;
    * Given a media locator, create a processor and use that processor
    * as a player to playback the media.
    * During the processor's Configured state, two "pass-thru" codecs,
    * PreAccessCodec and PostAccessCodec, are set on the video track.
    * These codecs are used to get access to individual video frames
    * of the media.
    * Much of the code is just standard code to present media in JMF.
    public boolean open(MediaLocator ml) {
         try {
         p = Manager.createProcessor(ml);
         } catch (Exception e) {
         System.err.println("Failed to create a processor from the given url: " + e);
         return false;
         p.addControllerListener(this);
         // Put the Processor into configured state.
         p.configure();
         if (!waitForState(p.Configured)) {
         System.err.println("Failed to configure the processor.");
         return false;
         // So I can use it as a player.
         p.setContentDescriptor(null);
         // Obtain the track controls.
         TrackControl tc[] = p.getTrackControls();
         if (tc == null) {
         System.err.println("Failed to obtain track controls from the processor.");
         return false;
         // Search for the track control for the video track.
         TrackControl videoTrack = null;
         for (int i = 0; i < tc.length; i++) {
         if (tc.getFormat() instanceof VideoFormat) {
              videoTrack = tc[i];
              break;
         if (videoTrack == null) {
         System.err.println("The input media does not contain a video track.");
         return false;
         System.err.println("Video format: " + videoTrack.getFormat());
         // Instantiate and set the frame access codec to the data flow path.
         try {
         Codec codec[] = { new PreAccessCodec(),
                        new PostAccessCodec()};
         videoTrack.setCodecChain(codec);
         } catch (UnsupportedPlugInException e) {
         System.err.println("The process does not support effects.");
         // Realize the processor.
         p.prefetch();
         if (!waitForState(p.Prefetched)) {
         System.err.println("Failed to realize the processor.");
         return false;
         // Display the visual & control component if there's one.
         setLayout(new BorderLayout());
         Component cc;
         Component vc;
         if ((vc = p.getVisualComponent()) != null) {
         add("Center", vc);
         if ((cc = p.getControlPanelComponent()) != null) {
         add("South", cc);
         // Start the processor.
         p.start();
         setVisible(true);
         return true;
    public void addNotify() {
         super.addNotify();
         pack();
    * Block until the processor has transitioned to the given state.
    * Return false if the transition failed.
    boolean waitForState(int state) {
         synchronized (waitSync) {
         try {
              while (p.getState() != state && stateTransitionOK)
              waitSync.wait();
         } catch (Exception e) {}
         return stateTransitionOK;
    * Controller Listener.
    public void controllerUpdate(ControllerEvent evt) {
         if (evt instanceof ConfigureCompleteEvent ||
         evt instanceof RealizeCompleteEvent ||
         evt instanceof PrefetchCompleteEvent) {
         synchronized (waitSync) {
              stateTransitionOK = true;
              waitSync.notifyAll();
         } else if (evt instanceof ResourceUnavailableEvent) {
         synchronized (waitSync) {
              stateTransitionOK = false;
              waitSync.notifyAll();
         } else if (evt instanceof EndOfMediaEvent) {
         p.close();
         System.exit(0);
    * Main program
    public static void main(String [] args) throws IOException {
         /*if (args.length == 0) {
         prUsage();
         System.exit(0);
         //String url = args[0];
         String url = new String ("file:D:FiMs/avpr.avi");
         if (url.indexOf(":") < 0) {
         prUsage();
         System.exit(0);
         MediaLocator ml;
         //MediaPlayer mp1 = new javax.media.bean.playerbean.MediaPlayer();
         //mp1.setMediaLocation(new java.lang.String("file:D:/FiMs/299_01_hi.mpg"));
         //mp1.start();
         if ((ml = new MediaLocator(url)) == null) {
         System.err.println("Cannot build media locator from: " + url);
         System.exit(0);
         FrameAccess fa = new FrameAccess();
         if (!fa.open(ml))
         System.exit(0);
    static void prUsage() {
         System.err.println("Usage: java FrameAccess <url>");
    * Inner class.
    * A pass-through codec to access to individual frames.
    public class PreAccessCodec implements Codec {
    * Callback to access individual video frames.
         void accessFrame(Buffer frame) {
         // For demo, we'll just print out the frame #, time &
         // data length.
         long t = (long)(frame.getTimeStamp()/10000000f);
         System.err.println("Pre: frame #: " + frame.getSequenceNumber() +
                   ", time: " + ((float)t)/100f +
                   ", len: " + frame.getLength());
         * The code for a pass through codec.
         // We'll advertize as supporting all video formats.
         protected Format supportedIns[] = new Format [] {
         new VideoFormat(null)
         // We'll advertize as supporting all video formats.
         protected Format supportedOuts[] = new Format [] {
         new VideoFormat(null)
         Format input = null, output = null;
         public String getName() {
         return "Pre-Access Codec";
         // No op.
    public void open() {
         // No op.
         public void close() {
         // No op.
         public void reset() {
         public Format [] getSupportedInputFormats() {
         return supportedIns;
         public Format [] getSupportedOutputFormats(Format in) {
         if (in == null)
              return supportedOuts;
         else {
              // If an input format is given, we use that input format
              // as the output since we are not modifying the bit stream
              // at all.
              Format outs[] = new Format[1];
              outs[0] = in;
              return outs;
         public Format setInputFormat(Format format) {
         input = format;
         return input;
         public Format setOutputFormat(Format format) {
         output = format;
         return output;
         public int process(Buffer in, Buffer out) {
         // This is the "Callback" to access individual frames.
         accessFrame(in);
         // Swap the data between the input & output.
         Object data = in.getData();
         in.setData(out.getData());
         out.setData(data);
         // Copy the input attributes to the output
         out.setFormat(in.getFormat());
         out.setLength(in.getLength());
         out.setOffset(in.getOffset());
         return BUFFER_PROCESSED_OK;
         public Object[] getControls() {
         return new Object[0];
         public Object getControl(String type) {
         return null;
    public class PostAccessCodec extends PreAccessCodec {
         // We'll advertize as supporting all video formats.
         public PostAccessCodec() {
         supportedIns = new Format [] {
              new RGBFormat()
    * Callback to access individual video frames.
         void accessFrame(Buffer frame) {
         // For demo, we'll just print out the frame #, time &
         // data length.
         long t = (long)(frame.getTimeStamp()/10000000f);
         System.err.println("Post: frame #: " + frame.getSequenceNumber() +
                   ", time: " + ((float)t)/100f +
                   ", len: " + frame.getLength());
         public String getName() {
         return "Post-Access Codec";
    and here is what itprabhu5 proposed to use to convert and save the frames as .png(or .jpeg in the same way)
    import java.io.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.image.*;
    import javax.imageio.*;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.format.*;
    import javax.media.util.*;
    * Grabs a frame from a Webcam, overlays the current date and time, and saves the frame as a PNG to c:\webcam.png
    * @author David
    * @version 1.0, 16/01/2004
    public class FrameGrab
         public static void main(String[] args) throws Exception
              // Create capture device
              CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
              Player player = Manager.createRealizedPlayer(deviceInfo.getLocator());
              player.start();
              // Wait a few seconds for camera to initialise (otherwise img==null)
              Thread.sleep(2500);
              // Grab a frame from the capture device
              FrameGrabbingControl frameGrabber = (FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
              Buffer buf = frameGrabber.grabFrame();
              // Convert frame to an buffered image so it can be processed and saved
              Image img = (new BufferToImage((VideoFormat)buf.getFormat()).createImage(buf));
              BufferedImage buffImg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
              Graphics2D g = buffImg.createGraphics();          
              g.drawImage(img, null, null);
              // Overlay curent time on image
              g.setColor(Color.RED);
              g.setFont(new Font("Verdana", Font.BOLD, 16));
              g.drawString((new Date()).toString(), 10, 25);
              // Save image to disk as PNG
              ImageIO.write(buffImg, "png", new File("c:\\webcam.png"));
              // Stop using webcam
              player.close();
              player.deallocate();
              System.exit(0);                    
    however, i am unable to use it together with my code... i m not even sure if im using it at the right place.. (note that u will have to discard some lines from the second code, because it is actually grabbing frames from a webcam in that example)
    if any1 can make it happen please help me. thx.

  • How to make the graph follows the position of the video frame

    Hai..
    I want to open the video (. avi) and graph together in one VI.. The videos and graphs can be controlled (forwarded or rewind) in the desired position.. However, the graph should follow where's the position of the video frame..   The graph generated from the data in excel, after reading data, then there is the processing of signals, such as filter, mean, find the peak, etc.. After that the result will appear in the graph..
    Until now, I've been able to display video and graph.. I'm trying to use WMP and also IMAQ..
    Because I want to show the position of the graph or signal when the video plays, I was making a cursor or a line on a graph that follows the position of the video..
    First, I'm trying using WMP.. I can forward and rewind video using WMP, after that I make a cursor on the graph and the position of cursor I put in the position video.. And then when I run the program, the signal that arises from the right, but the cursor in the graph follow the position of the video (the cursor appears on the left) different side with the signal..
    I also tried using IMAQ when I tried to use the video controls, so the video can be forward or rewind using the slide, and I made a graph control to follow the video.. But the video isn't playing, it just show only images or frame in the video..
    Can we create a graph that can follow the position of the video? (graph can be in forward and rewind just like with video)
    I've tried many ways but until now have not been successful.. can someone help me?
    Any help is greatly appreciated thank you.

    This should do pretty much what you want, assuming that a slider is how you are controlling your video position. You are going to have to play around with it a little but it should give you the basic idea.
    Attachments:
    Slider.vi ‏35 KB

  • If I have a list of Vimeo videos on a webpage, how can I use just one video frame and have all videos play in that one frame?

    I am creating a page with a list of Vimeo video links. I want to have only one video frame on the page. So no matter which video link a user clicks on, the chosen video needs to play in that one video frame on the page. How do I do this in Muse?
    Thanks.

    You can use composition widget for this. Insert the video details in trigger container and then insert that corresponding vimeo video widget in that specific target container. So It would work like, users will click on different video buttons but the actual video will play on same frame which is actually a target container of composition.
    The ID that we use for vimeo widget cannot be used for different videos on same time , because every video shares its own ID and url. But you can surely try the above.
    Thanks,
    Sanjit

  • How do I create a title whose size matches my video frame size?

    How do I create a 1920x1080 title?
    I'm using Premiere Pro CS4 on Windows 7.  I created a default title.  If I right-click on the title in the Project Explorer and select properties, it says:
      Title Size: 720 x 480
      Pixel Depth: 32
      Pixel Aspect Ratio: 0.9091
    If I drag this title onto a sequence onto a sequence created from the "AVHCD 1080i30 (60i)" preset then the title is automagically scaled to try to get it to fit into the 1920x1080 frame, resulting in a tiny title centered in the frame.  I can make things better by right-clicking the title in the timeline and selecting "Scale to frame size", but that's not a particularly elegant solution (and the title, as displayed in the title editor, still doesn't exactly match the title displayed in the previous monitor).
    How do I create and edit a title whose size matches my video frame size?

    Thanks guys!  I created the first title in a 640x480 sequence and didn't notice that I had the option to fiddle with the frame size when I created it.  Subsequently, I created new titles by duplicating a previously created title (which I had set up with desired font, effects, etc.) and just changing the title text in the title designer.  This worked great as long as I was making titles for a 640x480 sequence.  But when I tried to use a copy of this title in a different sized sequence then things got weird on me.  I spent way too long trying to find the option to resize the title before I finally gave up and decided to spend the time to figure out how to post a question in this forum.
    Just to verify how things work, I verified that the size of a new title does, indeed, default to the size of the currently selected sequence.  No idea what would happen if I had multiple sequences displayed simultaneously.
    Any idea how to change the size of an existing title?
    Bob

  • I have a big problem with my Iphone 4...the pics and videos that i capture, often shows as inverted or orientted by 90/180/270 degrees. photos, one can rotate, but how about videos... is there any way i'm going wrong? this wasn't happening earlier

    My question...
    any answers pl.
    I have a big problem with my Iphone 4...the pics and videos that i capture, often shows as inverted or orientted by 90/180/270 degrees. photos, one can rotate, but how about videos... is there any way i'm going wrong? this wasn't happening earlier

    If I've understood you correctly then the ALLEXCEPT function may be what you're after and it could be applied in a similar way to the following...
    =
    RANKX(
    ALL(Table1),
    CALCULATE(
    COUNTROWS(table1),
    ALLEXCEPT(Table1, Table1[ContactReason])
    DENSE
    If this has missed the mark, would it be possible to clarify the requirement further?
    Regards,
    Michael Amadi
    Please use the 'Mark as answer' link to mark a post that answers your question. If you find a reply helpful, please remember to vote it as helpful :)
    Website: http://www.nimblelearn.com
    Blog: http://www.nimblelearn.com/blog
    Twitter: @nimblelearn

  • Video Structure..How to get Frame i? help...

    standard video coding made by a Group of Picture(GOP), GOP it self made by few kind of frame/picture.
    Frame i, Frame p, Frame B, dan Frame D. Frame i is a frame that decode without any reference to another picture, this is the first frame in GOP.All i have is a theory, do anyone know how to get Frame i in JMF?

    Ok.
    I think you have a JFrame and
    a JPanel added to JFrame,
    And this JPanel contains JButton, Am I right?
    Then
    Container parent = button.getParent(); //this will be the JPanel
    Container grandParent = parent.getParent(); //this will be your JFrame
    BR

  • How to import video frames as layers in Photoshop?

    How to import video as layers in PhotoshopCS3. When I press "Import Video Frames To Layers", an error message pops up: Could not complete the Video Frames to Layers command because the QuickTime version 7.1 or later is required." I've already installed and updated QuickTime Player, but this message persists. I'm currently running QuickTime version 7.7.5. Thank you for your help.

    Thank you R_Kelky for your reply.
    I'm running Windows 8.1. I do see the QuickTimeGlue.dll file as you stated.
    I have actually found a solution to my question. Since QuickTime 7.7.5 might be too new, I tried installing QuickTime 7.1 and the message went away. But now I run into a new problem: only .avi and a few .mov files can be uploaded correctly. When I try to upload other common video formats like .mp4, .m4v, etc, then the layers just come out as black, white, and sometimes green layers. The preview window where I drag the range length of video I want to import as layers is also blank as black, white, or sometimes green. You have any ideas what's causing this? At times, I cant even see the preview, I just get a new error message: "Could not complete the Video Frames to Layers command because the file name was not valid."
    Thank you for your help.

  • How to resize stills to match video frame size

    how to resize psd stills to mach prevailing video frame size -1280x720 ?

    Photo Scaling for Video http://forums.adobe.com/thread/450798

  • How can I easily video screen capture my interactions on an ipad2 so I can play back to demo content I have created?

    how can I easily video screen capture my interactions on an ipad2 so I can play back to demo content I have created?

    Hi,
    Thanks for the response but I know how to do a screen capture but wanted to be able to capture myself interacting with the ipad ansd turn into a movie i.e. showing all the movement / animation etc as I interact.
    I have now figured out a good solution. Using AirServer you can wirelessly connect you ipad to your mac/pc then using a video capture solution like Snapz Pro you can capture what you are doing to create the video.
    Cheers

Maybe you are looking for

  • Is It possible to run Call of duty 4 on the 17 Macbook Pro Early2009?

    I'm having goodtime with DOOM3 playing on my 17' MacbookPro. But Mac gets really high temp and fan is noisy. When I run Call of Duty 4, what happened is everytime freezed in the 30 mitutes. Do I need to report to Apple or set some nice cooldown syste

  • Default display for iweb photo albums page

    I am trying to make a web site using i web with several different photopages. I am using an albums page but the default display for the album covers is landscape. Can anyone tell me how to make them portrait so my pictures on the album cover are not

  • When I connect my iPad to my new Mac Pro, I can't see my pictures

    When I connect my iPad to my new Mac Pro, I can't see my pictures on iPhoto in Mac Pro under devices.I want to import my photos from iPad to Mac Book. Can you please help me? Thanks and regards,

  • Pop Sever Rejected my Password

    I have been experiencing problems with macmail since 10.5 was released. POP server rejected my password box intermittently. It is annoying and Apple Support told me 10.5.5 was released to help solve this problem. Well so far it has not. Is there anyo

  • ICWC Error when launching transaction

    Hello all, Working with CRM 5.0, in interaction center web client I want to launch the CRM 'BP' transaction from navigation bar. I have configured Transaction Launcher and also Navigation Bar Profile. But still when I click on the link at the left ha