MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何将avi文件转换为yuv 420(软件/ matlab /源代码/ c / c ++任何东西) (https://www.labfans.com/bbs/showthread.php?t=23850)

poster 2019-12-10 20:48

如何将avi文件转换为yuv 420(软件/ matlab /源代码/ c / c ++任何东西)
 
伙计们,我想将avi文件转换为yuv 420视频剪辑。有什么方法可以做到吗?谢谢!



[B]回答:[/B]

您可以[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/import_export/f5-132080.html#f5-146610"]使用内置的mmreader类[/URL]将AVI文件读取到MATLAB [URL="http://www.mathworks.com/access/helpdesk/help/techdoc/import_export/f5-132080.html#f5-146610"]中[/URL] 。将AVI帧读入电影帧的结构数组后,可以使用此提交中的[URL="http://www.mathworks.com/matlabcentral/fileexchange/"]MathFile File Exchange中[/URL]的saveFileYuv函数将它们保存为YUV文件:
[LIST][*]通过[URL="http://www.mathworks.com/matlabcentral/fileexchange/authors/16240"]Da Yu[/URL] [URL="http://www.mathworks.com/matlabcentral/fileexchange/6318-convert-yuv-cif-420-video-file-to-image-files"]将YUV CIF 4:2:0视频文件转换为图像文件[/URL][/LIST]您的代码可能看起来像这样:

%# 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);

[url=https://stackoverflow.com/questions/3615036]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:04

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.