首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将avi文件转换为yuv 420 (软件/matlab/source code/c/c++任何文件)

如何将avi文件转换为yuv 420 (软件/matlab/source code/c/c++任何文件)
EN

Stack Overflow用户
提问于 2010-09-01 12:24:16
回答 2查看 5.4K关注 0票数 2

伙计们,我想把一个avi文件转换成yuv420视频剪辑。有什么方法可以做到这一点吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-01 12:37:18

你可以把一个AVI文件读入MATLAB using the built-in mmreader class。将AVI帧读入电影帧的结构数组后,可以使用MathWorks File Exchange提交的saveFileYuv函数将它们保存为YUV文件。

Da Yu

您的代码可能如下所示:

代码语言:javascript
复制
%# Get the video data:

vidObj = mmreader('myVideo.avi');  %# Create a video file object
nFrames = vidObj.NumberOfFrames;   %# Get the number of frames
vidHeight = vidObj.Height;         %# Get the image height
vidWidth = vidObj.Width;           %# Get the image width

%# Preallocate the structure array of movie frames:

mov(1:nFrames) = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
                        'colormap',[]);  %# Note that colormap is empty!

%# Read each video frame into the structure array:

for k = 1:nFrames
  mov(k).cdata = read(vidObj,k);  %# Place frame k in the cdata field of mov(k)
end

%# Save the movie frame array as a YUV 4:2:0 file:

saveFileYuv(mov,'myVideo.yuv',1);
票数 2
EN

Stack Overflow用户

发布于 2011-05-09 21:22:08

我不推荐使用Matlab。使用mplayer/mencoder可以轻松地完成您想要做的事情……为什么要用Matlab呢?

mencoder.exe -of rawvideo clock.avi -o clock.yuv -nosound -ovc raw

如果颜色不正确,您可以添加-vf swapuv来交换U和V分量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3615036

复制
相关文章

相似问题

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