MP4を一定のフレーム間隔で抽出しAVIに変換する関数を実装しました。
function CalibrationSource_Gen_MP4toAVI(VideoName,OutputTotalFrameNum)
VideoNameExt = strcat(VideoName,".MP4");
vidObj = VideoReader(VideoNameExt);
OutVideoName = strcat("CalibSrc",VideoName);
writer = VideoWriter(OutVideoName,'Motion JPEG AVI');
FramePeriod = idivide(int16(vidObj.NumFrames),int16(OutputTotalFrameNum))
if rem(frame_num,FramePeriod) == 0
frame_num = frame_num + 1;
しかし関数を実行すると以下のエラーのようにVideoReaderオブジェクトの作成の段階で内部リソースを初期化出来ず、エラーが生じます。
>> CalibrationSource_Gen_MP4toAVI("DJI_0058",40)
次を使用中のエラー: VideoReader/initReader
エラー: audiovideo.internal.IVideoReader (行 136)
initReader(obj, fileName, currentTime);
obj@audiovideo.internal.IVideoReader(varargin{:});
エラー: CalibrationSource_Gen_MP4toAVI (行 6)
vidObj = VideoReader(VideoNameExt);
同じコードをその他のマシンで実行すると問題なく実行出来ます。
またPC、Matlabの再起動、キャッシュのリセットを実行しても変わりません。
こちらの対処方法について助言をいただきたいです。