Java 使用Gstreamer打开和关闭或关闭端口
我正在尝试开发一个Java 使用Gstreamer打开和关闭或关闭端口,java,sockets,gstreamer,Java,Sockets,Gstreamer,我正在尝试开发一个RTP代理服务器,已经完成了一半。我有一个rtpbin,从那里我可以将文件发送到远程主机。但是现在我的主管说,应该实现一种方法来打开和关闭套接字(套接字管理),这需要使用Gstreamer来完成,并且代码应该只使用java 我的代码的一部分如下所示 //send data over network via udp Element udpSink_rtpout = ElementFactory.make("udpsink", "udpsink0") ;
RTP代理服务器
,已经完成了一半。我有一个rtpbin
,从那里我可以将文件发送到远程主机。但是现在我的主管说,应该实现一种方法来打开和关闭套接字(套接字管理),这需要使用Gstreamer来完成,并且代码应该只使用java
我的代码的一部分如下所示
//send data over network via udp
Element udpSink_rtpout = ElementFactory.make("udpsink", "udpsink0") ;
udpSink_rtpout.set("host", REMOTE_HOST) ;
udpSink_rtpout.set("port", 5000) ;
// rtpL16pay - payload encode raw audio over rtp packets
Element rtpL16pay = ElementFactory.make("rtpL16pay", "rtpPay") ;
// rtp part ends here
// add all elements into a pipeline
pipeline.addMany(source, demuxer, decoder, conv, rtpL16pay, rtpbin, udpSink_rtpout) ;
// link all elements
Element.linkMany(source, demuxer) ;
Element.linkMany(decoder, conv, rtpL16pay) ;
// link to rtp
logger.info("Linking pads ....") ;
Element.linkPads(rtpL16pay, "src", rtpbin, "send_rtp_sink_0") ;
Element.linkPads(rtpbin, "send_rtp_src_0", udpSink_rtpout, "sink") ;
demuxer.connect(new PAD_ADDED() {
public void padAdded(Element element, Pad pad) {
logger.info("Dynamic pad added, linking demuxer/decoder") ;
Pad sinkPad = decoder.getStaticPad("sink") ;
Element.linkPads(element, pad.getName(), decoder, sinkPad.getName()) ;
}
});
// set the pipeline to playing state
logger.info(" pipeline now playing....and ") ;
pipeline.setState(State.PLAYING) ;
logger.info(" Pipeline state is " + pipeline.getState()) ;
loop.run() ;
logger.info(" returned ..stopping playback") ;
pipeline.setState(State.NULL) ;
}
}
有人能告诉我现在如何使用JAVA添加打开和关闭套接字的方法吗?您需要以什么方式创建套接字?这是为您的udpsink手动创建的套接字吗?gstreamer使用的,您可以手动创建和设置Hello Benjamin Trent,我正在尝试构建一个RTPproxy服务器,为此,我认为需要自动创建和删除套接字。请你帮我创建一个rtp代理服务器,我真的是一个新手,在里面挣扎了很多。请收听
udpsrc
元素,并发送出去,就像您当前在udpsink
元素上所做的那样。Gstreamer会自动使用这些元素创建套接字。