writevideo​/VideoWrit​erのフレーム数のエ​ラー

30 views (last 30 days)
蓮 出越
蓮 出越 on 21 Sep 2022
Answered: Atsushi Ueno on 21 Sep 2022
writevideo/VideoWriter関数を使って、出力した連続の画像を動画にしたいと考えています。
しかし、以下の文のようなエラーが出ます。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
警告: ビデオの幅および高さが、H.264 コーデックで必要な 2 の倍数になるようにパディングされました。
使い方によるエラー VideoWriter/writeVideo
フレームは 1752 x 258 でなければなりません
エラー: make_video (行 7)
writeVideo(v, Movie(frame).cdata)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
動画を書き込むコードは以下の通りです。
どこが間違っているか教えていただければ幸いです。
%動画書き込み方法
v = VideoWriter('movie_sim_flow_dego_1','MPEG-4');
open(v)
%numが入らないように設定
for frame = 1:num_frame
writeVideo(v, Movie(frame).cdata)
end
close(v)
>>

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 21 Sep 2022
Movie(1).cdataからMovie(num_frame).cdataまでのどこかにサイズの異なるフレームが含まれていると思います。
for文中にsize(Movie(frame).cdata)と書いて、フレームのサイズが途中で変わっていないか確認してみてください。
フレームサイズが???? x ???⇒1752 x 258に変更されていますが、入力するフレームサイズに変化が無ければ全て同じ2の倍数(1752 x 258)に変更されるので、エラーの前に出た警告は問題ではないと思います。

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!