伙计们,我想将avi文件转换为yuv 420视频剪辑。有什么方法可以做到吗?谢谢!
回答:
您可以
使用内置的mmreader类将AVI文件读取到MATLAB
中 。将AVI帧读入电影帧的结构数组后,可以使用此提交中的
MathFile File Exchange中的saveFileYuv函数将它们保存为YUV文件:
您的代码可能看起来像这样:
%# 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);
更多&回答...