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

15 views (last 30 days)
Yuya Takahashi
Yuya Takahashi on 18 Feb 2024
Answered: covao on 17 Mar 2024
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の再起動、キャッシュのリセットを実行しても変わりません。
こちらの対処方法について助言をいただきたいです。

Answers (1)

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

Categories

Find more on ビッグ データの処理 in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!