11

この質問は少し複雑で曖昧に聞こえるかもしれませんが、できる限り明確にしようと思います。私は多くのグーグルを行い、多くの時間を費やしましたが、ウィンドウに関連するものは何も見つかりませんでした.

2 つの動画を 1 つの画面で再生したい。1 つは背景の全画面表示で、もう 1 つはその上の小さなウィンドウまたは右隅の小さな幅/高さです。次に、両方のビデオを 1 つの画面で一緒に再生する出力が必要です。

つまり、基本的に 1 つのビデオが別のビデオをオーバーレイし、それを出力としてストリーミングして、ユーザーが後でそのストリームを再生できるようにします。

コード全体を書くようにお願いしているわけではありません。何をどのように行うか、それを実現するためにどのツールまたはサードパーティ SDK を使用する必要があるかを教えてください。

更新:多くの解決策を試しました。

1. Xuggler- サポートしていませんAndroid

2.JavaCVまたはJJMPEG- その方法を提案するチュートリアルが見つかりませんか?

現在FFMPEGを探しています-長い間検索されましたが、それを行うためのコーディング方法を提案するチュートリアルを見つけることができません. コマンドラインで修正する方法を見つけました。誰でもFFMPEGのチュートリアルを提案または指摘したり、他の方法を教えたりできますか

4

3 に答える 3

1

私はJavaCVから始めます。それは非常に優れており、柔軟性があります。フレームを取得して合成し、ファイルに書き戻すことができるはずです。FFmpegFrameGrabber および Recorder クラスを使用します。構成は手動で行うことができます。

残りの答えは、いくつかのことに依存します。

  • ファイル/メモリ/URL から読み取りますか?
  • ファイル/メモリ/URL に保存しますか?
  • リアルタイム処理が必要ですか?
  • シンプルなピクチャー・イン・ピクチャー以上の何かが必要ですか?
于 2013-03-19T10:51:44.630 に答える
0

OpenGL を使用してこのトリックを実行できます。ただし、FBO を TEXTURE0 として、2 番目を EXTERNAL_TEXTURE として使用して、最初のビデオを FBO でレンダリングし、次に 2 番目のビデオをレンダリングするステップをレンダリングする必要があることに注意してください。

ブレンディング、および必要なものはすべて OpengL によって行われます。

ここでソース コードを確認できます: Using SurfaceTexture in Androidとここでいくつかの重要な情報: SurfaceTexture (外部画像) と通常のテクスチャの Android OpenGL の組み合わせ

唯一わからないのは、mediaplayer の 2 つのインスタンスが Parallel で実行されている場合に何が起こるかということです。問題ないと思います。

于 2013-04-09T11:23:30.457 に答える
-2

ffmpeg は非常に活発なプロジェクトであり、常に多くの変更とリリースが行われています。

Xuggler プロジェクトを見る必要があります。これは、やりたいことのための Java API を提供し、ffmpeg と緊密に統合されています。

http://www.xuggle.com/xuggler/

Runtime.exec() パスをたどることを選択した場合は、次の Red5 スレッドが役立ちます。

http://www.nabble.com/java-call-ffmpeg-ts15886850.html

于 2013-03-19T12:17:46.587 に答える