0

私の場合、ビデオ ストリームは Android MediaRecorder からのものです。[更新] いくつかのオンライン情報によると、ビデオ ストリームは通常、関数 setOutputFile(FileDescriptor fd) の fd でフィードできます。

キャプチャ フレームに関連する投稿は次のとおりです。「録画中に Android ビデオ フレームをフレームごとに処理する

1つの答えは次のとおりです。

  1. NDK を使用してストリームを開きます (実装によっては API の可能性があります)。
  2. ストリームのバイトを変更します。各フレームは個別のパケットとして送信されます。カメラから各パケットを取得して変更する必要があります。色を置き換えたり、翻訳したりできます。OpenGL を使用して、ガラス効果などを追加することで画像全体を変更することもできます。
  3. ...

しかし、ビデオ ストリームから各フレームをキャプチャ/グラブするために使用できる API/ライブラリがわかりません。(ffmpegを使用してフレームをビデオファイルにエンコードできました)

wiki: ffserver を使用したスト​​リーミング メディア」を読みました

しかし、ビデオストリームからフレームをキャプチャ/グラブするために C/c++ でプログラムを作成する方法については明確ではありません。

例とチュートリアルへのリンクをいただければ幸いです。

4

1 に答える 1

0

フレームをビデオにエンコードするために FFmpeg コマンド ライン ツールを使用した可能性があります。次に、FFmpeg が使用するライブラリを使用します: libavcodec、libavformat、libavutil など。FFmpeg のダウンロード ページからソースをダウンロードするだけで、doc/examples/ディレクトリ内でそれらを使用する方法の例がいくつか見つかります。1 つの優れた例は、デコードとエンコードの例です。

于 2013-03-27T22:02:59.310 に答える