0

System.Windows.Media.MediaPlayer クラスを使用してビデオ ファイルを再生およびキャプチャしようとしています。これはセキュリティ カメラ アプリケーション用であり、ここには著作権の問題はありません。実際には、完全な Windows Media Player コーデック ライブラリにアクセスして avi ファイル (およびその他の形式) を開く必要があるため、このようにしています。

完璧に機能していると思いました。イベントを mediaPlayer.Changed にアタッチし、DrawingContext などを使用して、フレームをキャプチャして保存しました。

ただし、フレームごとに .Changed が常に起動するとは限らないことを発見しました。ビデオが約 6 fps 未満の場合は正常に動作しているように見えますが、これを超えると、Changed は約 6 ~ 7 fps を超えて起動しません。10fps のビデオの場合、3 フレームごとにドロップするように見えます。25fps の mpg ファイルでも試してみたところ、12fps のキャプチャ レートに達しました。

私が使用しているマシンは十分なRAMを搭載したi7であるため、コンピューターリソースの問題ではないと思います。また、mediaplayer.SpeedRatio = 0.5 に変更すると、再生レートは半分に低下しますが、キャプチャ レートも低下し、同じ割合のフレームがドロップされます。

変更すべきパラメーターはありますか (または、これはメディアプレーヤーのバグですか?)

4

0 に答える 0