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!");
}
질문에 사용자 지정 파이프 라인이 필요한 이유를 지정해야합니다. 다른 곳에서 처리하기 위해 라이브 스트림에서 프레임을 검색하려고합니다. 나는 파이프 라인에서 싱크대로'appsink' 요소를 사용할 필요가 있다고 믿는다. 비디오가'gst_app_sink_pull_sample (appsink)'를 호출하면서 현재 프레임을 얻고 싶다면 내가 원하는 방식으로 처리 할 수 있다고 생각한다. (필자의 경우에는 비트 맵을 만들 수 있습니다. – MarkyDD
@MarkyDD 확인 업데이트 – nayana