directx アプリケーションから取得した画像から生成された FLV ストリームを作成して、最終的に Web ページにしたいと考えています。
私の現在の計画は、スクリーンショットを JPG:s として dx アプリから Linux で実行されているクライアントに送信することです。このクライアントは、JPG:s を MJPEG ストリームに変換します。そして、ffmpeg は MJPEG ストリームを FLV に変換し、ブラウザーの Flash Player で終了します。
何かのようなもの;
- Windowsマシンでdxアプリを実行すると、接続をリッスンしてスクリーンショットJPGを送信します
- Linux マシン上。./jpg_to_mjpeg_client | ffmpeg -f mjpeg -i - output.flv
計画は良かったと思ったが、今は行き詰まっている. ffmpeg は、クライアントからの MJPEG ストリームを正しく処理していないようです。JPG:s から MJPEG ストリームを作成するためにネットで見つけたコードを使用しましたが、MJPEG 形式には実際の仕様がないことを理解しているため、同じ MJPEG 形式などを使用していない可能性があります。
現在、dx アプリからフレームごとに [JPG バッファのサイズ]、[JPG バッファ] を送信しています。何らかの形でストリームをエンコードすることもできると思いますが、一方で、レンダリング マシンであまりにも多くの CPU を浪費したくありません。
どのようにしますか?どんなヒントでも大歓迎です!ライブラリ/API: 使用するもの、その他のソリューション.. ビデオ エンコーディングの経験はまったくありませんが、「一般的なプログラミング」の方法はよく知っています。
C または C++ が推奨されますが、Java または Python も問題ない場合があります。私はそれをかなり速くしたい-リアルタイムで作成する必要があり、dxアプリからの1フレームはできるだけ早くブラウザに表示されるはずです:-)
ああ、将来的には、ブラウザーの webapp から DX アプリと通信/制御できるように、インタラクティブにする予定です。その情報も追加すると良いかもしれません。Web ベースの VCR のようなもので、ムービーは DX アプリからリアルタイムでレンダリングされます。
ありがとう、