なぜ AVI ファイルを読み込むことができないのですか?

조회 수: 46 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2011년 8월 1일
편집: MathWorks Support Team 2023년 3월 27일
Windows XP 64-bit 上で 64-bit MATLAB を使用しています。32-bit MATLAB で特定のコーデック(たとえば、 Cinepak コーデック)を使って AVI を作成しました。それを同じマシンの 64-bit MATLAB上で AVIREAD を使って読み込もうとしたところ、下記のエラーが出力されました。
(エラーメッセージ)
ERROR: ??? Error using ==> readavi
Unable to locate decompressor to decompress video stream
64-bit MATLAB にてこのコーデックを使って、AVI ファイルにフレームを追加する際に、ADDFRAME を使用すると、同様のエラーが出力されました。しかし、同じマシン上の Windows Media Player を使用するとこのファイルを再生することができます。また、64 bit MATLAB 上で XVID コーデックを使ったファイル上で、MMREADER を使用しようとしたところ、下記のエラーが出力されました。
(エラーメッセージ)
ERROR: ??? Initialization failed. (No combination of intermediate filters could be found to make the
connection.)
Error in ==> mmreader.mmreader>mmreader.init at 364
obj.MMReaderImpl = audiovideo.mmreader(fullName);
Error in ==> mmreader.mmreader>mmreader.mmreader at 133
obj.init(fileName);
MMREADER は、32 bit MATLAB 上では、問題なく動きます。また、同じマシン上の Windows Media Player 上からは再生できます。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2023년 3월 26일
편집: MathWorks Support Team 2023년 3월 27일
コーデックのライブラリには、32-bit 用と 64-bit 用があります。32-bit ライブラリは、MATLAB の 32 bit モードのように、32-bit アプリケーションによって使用されます。そして、64-bit ライブラリは、64-bit MATLABユーザが実行するように、64-bit アプリケーションによって使用されます。各バージョンで作成されたビデオファイルは、プレイヤーがそのシステム上の対応する 32-bit あるいは、64-bit コーデックにアクセスする限り、任意の他のシステム(他のマシン上のWindows Media Playerを使用したりなど )上で実行することができます。
このエラーメッセージは、与えられた AVI ファイルを読み込むために要求されたコーデックが、コンピューターにインストールされていない際に生じます。たとえば、Cinepak コーデックの iccvid.dll は、32-bit ディストリビューションのみです。一方、32-bit MATLAB と他の 32-bit アプリケーションは、Cinepak 圧縮を使用して AVI ファイルをプレイしたり作成することができます。
回避策としては、次の2つのオプションがあります。
1. 64-bit MATLAB の代わりに32-bit MATLAB を使用します。これは、%SYSTEMROOT%\system32 の下にリストされているコーデックを見つけることができます。そして、簡単な操作で圧縮された AVI ファイルを作成できる観点から、一般的に、ユーザーの要求に合っています。
代替案としては、コンピュータ上で利用可能なインストールされている64-bitバージョンのコーデックで、AVI ファイルを作成することです。
このアプローチの短所は、32-bit アプリケーションの制限がある点です。また、MATLABの異なるバージョンをインストールしなければなりません。
2. 最初に非圧縮 AVI ファイルを 64-bit MATLAB を使って作成し、その後、VirtualDub のようなオープンソースのサードパーティのツールを使用して、プログラム的にあるいは、インターラクティブにAVIファイルを圧縮します。VirtualDub の強味は、コーデックの開発と MPEG-4 のような多くのポピュラーなコーデックへのアクセスです。
一般的に、似通ったエラーが任意のコーデックを使用した際に得られる場合は、次をチェックしてください。
1. コンピュータ上に、適切なコーデックがインストールされているかどうか。つまり、ご利用のマシン上で利用可能なコーデックに対応したドライバー(.DLLファイル)がインストールされているかどうかをチェックしてください。注目すべきは、Windows 64-bit XP マシンのバイ、32-bit コーデックがインストールされているリストが、下記にございます。
%SYSTEMROOT%\syswow64
一方、64-bit コーデックのリス後は、下記よりご覧いただけます。
%SYSTEMROOT%\system32
Q. SysWOW64 ディレクトリとは何ですか?
A. \Windows\SysWOW64 ディレクトリは、ここでは、32-bit システムファイルがインストールされているディレクトリです。64-bit システムファイルは、互換性の理由より、\Windows\system32 にございます。
64-bitWindows マシンでは、インストールされている 64-bit コーデックのリストが、Windows System Tools ユーティリティからもリストできます。
(Start button=> Programs=> Accessories => System tools =>System Information => Components => Multimedia => Video Codecs)
2. 他のメディアプレーヤーが、32-bit や 64-bit バージョンのファイルがプレイできるかどうかをテストしてください。Windows Medeia Playe rの場合、これは、wmplayer.exe ファイルの場所からテストすることができます。Windows Media Player 11 の場合、32 および 64-bit バージョンの wmplayer.exe が %ProgramFiles (x86)%/Windows Media Player と %ProgramFiles%/Windows Media Player フォルダーにあります。もし両方のバージョンがインストールされている場合は、上記のフォルダの各々から wmplayer.exe を立ち上げることができます。

추가 답변 (0개)

태그

아직 태그를 입력하지 않았습니다.

제품

Community Treasure Hunt

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

Start Hunting!