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

14 次查看(过去 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 が適切なコーデックにアクセスできない、または、サードパーティのコーデックをインストールしているなど
下記に情報があります。

类别

Help CenterFile Exchange 中查找有关 ビッグ データの処理 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!