内部リソースを初期化できませんでした。の解決方法

11 ビュー (過去 30 日間)
Yuya Takahashi
Yuya Takahashi 2024 年 2 月 18 日
回答済み: COVAO 2024 年 3 月 17 日
MP4を一定のフレーム間隔で抽出しAVIに変換する関数を実装しました。
function CalibrationSource_Gen_MP4toAVI(VideoName,OutputTotalFrameNum)
%CALIBRATIONSOURCE_GEN_MP4TOAVI この関数の概要をここに記述
% 詳細説明をここに記述
VideoNameExt = strcat(VideoName,".MP4");
vidObj = VideoReader(VideoNameExt);
OutVideoName = strcat("CalibSrc",VideoName);
writer = VideoWriter(OutVideoName,'Motion JPEG AVI');
writer.FrameRate = 30;
FramePeriod = idivide(int16(vidObj.NumFrames),int16(OutputTotalFrameNum))
open(writer);
frame_num = 1;
while hasFrame(vidObj)
I = readFrame(vidObj);
if rem(frame_num,FramePeriod) == 0
writeVideo(writer,I);
end
frame_num = frame_num + 1;
end
clear reader
close(writer)
end
しかし関数を実行すると以下のエラーのようにVideoReaderオブジェクトの作成の段階で内部リソースを初期化出来ず、エラーが生じます。
>> CalibrationSource_Gen_MP4toAVI("DJI_0058",40)
次を使用中のエラー: VideoReader/initReader
内部リソースを初期化できませんでした。
エラー: audiovideo.internal.IVideoReader (136)
initReader(obj, fileName, currentTime);
エラー: VideoReader (104)
obj@audiovideo.internal.IVideoReader(varargin{:});
エラー: CalibrationSource_Gen_MP4toAVI (6)
vidObj = VideoReader(VideoNameExt);
同じコードをその他のマシンで実行すると問題なく実行出来ます。
またPC、Matlabの再起動、キャッシュのリセットを実行しても変わりません。
こちらの対処方法について助言をいただきたいです。

回答 (1 件)

COVAO
COVAO 2024 年 3 月 17 日
Windowsにインストールされているコーデックが原因で VideoReaderのエラーが発生している可能性があります。
MATLAB が適切なコーデックにアクセスできない、または、サードパーティのコーデックをインストールしているなど
下記に情報があります。

タグ

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!