2014-04-14 4 views
0

GStreamer를 처음 사용하고 Java에서 파이프 라인에서 Caps 속성을 얻으려고합니다. 내가 명령 줄에서 잘 작동파이프 라인에서 모자 가져 오기

gst-launch-0.10 -v --gst-debug-level=2 filesrc location="C:/Dokumenty/Eclipse/rtsp_test/trailer.mp4" ! decodebin2 ! queue ! jpegenc ! rtpjpegpay ! udpsink host=::1 port=5000 sync=true

이 파이프 라인을 시도하고 내가

/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, payload=(int)96, ssrc=(uint)3175930633, clock-base=(uint)3850186239, seqnum-base=(uint)8531

을 필요로하는이 모자를 반환하지만 그나마 알고에서 자바에서이 모자를 얻는 방법 파이프 라인

pipe = Pipeline.launch("filesrc location="C:/Dokumenty/Eclipse/rtsp_test/trailer.mp4" ! decodebin2 ! queue ! jpegenc ! rtpjpegpay ! udpsink host=::1 port=5000 sync=true"); 

파이프 라인에서 udpsink0을 얻는 방법은 있습니까? 당신이 Bin에 대한 설명서 (Pipeline의 부모 클래스), 개별 요소를 얻을 수있는 몇 가지 방법이있다 볼 수 있습니다 보면

당신에게

답변

1

감사드립니다. 가장 간단한 방법은 Bin.getElementByName("udpsink0")입니다.

더 일반적인 방법은 Bin.getSinks()을 호출 한 다음 목록에서 첫 번째 결과를 가져 오는 것입니다. 다른 유형의 싱크를 사용하는 경우에도이 방법으로 코드가 작동합니다.

당신이 Element 개체가 후에는 Element.getStaticPad("sink")를 사용하여 패드를 얻을 수 있습니다 다음 마지막으로 당신이 Pad.getNegotiatedCaps()으로 Caps 개체를 얻을 수 있습니다. 즉 https://code.google.com/p/gstreamer-java/downloads/list

:에서 찾을 수의 javadoc을 확인 자세한 내용은

,

Element sink = pipe.getElementByName("udpsink0"); 
Pad pad = sink.getStaticPad("sink"); 
Caps caps = pad.getNegotiatedCaps(); 
관련 문제