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

27 ビュー (過去 30 日間)
蓮 出越
蓮 出越 2022 年 9 月 21 日
回答済み: Atsushi Ueno 2022 年 9 月 21 日
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)
>>

採用された回答

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!