Stream from multimedia file
Sources
dspsrcs4
The From Multimedia File block reads audio samples, video frames, or both, from a multimedia file and generates a signal with one of the following data types and amplitude ranges.
Output Data Type | Output Amplitude Range |
---|---|
| ±1 |
| ±1 |
| -32768 to 32767 (-215 to 215 - 1) |
| 0 to 255 |
The block imports data from the file into a Simulink® model.
Note
This block supports code generation for the host computer that has file I/O available. You cannot use this block with Simulink Desktop Real-Time™ software because that product does not support file I/O.
The generated code for this block relies on
prebuilt library files. You can run this code
outside the MATLAB® environment, or redeploy it, but be
sure to account for these extra library files when
doing so. The packNGo function creates a single
zip file containing all of the pieces required to
run or rebuild this code. See packNGo
(Simulink Coder)
for more information.
To run an executable file that was generated from a model containing this block, you may need to add precompiled shared library files to your system path. See Understanding C Code Generation in DSP System Toolbox for details.
The supported file formats available to you depends on the codecs installed on your system.
With the necessary Windows® DirectShow codecs installed on your system, the From Multimedia File Block supports many video and audio file formats. This block performs best on platforms with Version 9.0 or later of DirectX® software.
The following table lists the most common file formats.
Multimedia Types | File Name Extensions |
---|---|
Image files | .jpg ,.bmp,.png |
Video files | .qt ,
.mov , .avi ,
.asf , .asx ,
.wmv , .mpg ,
.mpeg , .mp2 ,
.mp4 ,
.m4v |
Audio files | .wav ,
.wma , .avi ,
.aif , .aifc ,
.aiff , .mp3 ,
.au , .snd, .mp4, .m4a,
.flac, .ogg |
The default for image files is
.png
, for video files is
.avi
, and for audio files is
.mp3
.
Windows 7 and later versions of Windows ship with a limited set of 64-bit video and audio codecs. If the From Multimedia File block cannot work on a compressed multimedia file, save the multimedia file to a file format supported by the block.
If you use Windows, use Windows Media® Player Version 11 or later with this block for best results.
The following table lists the most common file formats.
Multimedia Types | File Name Extensions |
---|---|
Video files | .avi ,
.mj2 , .mov ,
.mp4 ,.m4v |
Audio files | .avi, .mp3, .mp4, .m4a, .wav,
.flac, .ogg, .aif, .aifc, .aiff, .au,
.snd |
The default for video files is
.avi
, and for audio files is
.mp3
.
The output ports of the From Multimedia File block change according to the content of the multimedia file. If the file contains only video frames, the Image, intensity I, or R,G,B ports appear on the block. If the file contains only audio samples, the Audio port appears on the block. If the file contains both audio and video, you can select the data to emit. The following table describes available ports.
Port | Description | |||
---|---|---|---|---|
Image | M-by-N-by-P color video signal where P is the number of color planes. | |||
I | M-by-N matrix of intensity values. | |||
R, G, B | Matrix that represents one plane of the RGB video stream. Outputs from the R, G, or B ports must have same dimensions. | |||
Audio | Vector of audio data. | |||
Y, Cb, Cr | Matrix that represents one frame of the YCbCr video stream. The Y, Cb, Cr ports produce the following outputs:
|
The sample rate that the block uses depends on the audio and video sample rate. While the FMMF block operates at a single rate in Simulink, the underlying audio and video streams can produce different rates. In some cases, when the block outputs both audio and video, makes a small adjustment to the video rate.
Sample time = . When audio sample time, is noninteger, the equation cannot reduce to . In this case, to prevent synchronization problems, the block drops the corresponding video frame when the audio stream leads the video stream by more than . In summary, the block outputs one video frame at each Simulink time step. To calculate the number of audio samples to output at each time step, the block divides the audio sample rate by the video frame rate (fps). If the audio sample rate does not divide evenly by the number of video frames per second, the block rounds the number of audio samples up to the nearest whole number. If necessary, the block periodically drops a video frame to maintain synchronization for large files. |
Specify the name of the multimedia file from which to read. The block determines the type of file (audio and video, audio only, or video only) and provides the associated parameters.
If the location of the file does not appear on your MATLAB path, use the Browse button to specify the full path. Otherwise, if the location of this file appears on your MATLAB path, enter only the file name. On Windows platforms, this parameter supports URLs that point to MMS (Microsoft Media Server) streams.
Select the Inherit sample time from file check box if you want the block sample time to be the same as the multimedia file. If you clear this check box, enter the block sample time in the Desired sample time parameter field. The file that the From Multimedia File block references, determines the block default sample time. You can also set the sample time for this block manually. If you do not know the intended sample rate of the video, let the block inherit the sample rate from the multimedia file.
Specify the block sample time. This parameter becomes available if you clear the Inherit sample time from file check box.
Enter a positive integer or
inf
to represent the number of
times to play the file.
Specify the sample range from which to read as a two-element row vector in the form of [StartSample EndSample], where StartSample is the sample at which file reading starts, and EndSample is the sample at which file reading stops.
The default is [1 Inf
].
Use this check box to determine whether the output is the last video frame or audio sample in the multimedia file. When you select this check box, a Boolean output port labeled EOF appears on the block. The output from the EOF port defaults to 1 when the last video frame or audio sample is output from the block. Otherwise, the output from the EOF port defaults to 0.
Specify Video and audio
,
Video only
, or Audio
only
output file type. This parameter
becomes available only when a video signal has
both audio and video.
Specify number of samples per audio channel. This parameter becomes available for files containing audio.
Specify whether you want the block to output
RGB
,
Intensity
, or
YCbCr 4:2:2
video
frames. This parameter becomes available only for
a signal that contains video. If you select
RGB
, use the
Image signal parameter to
specify how to output a color signal.
Specify how to output a color video signal.
If you select One multidimensional
signal
, the block outputs an
M-by-N-by-P
color video signal, where
P is the number of color
planes, at one port. If you select
Separate color signals
,
additional ports appear on the block. Each port
outputs one M-by-N
plane of an RGB video stream. This
parameter becomes available only if you set the
Output color format parameter
to RGB
and the signal
contains video.
Set the data type of the audio samples
output at the Audio port. This parameter becomes
available only if the multimedia file contains
audio. You can choose
double
,
single
,
int16
, or
uint8
types.
Set the data type of the video frames output
at the R,
G, B, or
Image ports. This parameter
becomes available only if the multimedia file
contains video. You can choose
double
,
single
,
int8
,
uint8
,
int16
,
uint16
,
int32
,
uint32
, or
Inherit from file
types.
To run your generated standalone executable application in Shell, you need to set your environment to the following:
Platform | Command |
---|---|
Mac |
For more information, see Append library path to "DYLD_LIBRARY_PATH" in MAC. |
Linux |
|
Windows |
|
For source blocks to display video data
properly, double- and single-precision
floating-point pixel values must be between
0
and 1
. For
other data types, the pixel values must be between
the minimum and maximum values supported by their
data type.
Port | Supported Data Types | Supports Complex Values? |
---|---|---|
Image |
| No |
R, G, B | Same as the Image port | No |
Audio |
| No |
Y, Cb,Cr | Same as the Image port | No |