RTSPストリームを再生するために使用するカスタムGStreamerパイプラインを構築しました。同時に、このパイプラインを使用するために新しいGstPlayer
を作成したいと思います。問題は、GstPlayer
のパイプラインを設定する方法がないことです。関連する唯一の方法はgst_player_get_pipeline()
です。GstPlayerのパイプラインをカスタマイズする方法がわかりません。 ?カスタムパイプラインをしたいですか、なぜ プレイヤーがplaybinを使用します。..GstPlayerパイプラインを設定するには?
GstElement *pipeline, *source, *filter, *sink;
// Create pipeline elements
pipeline = gst_pipeline_new ("vdi-pipeline");
source = gst_element_factory_make ("rtspsrc", "vdi-source");
filter = gst_element_factory_make ("decodebin", "vdi-filter");
sink = gst_element_factory_make ("appsink", "vdi-sink");
if (!source || !filter || !sink)
{
__android_log_print (ANDROID_LOG_ERROR, "Error", "A GstElement could not be created. Exiting.");
return;
}
// Add elements to pipeline
gst_bin_add_many (GST_BIN (pipeline), source, filter, sink, NULL);
// Link elements together
if (!gst_element_link_many (source, filter, sink, NULL)) {
__android_log_print (ANDROID_LOG_ERROR, "Warning", "Failed to link elements!");
}
質問にカスタムパイプラインが必要な理由を指定する必要があります。ライブストリームから別の場所で処理するためにフレームを取得しようとしています。私は 'appink'要素をパイプラインのシンクとして使う必要があると信じています。ビデオが' gst_app_sink_pull_sample(appsink) 'を呼び出して現在のフレームを取得している間に、私が望む方法を処理できます。(私の場合、ビットマップを作成します)。 – MarkyDD
@MarkyDDチェックの更新 – nayana