私は、多数のビデオをデコードする必要があるプロジェクト(HD解像度でそれぞれ〜50)を処理し、Pythonプロセスで生のピクセル値をnumpy配列として使用するプロジェクトに取り掛かりました。デコードは、ほぼリアルタイム(例えば、4〜5fps)でなければならない。これを効率的に行うにはどうすればよいでしょうか? GPUによる高速デコードも可能です。目標は、複数のビデオを同時にデコードして、生のピクセル値を後でPythonプロセスで処理できるようにすることです。Pythonプロセスアドレス空間で複数のビデオストリームをデコードする
-1
A
答えて
2
したがって、1つのアプローチは、Python(デコード - >パイプ - >パイソンプロセスのアプローチではありません)によってインターフェイスされているいくつかのデコーダを使用することです。
しようとするには、2つの一般的なライブラリがあります。
はどちらも、(非常に効率的に)あなたのビデオをデコードするために内部のffmpegを使用しています。 両方の場合、ストリームを読み込んでピクセルをいくつかの配列に並べ込むのは簡単です。
私はこのようにしてhereのようにMoviePyを1回使用しました。
凝縮例(試していない):
from moviepy.editor import VideoFileClip
filepath = "output.avi"
clip = VideoFileClip(filepath)
for f in clip.iter_frames(progress_bar=True):
np_array_frame = f
もiter_framesのドキュメントを参照してください。ドキュメントから
抜粋:
Iterates over all the frames of the clip.
Returns each frame of the clip as a HxWxN np.array,
where N=1 for mask clips and N=3 for RGB clips.
関連する問題
- 1. プロセスメモリ、GPU共有メモリ、x64ウィンドウ上のx86プロセスアドレス空間
- 2. Python-zxingデコードが空のデータを返す
- 3. カーネルはなぜプロセスアドレス空間にあると言われていますか?
- 4. voidポインタをパイプ経由で別のプロセスアドレス空間内の別のプロセスに送ることができます
- 5. DJI無人機からAndroidでビデオストリームをデコード
- 6. アドレス範囲がプロセスアドレス空間にあるかどうかを確認するためのLitmusテスト?
- 7. PythonでRGB画像を短時間でデコードする方法
- 8. 複数のStruts2名前空間をタイルで使用する
- 9. 複数のソースwebcam/ip camビデオストリームを記録する方法は?
- 10. Pythonで名前空間をエミュレートする
- 11. 複数のスレッドの仮想アドレス空間?
- 12. 複数のjavascript名前空間?
- 13. Pythonの空間データヒートマップ
- 14. Red5で複数のビデオストリームを扱う方法は?
- 15. Javaアルゴリズム:奇数偶数を分離する(時間空間の複雑さ)
- 16. 複数のファイル間で名前空間を使用する方法
- 17. 複製ビデオストリームActionScript 3の
- 18. 複数スレッド間で共有されているPythonメモリ配列(プロセス空間でmemcachedと考える)
- 19. Python 3.5の複数のスクリプト間でPythonで 'global'を使用する
- 20. 複数のファイルに名前空間を指定するTypeScriptモジュール
- 21. html要素に複数の名前空間を使用する
- 22. XSLT - 複数の名前空間をコピーするには
- 23. XSLTに複数の名前空間を追加するには?
- 24. 複数定義と名前空間
- 25. xmltable Oracle関数を複数のデフォルト名前空間で使用する
- 26. Pythonで複数の文字列を補間する
- 27. Python、複数のウィンドウ間でイベントを処理する方法は?
- 28. ユニコードデータをデコードするPython
- 29. python 3複数の数字を1つの数字として読み取るプログラムをデコードしますか?
- 30. xmlを複数の名前空間で非直列化