トップページ > 記事閲覧
一部の動画ファイルを読み込むことができない
名前:keen 日時: 2018/01/26 14:48

お世話になります。 先日のGetMovieImageSize_Fileの件での対応、ありがとうございました。 上記にて頂いたバイナリを用いてプロジェクトを進めていたところ、一部の動画の再生ができずに強制終了するという問題が発生したため、改めてスレッドを立てさせて頂きます。 発生している問題は、検証した限りでは下記の通りです。 ・mp4ファイルと一部movファイルで、LoadGraph時にSystem.AccessViolationExceptionが発生しプログラムが強制終了する ・検証した限りではwavとwmv、一部movファイルでは正常に再生が可能であった ・検証中強制終了したmp4は全てh.264コーデックである ・強制終了しないmovには音声が含まれておらず、強制終了するmovは強制終了するmp4ファイルからEdiusを用いて変換を行ったものである バイナリは、先日頂いたものを使用しております。 ttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=4308 よろしくお願いします。 P.S. 先日のスレッドについてですが、解決済み処理はこちらで行う必要があるのでしょうか? 探してみたのですが、方法が分かりませんでした。解決済みにできないまま放置してしまい申し訳ありません。
メンテ

Page: 1 |

Re: 一部の動画ファイルを読み込むことができない ( No.1 )
名前:管理人 日時:2018/01/26 23:39

再生できない mp4 ファイルについては、強制終了してしまう mp4 ファイルをご提供いただければ こちらで原因を調べられるかもしれませんので、よろしければファイルのアップローダーなどに アップしていただけないでしょうか? m(_ _;m ( もし公開できないものでしたら、アップローダーにパスワード付きでアップロードした後、こちらのメールアドレス BQE00322(あっとまーく)nifty.ne.jp ( (あっとまーく)を@に置き換えてください )  にアップロードされたURLとパスワードを送ってください m(_ _;m ) mov ファイルに関しては、恐らく DirectShow による再生で、DirectShow による再生は 各PCにインストールされているコーデックに頼って再生しているので、仮にファイルをご提供いただけても 不具合の修正はできない可能性があります・・・ 一番確実に再生できる動画フォーマットはDXライブラリの中にデコード用ライブラリが含まれている ogv形式( Ogg Theora形式 ) なので、もしどのような環境でも確実に再生する必要がある場合は ogv形式の 使用をご検討ください m(_ _)m > 先日のスレッドについてですが、解決済み処理はこちらで行う必要があるのでしょうか? > 探してみたのですが、方法が分かりませんでした。解決済みにできないまま放置してしまい申し訳ありません。 解決済みのスレッドについて名前の右側に(解決)とつくことに関して最近ご質問を受けまして、そのときの ご回答は以下の通りですのでよろしければご参照ください m(_ _)m ------------------------------------------------------- 解決済みの際は名前の末尾に(解決)をつけるのですが、もともとこの掲示板にあった文化ではなくて、 恐らくこちらの掲示板からの流れです <C言語何でも質問掲示板> http://dixq.net/forum/viewforum.php?f=3 こちらの掲示板では問題が解決した際は『解決チェック』を付けて投稿すると名前の右側に『[解決!]』と表示されるようになっていて 問題が解決できたかどうかがスレッドを開かなくても分かるようになっています ただ、DXライブラリ置き場掲示板ではそのような機能が無いので、『C言語何でも質問掲示板』でのルールを知る方が この掲示板でのご質問の問題が解決した際に名前の右側に『(解決)』と書かれたことが何回か続き、いつの間にかそれが定着した感じです(汗 なので、もし『(解決)』を付けていただける際は書き込みの修正機能や、問題解決時の書き込みで名前の右側に『(解決)』を付けてください (^ ^; -------------------------------------------------------
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.2 )
名前:keen 日時:2018/01/27 09:07

管理人様、返信ありがとうございます。 動画ファイルをアップロードし、URLを添付してメールを送りました。 メールにも記載したとおり、バージョンは不明ですがバイナリによっては再生が可能でしたので、再生が可能であったバイナリも添付しております。 よろしくお願いします。 >なので、もし『(解決)』を付けていただける際は書き込みの修正機能や、問題解決時の書き込みで名前の右側に『(解決)』を付けてください (^ ^; なるほど、分かりました。前回の書き込みに解決済みを付けました。
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.3 )
名前:管理人 日時:2018/01/27 23:30

アップしていただいた mp4 と mov ファイルを手元の環境で DX.LoadGraph で読み込み DX.PlayMovieToGraph で 再生してみましたが、正常に再生することができました 特に変更した点はないはずですが、もしかしたら最新の dll では正常に再生できるかもしれませんので お手数で申し訳ありませんがこちらの暫定最新版をお試しになってみていただけないでしょうか? m(_ _;m https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.4 )
名前:keen 日時:2018/01/28 14:12

管理人様、返信ありがとうございます。 >ogv形式( Ogg Theora形式 ) なので、もしどのような環境でも確実に再生する必要がある場合は ogv形式の使用をご検討ください m(_ _)m 返信を忘れていました。 外部から取ってきた動画をリアルタイムに再生するプログラムなので、変換を挟むのは厳しいです。 >お手数で申し訳ありませんがこちらの暫定最新版をお試しになってみていただけないでしょうか? m(_ _;m 試してみましたが、全滅でした。 >再生してみましたが、正常に再生することができました そうですか……。 こちらの環境で3台のPCで試してみましたが、いずれもダメでした。 Windows10とWindows7の両方で再生不能、共通していることはGeForceのグラフィックボードを積んでいるという程度で、他の情報も集められず……。 何とかGetMovieImageSize_File関数を使わないように改造することも視野に入れていきます。
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.5 )
名前:keen(解決済み) 日時:2018/01/28 17:52

その後調査を進めましたが、1台のPCで試した限りでは3.18c以前のバイナリでは再生可能であることを確認しました。 不完全な調査報告しかできず大変申し訳ありません。 こちらは一旦GetMovieImageSize_File関数を使わないように何とかできるよう進めることとし、一旦解決済みとします。
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.6 )
名前:管理人 日時:2018/01/29 01:19

