aviファイルをyuv 420ビデオクリップに変換したいです。それを行う方法はありますか?どうも!
5393 次
2 に答える
2
組み込みクラスを使用してmmreader
、AVI ファイルを MATLAB に読み込むことができます。ムービー フレームの構造体配列に AVI フレームを読み取ったら、 MathWorks File ExchangesaveFileYuv
からのこのサブミッションにある関数を使用して、それらを 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);
于 2010-09-01T04:37:17.837 に答える
0
Matlab の使用はお勧めしません。あなたがやりたいことは、mplayer/mencoder を使用して簡単に実行できます... なぜそのために Matlab を使用するのですか?
mencoder.exe -of rawvideo clock.avi -o clock.yuv -nosound -ovc raw
色が正しくない場合は、-vf swapuv を追加して、U コンポーネントと V コンポーネントを入れ替えることができます。
于 2011-05-09T13:22:08.070 に答える