私はアンドロイドからライブをFacebookにストリームしたいです。 FBにストリーミングするための既存の例を適用することができました。javaCV Android、rtmpサーバーにストリーミング中のオーバーレイ上の奇妙な色
その最初のステップは多かれ少なかれ動作します(音声はまだ問題ですが、彼女の範囲にはありません)。私はFBにストリームすることができます。
今、透明なPNG画像でストリームをオーバーレイしたいと思っています。私は次の操作を行い
try{
filter = new FFmpegFrameFilter("movie="+path+"/image.png [logo];[in][logo]overlay=0:0:format=rgb [out]",imageWidth, imageHeight);
filter.start();
}catch (FrameFilter.Exception e){
Log.e(CLASS_LABEL,"Error while starting filter: "+e.getMessage());
e.printStackTrace();
}
、各フレーム上:
私がによって起動時にFFmpegFrameFilterを作成してい
filter.push(yuvImage);
Frame frame;
while ((frame = filter.pull()) != null) {
recorder.record(frame,avutil.AV_PIX_FMT_NV21);
}
問題は、私がすべき私は見当がつかないことをどのピクセル形式ですつかいます。私はすでに多くのピクセルフォーマットを試してみましたので、私はかなりイライラしていますhttps://postimg.org/image/45ha64q9z/
: 私のオーバーレイ画像は、私がこのような何かを得る上のピクセルフォーマットで、RGB色(https://postimg.org/image/f1ri3vj43/)
を持っています。すべてが異なる出力で、ロゴが複数回表示されることがあります。
avutil.javaの可能性の中からどれを選ぶべきかを知る方法はありますか?
EDITに全体のコードを見つけることができます:
// AV_PIX_FMT_ARGB --> 4 at once, all black/white
// AV_PIX_FMT_0RGB --> 4 at once, all black/white
// AV_PIX_FMT_BGR8 --> 1 a bit to big, strange colors
// AV_PIX_FMT_BGR4_BYTE --> 1 a bit to big, stranger blue tint
// AV_PIX_FMT_YUVA422P_LIBAV --> error: Cannot initialize the conversion context.
// AV_PIX_FMT_FLAG_ALPHA --> error: Cannot initialize the conversion context.
// AV_PIX_FMT_FLAG_PLANAR --> error: Cannot initialize the conversion context.
// AV_PIX_FMT_RGB4 --> error: Cannot initialize the conversion context.
// AV_PIX_FMT_RGB32_1 --> 4 at a time, all black/white
// AV_PIX_FMT_0BGR --> 4 at a time, all black/white
// AV_PIX_FMT_YVYU422 --> 2 side by side, gruen, purple tint
// AV_PIX_FMT_YUVJ422P --> Fatal signal 11 (SIGSEGV) at 0x61f7xf000 (code=1), thread 18401 (e.yannick.olay1)
// AV_PIX_FMT_BAYER_BGGR8 --> 1 a bit to big, black/white
// AV_PIX_FMT_BAYER_GBRG8 --> 1 a bit to big, black/white
// AV_PIX_FMT_FLAG_RGB --> 2 a bit to big, black/white
// AV_PIX_FMT_RGB555LE --> 2 a bit to big, strange colors
// AV_PIX_FMT_RGB555BE --> 2 a bit to big, strange colors
// AV_PIX_FMT_RGB555 --> 2 a bit to big, strange colors
// AV_PIX_FMT_RGB4_BYTE --> 1 a bit to big, orange tint
// AV_PIX_FMT_RGBA64 --> 8 side by side, black/white
// AV_PIX_FMT_RGB24 --> 3 side by side, red tint
あなたは、フィルタの「フォーマット= RGB [アウト]」を指定するので、あなたが引くのフレームは、おそらくRGB24であることを行っているので、私はAV_PIX_FMT_RGB24の代わりAV_PIX_FMT_NV21を試してみました。 –
ご協力ありがとうございます。残念ながら私はロゴを赤い色合いで3回並べています。 https://postimg.org/image/he7rq0pev/。 – schw4ndi
AV_PIX_FMT_BGR24で私はこれを得る:https://postimg.org/image/bf08l4egh/。色は今ですが、私はロゴの3つを取得し、元のcamview ist黒/白。私は、フレーム、またはFFmpegFrameRecorder上のピクセル形式のチャネル番号を変更する必要がありますか? – schw4ndi