VideoWriter
创建写入视频文件的对象
描述
使用一个VideoWriter
对象从数组或MATLAB创建视频文件®电影。对象包含关于视频和控制输出视频的属性的信息。您可以创建VideoWriter
对象使用VideoWriter
函数,指定其属性,然后使用对象函数编写视频。
创建
描述
输入参数
文件名
- - - - - -文件名称
特征向量|字符串标量
文件名,指定为字符向量或字符串标量。VideoWriter
创建文件。
VideoWriter
金宝app支持这些文件扩展名。
|
AVI文件 |
|
Motion jpeg2000文件 |
|
MPEG-4文件(系统与窗户®7或者晚一点,或者macOS10.7及以后) |
如果未指定有效的文件扩展名,VideoWriter
附加扩展名.avi
,.mj2
,或mp4
的值配置文件
论点。如果没有指定值配置文件
,然后VideoWriter
创建一个带有扩展名的动态JPEG压缩AVI文件.avi
.
例子:“myFile.avi”
例子:“. . / dir /视频/ myFile.mj2”
数据类型:字符
|字符串
配置文件
- - - - - -文件类型
'Motion JPEG AVI'
(默认)|“档案”
|“动议JPEG 2000”
|……
文件类型,指定为这些类型之一。
的价值配置文件 |
描述 |
---|---|
|
运动JPEG 2000文件无损压缩 |
|
AVI文件使用运动JPEG编码 |
|
Motion jpeg2000文件 |
|
MPEG-4文件与H.264编码(系统与Windows 7或者晚一点,或者macOS10.7及以后) |
|
未压缩的AVI文件 |
|
未压缩的AVI文件与索引视频 |
|
未压缩的AVI文件与灰度视频 |
配置文件
设置视频属性的默认值,例如VideoCompressionMethod
.
数据类型:字符
|字符串
属性
的VideoWriter
对象包含控制输出视频的属性。您可以创建VideoWriter
对象,其属性为特定格式定制,例如未压缩的AVI的
或mpeg - 4的
,可使用VideoWriter
函数使用预定义的配置文件.例如,您可以创建一个VideoWriter
对象的Motion JPEG AVI
配置文件,并将值赋给质量
财产。
v = VideoWriter(“newfile.avi”,'Motion JPEG AVI');v.质量= 95;
在你打电话给开放
函数在VideoWriter
对象时,您不能更改属性的值。因此,在打开视频文件写入之前,请先修改属性值。
ColorChannels
- - - - - -颜色通道数
正整数
此属性是只读的。
每个输出视频帧的颜色通道数,指定为正整数:
未压缩的AVI、动态JPEG AVI和MPEG-4文件有三种颜色通道。
索引和灰度AVI文件只有一个颜色通道。
对于Motion jpeg2000文件,通道数取决于输入数据到
writeVideo
功能:单色数据一个,彩色数据三个。
数据类型:双
Colormap
- - - - - -视频文件的颜色信息
P
-by-3数值矩阵
视频文件的颜色信息,指定为三列最多256行的数字矩阵。矩阵中的每一行都使用RGB三元组定义一种颜色。RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1]
.
可以在调用之前显式地设置颜色映射开放
,或使用thecolormap
写入第一帧时电影帧结构的字段。
的Colormap
属性仅适用于用于写入索引AVI文件的对象。
例子:colormap(夏天(256))
数据类型:双
|uint8
CompressionRatio
- - - - - -目标压缩比
10
(默认)|大于1的整数
目标压缩比,指定为大于1的整数。压缩比是输入图像中的字节数与压缩图像中的字节数之间的比率。视频数据被尽可能地压缩,直到指定的目标。
CompressionRatio
仅对用于编写Motion jpeg2000文件的对象可用。在你打电话之后开放
,你不能改变CompressionRatio
价值。如果你之前设置LosslessCompression
来真正的
,然后设置CompressionRatio
生成错误。
例子:5
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
持续时间
- - - - - -输出文件持续时间
标量值
此属性是只读的。
输出文件的持续时间(以秒为单位),指定为标量值。
数据类型:双
FileFormat
- - - - - -要写入的文件类型
“avi”
|“mp4”
|“mj2”
此属性是只读的。
要写入的文件类型,指定为“avi”
,“mp4”
,或“mj2”
.
数据类型:字符
|字符串
文件名
- - - - - -文件名称
特征向量|字符串标量
此属性是只读的。
文件名称,指定为字符向量或字符串标量。
数据类型:字符
|字符串
FrameCount
- - - - - -帧数
整数
此属性是只读的。
写入视频文件的帧数,指定为整数。
数据类型:双
帧速率
- - - - - -视频回放速率
30.
(默认)|正数
以每秒帧数为单位的视频回放速率,指定为正数。
在你打电话之后开放
,你不能改变帧速率
价值。
例子:10
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
高度
- - - - - -每个视频帧的高度
标量
此属性是只读的。
每个视频帧的高度,以像素为单位,指定为标量。的writeVideo
方法为高度
而且宽度
根据第一帧的尺寸。
MPEG-4文件要求帧尺寸能被2整除。如果MPEG-4文件的输入帧高度不是偶数,则VideoWriter
在底部用一行黑色像素填充框架。对于Windows系统上的MPEG-4文件,允许的值取决于Windows版本。
数据类型:双
LosslessCompression
- - - - - -无损压缩
真正的
|假
无损压缩,指定为真正的
或假
.的LosslessCompression
属性仅对用于写入Motion jpeg2000文件的对象可用。
如果LosslessCompression
是真正的
,那么:
的
writeVideo
函数写入数据,以便解压缩的数据与输入数据相同。VideoWriter
忽略的任何指定值CompressionRatio
.
在你打电话之后开放
,你不能改变LosslessCompression
价值。
默认情况下,LosslessCompression
是假
为“动议JPEG 2000”
概要文件和真正的
为“档案”
概要文件。
数据类型:逻辑
MJ2BitDepth
- - - - - -Motion jpeg2000文件的位深度
范围内的整数(1、16)
Motion jpeg2000文件的位深度,指定为范围内的整数(1、16)
.位深度是输入图像数据中最低有效位的数目
MJ2BitDepth
仅对用于编写Motion jpeg2000文件的对象可用。方法之前未指定值开放
方法,然后VideoWriter
根据输入数据类型设置位深度。例如,如果输入数据为writeVideo
的数组。uint8
或int8
值,然后MJ2BitDepth
是8
.
例子:8
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
路径
- - - - - -视频文件的完整路径
特征向量|字符串标量
此属性是只读的。
视频文件的完整路径,指定为字符向量或字符串标量。
数据类型:字符
|字符串
质量
- - - - - -视频质量
75
(默认)|范围内的整数[0100]
视频质量,指定为范围内的整数,[0100]
.更高质量的数字导致更高的视频质量和更大的文件大小。较低质量的数字会导致较低的视频质量和较小的文件大小。
质量
仅对与mpeg - 4
或Motion JPEG AVI
概要文件。在你打电话之后开放
,你不能改变质量
价值。
例子:50
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
VideoBitsPerPixel
- - - - - -每像素的比特数
数字标量
此属性是只读的。
在每个输出视频帧中每个像素的位数,指定为数值标量。
带有真彩色视频、Motion JPEG AVI和MPEG-4文件的AVI文件每像素有24位(三种颜色带每个8位)。
索引和灰度AVI文件每像素有8位。
对于Motion jpeg2000文件,每像素的比特数取决于MJ2BitDepth
和图像数据的频带数。例如,如果输入数据为writeVideo
是三维数组吗uint16
或int16
值,则为的默认值MJ2BitDepth
是16
,VideoBitsPerPixel
是48
(三倍位深)。
数据类型:双
VideoCompressionMethod
- - - - - -视频压缩类型
“没有”
|“h”
|JPEG格式的
|“动议JPEG 2000”
此属性是只读的。
视频压缩类型,指定为“没有”
,“h”
,JPEG格式的
,或“动议JPEG 2000”
.
数据类型:字符
|字符串
VideoFormat
- - - - - -视频格式的MATLAB表示
特征向量|字符串标量
此属性是只读的。
MATLAB表示的视频格式,指定为字符向量或字符串标量。
对于Motion jpeg2000以外的文件类型,VideoWriter
集VideoFormat
致下列之一。
视频格式 |
的价值 |
---|---|
未压缩的AVI,动态JPEG AVI或MPEG-4文件 |
“RGB24” |
带索引视频的AVI文件 |
“索引” |
AVI文件与灰度视频 |
“灰度” |
对于Motion jpeg2000文件,VideoWriter
设置VideoFormat
的值MJ2BitDepth
并输入图像数据的格式writeVideo
方法。例如,如果没有指定MJ2BitDepth
属性,然后VideoWriter
设置如下所示的格式。
图像数据格式 |
的价值 |
---|---|
单波段uint8 |
“Mono8” |
单波段int8 |
“Mono8签署” |
单波段uint16 |
“Mono16” |
单波段int16 |
“Mono16签署” |
三级uint8 |
“RGB24” |
三级int8 |
“RGB24签署” |
三级uint16 |
“RGB48” |
三级int16 |
“RGB48签署” |
数据类型:字符
|字符串
宽度
- - - - - -每个视频帧的宽度
数字标量
此属性是只读的。
以像素为单位的每个视频帧的宽度,指定为数值标量。的writeVideo
函数为以下参数设置值高度
而且宽度
根据第一帧的尺寸。
MPEG-4文件要求帧尺寸能被2整除。如果MPEG-4文件的输入帧宽度不是偶数,则VideoWriter
沿着右边用一列黑色像素填充框架。对于Windows系统上的MPEG-4文件,允许的值取决于Windows版本。
数据类型:双
对象的功能
开放 |
打开视频数据写入文件 |
关闭 |
写入视频数据后关闭文件 |
writeVideo |
将视频数据写入文件 |
VideoWriter.getProfiles |
配置文件和文件格式VideoWriter 金宝app支持 |
例子
创建VideoWriter对象并写入视频
通过创建一个随机数据数组,将一个视频写入一个文件VideoWriter
对象获取输出文件,然后将数组写入视频。
创建一个300 * 300的数据矩阵。
A =兰特(300);
创建一个VideoWriter
对象来编写一个名为newfile.avi
然后打开文件进行写入。
v = VideoWriter(“newfile.avi”);打开(v)
写出数据的矩阵一个
到视频文件。
writeVideo (v)
关闭文件。
关闭(v)
为未压缩的AVI和写视频指定配置文件
创建具有指定配置文件的视频对象,制作包含RGB图像的数组,然后将该数组写入视频文件。
创建一个VideoWriter
为RGB24视频创建一个新的未压缩AVI文件。
v = VideoWriter(“newfile.avi”,未压缩的AVI的);
打开文件进行写入。
打开(v)
创建一个包含样本静止图像数据的数组,peppers.png
.将图像写入一个
到视频文件。
A = imread(“peppers.png”);writeVideo (v)
关闭文件。
关闭(v)
从动画创建AVI文件
通过生成帧序列,创建文件要写入的视频对象,然后将帧写入视频文件,将帧序列写入压缩的AVI文件。
设置轴和图形属性,为视频生成帧。
Z =峰;冲浪(Z);轴紧手册集(gca),“nextplot”,“replacechildren”);
为输出的视频文件创建一个视频写入器对象,并打开该对象进行写入。
v = VideoWriter(“peaks.avi”);开放(v);
生成一组帧,从图中获取帧,然后将每个帧写入文件。
为k = 1:20 surf(sin(2*pi*k/20)*Z,Z) frame = getframe(gcf);writeVideo (v,框架);结束关闭(v);
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2010b中引入R2021b:金宝app支持基于线程的环境
你可以跑VideoWriter
在后台使用MATLABbackgroundPool
.
R2021b:jpeg2000图像的像素差异
R2021b中的JPEG 2000图像与以前版本的MATLAB之间可能存在像素值差异。
另请参阅
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。