2012-04-23 3 views
0

gstreamer에 대해 뭔가 배우려고합니다. gstreamer를 사용하여 vstream 플레이어에서 udp를 통해 스트리밍되는 비디오 스트림을 수신하고 있습니다. 이를 위해 다음 코드를 작성했습니다.ganther가받은 영상을 표시합니다. 그림이 표시되지 않습니다. 단색 만 표시됩니다.

playbin = gst_element_factory_make("playbin2", "play"); 
g_object_set(G_OBJECT(playbin), "uri", uri.c_str(), NULL); 

bus = gst_pipeline_get_bus(GST_PIPELINE(playbin)); 
gst_bus_add_watch(bus, &bus_watcher, NULL); 
gst_object_unref(bus); 

gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PLAYING); 

문제는 비디오가 표시되지 않는다는 것입니다. 회색 (검정/녹색/파란색 등) 화면 만 표시됩니다. 어떤 사람들은 거기서 움직이는 것을 보는 것이 때때로 가능합니다. 소리와 함께 상황이 조금 나아졌습니다. 대부분의 경우 인식 할 수 있습니다. "buffer-duration"및 "buffer-size"와 같은 속성을 설정하려고했지만 사운드의 품질이 향상된다는 유일한 효과가 있습니다. 그리고 한 가지 더. 나는 보통의 플레이 빈 (playbin2가 아니라)을 사용하려고 노력했다. 최소한 음질이 향상되었습니다.

누군가이 문제를 해결하는 방법을 알고 있을까요?

+0

C 코드처럼 보이므로 C 태그를 추가하는 것이 어떻습니까? – karlphillip

+0

어떤 gstreamer 버전을 사용하셨습니까? 그것은 모든 종류의 파일 또는 특정 파일에 대해서만 발생합니까? gstreamer를 사용하는 토템과 같은 응용 프로그램에서 비디오를 재생 해보십시오. 기본적으로, 그것을 좁히려 고 노력하십시오. – ensonic

답변

0

글쎄, 아직 비디오를 볼 수는 없지만 프로그램이나 비디오 파일 형식의 오류는 아닙니다. 나는 http로 그것을 방송 한 후에 같은 playbin으로 같은 비디오를 보여줄 수 있었다.

+0

playbin2를 사용하여 UDP를 통해 브로드 캐스트를 수신하려면 URI를 "udp : //0.0.0.0 : 5000"으로 설정하고 싶습니다. 5000을 방송중인 포트로 교체하십시오. – Chimera

0

응용 프로그램에 비디오 싱크와 오디오 싱크를 추가하고 무슨 일이 벌어지고 있는지 더 잘 제어하고 싶을 것입니다.

Example 2.1은이를 수행하는 파이썬 응용 프로그램입니다.

관련 문제