[英]Calculate amount needed to increment to get target value between certain caps
[英]Get caps from pipeline
我是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
但我不知道,如何从管道中获得Java的上限
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
的父类),则会发现有几种获取单个元素的方法。 最简单的方法是使用: Bin.getElementByName("udpsink0")
。
一种更通用的方法是调用Bin.getSinks()
,然后从列表中获取第一个结果。 这样,即使您使用其他类型的接收器,代码仍然可以正常工作。
一旦有了Element
对象,就可以使用Element.getStaticPad("sink")
获取填充,然后最终可以通过Pad.getNegotiatedCaps()
获取Caps
对象。
有关更多信息,请查看javadocs,该文档可在以下网址找到: https : //code.google.com/p/gstreamer-java/downloads/list
简而言之:
Element sink = pipe.getElementByName("udpsink0");
Pad pad = sink.getStaticPad("sink");
Caps caps = pad.getNegotiatedCaps();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.