駄目でしたか・・・ そして 3.18c では正常に動作するのですね・・・ 3.18d 以降のバージョンでは mp4 の再生に Media Foundation という API を使用していて、 それ以前のバージョンでは mp4 の再生には対応していない( DirectShow用の mp4コーデックがPCに インストールされていれば再生できる )のですが、その 3.18d より以前の 3.18c では再生できるということは ・keenさんがお試しのPCの環境では DirectShow用の mp4コーデックがインストールされている ・keenさんがお試しのPCの環境では Media Foundation を使用して件の mp4ファイルを処理しようとするとクラッシュする ということのようです あまり DirectShow用の mp4コーデックがインストールされている環境は無いので、一般的には Ver3.18d より前の バージョンでは『mp4ファイルの再生には対応していない』という状態だったのですが、少し特殊な環境なのでしょうか? ともあれ、最新バージョンでも Media Foundation を使用しなければ正常にファイルを処理できるかもしれませんので、 よろしければ LoadGraph や GetMovieImageSize_File を使用する前に DX.SetUseMediaFoundationFlag( DX.FALSE ) ; という 処理を記述して、Media Foundation を使用しないようにしてみてください ( LoadGraph などの前で1回でも呼んでいれば良いので、DxLib_Init の実行後に1回だけ実行すれば大丈夫です ) Media Foundation が原因であればこれで正常に処理されるようになると思います ただ、DX.SetUseMediaFoundationFlag( DX.FALSE ) ; を実行すると環境依存度の高い DirectShow を使用することになりますので もし限定された環境でのみ使用するプログラムではないのでしたら、逆に正常に動作する環境が減ることになります なので、もし不特定多数の環境で動作させることを前提とされるのでしたら、keenさんがご検討されている通り ffmpeg や OpenCV など、実行ファイルに付属させることができる機能を使用して動画ファイルの処理をされたほうが良いと思います
メンテ
Re: 一部の動画ファイルを読み込むことができない ( No.7 )
名前:keen(解決) 日時:2018/01/29 09:38

>DX.SetUseMediaFoundationFlag( DX.FALSE ) これで動きました! >・keenさんがお試しのPCの環境では DirectShow用の mp4コーデックがインストールされている >ただ、DX.SetUseMediaFoundationFlag( DX.FALSE ) ; を実行すると環境依存度の高い DirectShow を使用することになりますので K-Lite Codec Full 13.24が入っていました。 現状では1台のPCで動けば良いのですが他の環境で動かす可能性もあり、また他にもいくつか気になる部分が有るので、一度まっさらな環境を用意して検証していくことにします。 重ね重ね対応に感謝します、ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存