2

aviファイルをyuv 420ビデオクリップに変換したいです。それを行う方法はありますか?どうも!

4

2 に答える 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 に答える