首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matlab中制作和保存视频(Avi)

如何在matlab中制作和保存视频(Avi)
EN

Stack Overflow用户
提问于 2012-08-28 18:39:43
回答 4查看 33K关注 0票数 7

我自己也在学习matlab,我用matlab制作了一个动画情节;现在我想把它另存为视频file.can你告诉我如何用matlab.Below把我的动画转换成视频文件是我的代码

代码语言:javascript
复制
x=[1:2];
for i=1:25,
m=randi([3,5]);
n=randi([3,5]);
y=[m n];
bar(x,y)
axis equal                
A(i) = getframe;          
end

matlab版本7.8 R2009a

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-28 19:00:08

使用avifile:

代码语言:javascript
复制
aviobj = avifile('example.avi','compression','None');
x=[1:2];
for i=1:25,
m=randi([3,5]);
n=randi([3,5]);
y=[m n];
bar(x,y)
axis equal        
aviobj = addframe(aviobj,gcf);       
drawnow 
end
viobj = close(aviobj)
票数 5
EN

Stack Overflow用户

发布于 2012-08-28 20:42:49

如果Matlab的avifile不能工作(它可能在64位操作系统的编解码器上有问题),那么使用mmwrite。http://www.mathworks.com/matlabcentral/fileexchange/15881-mmwrite

这很简单,而且很有效。我使用它来创建*.wmv文件,只需执行以下操作:mmwrite(filename, frames);

编辑:代码示例

代码语言:javascript
复制
% set params
fps = 25;
n_samples = 5 * fps;
filename = 'd:/rand.wmv';
% allocate frames struct
fig = figure;
f = getframe(fig);
mov = struct('frames', repmat(f, n_samples, 1), ...
    'times', (1 : n_samples)' / fps, ...
    'width', size(f.cdata, 2), ...
    'height', size(f.cdata, 1));
% generate frames
for k = 1 : n_samples
    imagesc(rand(100), [0, 1]);
    drawnow;
    mov.frames(k) = getframe(fig);
end
% save (assuming mmwrite.m is in the path)
mmwrite(filename, mov);
票数 3
EN

Stack Overflow用户

发布于 2012-08-28 18:49:30

一种方法是将图形print到图像,然后将生成的图像序列缝合成视频。ffmpegmencoder是做这件事的好工具。如果你知道正确的搜索词,有一些很好的资源来描述这一点。我喜欢这个one

在mencoder中,您可以使用如下命令将图像缝合在一起:

代码语言:javascript
复制
mencoder "mf://*.jpg" -mf fps=10 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12157558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档