---
name: "SWF::VideoStream"
section: "3pm"
platform: "linux"
package: "libswf-perl"
version: "1:0.4.4-1.1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/SWF::VideoStream"
---

# SWF::VideoStream(3pm)

SWF Video class

## NAME

SWF::VideoStream - SWF Video class

## SYNOPSIS

```
        use SWF::VideoStream;
        $videostream = new SWF::VideoStream("test.flv");
```

## DESCRIPTION

SWF::VideoStream is a helper class useful for playing videos via SWF applications, either via embedded video data, or controlled by ActionScript.

## METHODS

- $videostream = new SWF::VideoStream($filename)

  Creates a SWF::VideoStream object. If the file can't be opened the  constructor will return an empty object. The filename is not limited to 'flv' extension.

- $frames = $videostream-\>*getNumFrames()*

  This method returns the number of video-frames of an object of SWF::VideoStream, this works only for embedded streams. In case of error you will get result of -1.

- $videostream-\>setDimension(width, height)

  This method sets width and height for streamed videos, this works only on streamed videos (progressive download or rtmp).

- $bool = $videostream-\>*hasAudio()*

  A test whether the embedded FLV stream also has audio data.

- $videostream-\>setFrameMode($mode)

  If the mode == SWFVIDEOSTREAM\_MODE\_AUTO (default) on every SWF movie frame a video frame is added. In SWFVIDEOSTREAM\_MODE\_MANUAL mode, the user needs to call the *nextFrame()* method to change the video's frame. This works only with embedded video streams. Does return the previous mode or -1 if an invalid mode was passed.

- $result = $videostream-\>*nextFrame()*

  Switch to next video frame. Works only with embedded video streams. Returns -1 if an error happend. Here follows some demo code how to use SWF::VideoStream objects (without ActionScript):

  ```
          use SWF qw(:ALL);                       # to be lazy
          $movie = new SWF::Movie();
          $movie->setRate( 25 );
          # $movie->setRate( 5 );                 # e.g. 5 for slow motion
          # here movie set background etc. etc.
          #
          $video=new SWF::VideoStream('MyTestVideo.flv');
          die if (-1 == $v->getNumFrames());      # abort if something went wrong
          #
          $video->setFrameMode(SWF::Constants::SWFVIDEOSTREAM_MODE_MANUAL);
          $video->seek(1000, 0);                  # for example only
          $displayitem = $movie->add($video);
          #
          # 250 for a 10 seconds movie part (at rate of 25 per minute)
          for(my $n = 0; $n < 250; ++$n)
          {
           $video->nextFrame();
           $movie->nextFrame();
          }
          $movie->save("MyTestVideo.swf",9);
          # that's all, folks
  ```

- $result = $videostream-\>seek($frame, $whence)

  This functions allows seeking `$frame` in video stream, returning the old video frame position. As value of `$whence` use one of the following:

  ```
          0 for seeking from beginning
          1 for seeking from current position
          2 for seeking from end of file
  ```

## AUTHOR

```
        developers of ming
        ming.sourceforge.net
```

## SEE ALSO

SWF, SWF::Action, SWF::Movie, SWF::MovieClip, SWF::Sound, SWF::SoundStream, SWF::Constants
