トップページ > 記事閲覧
動画のサイズ分だけメモリ使用量が増加する件
名前:たろう 日時: 2020/09/07 00:09

またすみません、たろうです DXライブラリで動画プレイヤーを作っているのですが、 長い動画を再生して気づいたのですが、タスクマネージャーで監視していると 動画のサイズの分だけどんどんメモリが増加しているようです。 これだとギガを超える動画を再生していると トンデモない事になってしまいそうです。 下の単純なプログラムで、試した限り全てのmp4で上記の現象は起こるようです もちろんゲーム用のライブラリなので、これは仕方ない事なのかもしれませんが 何か方法はございますでしょうか? また、基本的に動画プレイヤーとしては凄く動作が重くなるので 例えば特定の機能を使わない場合はこのフラグを立てるなど、 そういった裏技的なものなど、なにかありましたら教えていただけると助かります。 お忙しい所すみません、 宜しくお願いいたしますm(__)m #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( TRUE ); SetGraphMode(600,600,16); if( DxLib_Init() < 0 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); int 動H=LoadGraph(u8"動画.mp4"); ChangeMovieVolumeToGraph(50,動H);PlayMovieToGraph(動H);//SetPlaySpeedRateMovieToGraph(動H,2.0) ; int t=0,t_plus=1000; while( ProcessMessage() == 0 ) { ClearDrawScreen() ; DrawExtendGraph(0,0,600,600,動H,0); ScreenFlip(); } DxLib_End(); return 0; }
メンテ

Page: 1 |

Re: 動画のサイズ分だけメモリ使用量が増加する件 ( No.1 )
名前:管理人 日時:2020/09/08 02:07

> 長い動画を再生して気づいたのですが、タスクマネージャーで監視していると > 動画のサイズの分だけどんどんメモリが増加しているようです。 メモリの使用量はDXライブラリが mp4 の再生に使用している API ( Media Foundation )が 勝手に確保しているようです ただ、メモリリークをしているわけではないようで、Seekしたりするとメモリが解放され 使用メモリ量が一気に減ったりします > これだとギガを超える動画を再生していると > トンデモない事になってしまいそうです。 以前試した限りでは、他のソフトの動作に支障がでそうな程の使用メモリ量になる前に 使用メモリ量が減る動作が行われるようです ( 例: どんどん増えるものの 1.1GB -> 1.8GB -> 2.5GB -> 3.3GB -> 4.1GB -> 4.9GB  あるタイミングでガクッと減る… 5.7GB -> 6.5GB -> 1.1GB -> 1.8GB -> 2.5GB ... ) > また、基本的に動画プレイヤーとしては凄く動作が重くなるので > 例えば特定の機能を使わない場合はこのフラグを立てるなど、 > そういった裏技的なものなど、なにかありましたら教えていただけると助かります。 載せていただいたプログラムで「これをすれば速くなる」といった項目は特に無いですね… 動画プレイヤー用に動画を再生することに特化した処理ではなく、動画を通常の画像として 扱えるようにしている関係で、どうしても一般的な動画プレイヤーよりはCPU負荷が高くなってしまいます… ちなみに手元で 640x480 の mp4 を再生したところ、CPU使用率は 3〜4% でした たろうさんが試された動画ではもっと異様に動作が重くなる( 60fpsが保てない等 )といった状態なのでしょうか?
メンテ
Re: 動画のサイズ分だけメモリ使用量が増加する件 ( No.2 )
名前:たろう(解決) 日時:2020/09/08 20:33

いつもありがとうございます。 メモリ使用量に応じて解放される件、了解いたしました 試しましたところ、メモリ使用率が95パーセントくらいを維持する形で 増えたり減ったりを繰り返すようです ※搭載メモリを超える程の動画を持っていないので、 他のソフトでメモリ使用率を上げて試した都合上 ちょっと方法が間違っているのかもしれません とはいえMedia Foundationの仕様という事で理解いたしました ありがとうございました。 また、もし軽くできる方法があれば…という事で 特に異様に動作が重くなるという事はありません お忙しい所お手数をおかけいたしました ありがとうございましたm(__)m
メンテ

Page: 1 |

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

   クッキー保存