【发布时间】:2014-03-31 13:13:11
【问题描述】:
我知道如何接受来自网络摄像头的流并将其显示在摆动组件中:
args = Gst.init("VideoTest", args);
pipe = new Pipeline("VideoTest");
final Element videosrc = ElementFactory.make("v4l2src", "source");
final Element videofilter = ElementFactory.make("capsfilter", "filter");
videofilter.setCaps(Caps.fromString("video/x-raw-yuv, width=640, height=480"
+ ", bpp=32, depth=32, framerate=30/1"));
SwingUtilities.invokeLater(new Runnable() {
public void run() {
VideoComponent videoComponent = new VideoComponent();
Element videosink = videoComponent.getElement();
pipe.addMany(videosrc, videofilter, videosink);
Element.linkMany(videosrc, videofilter, videosink);
// Now create a JFrame to display the video output
JFrame frame = new JFrame("Swing Video Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(videoComponent, BorderLayout.CENTER);
videoComponent.setPreferredSize(new Dimension(720, 576));
frame.pack();
frame.setVisible(true);
// Start the pipeline processing
pipe.setState(State.PLAYING);
}
});
我现在想做的是让每个客户端都可以使用此流,这些客户端将使用例如 vlc 媒体播放器或其他视频流阅读器连接到某个端口。这必须是通用的,即我可能还想连接另一个 gstreamer 程序并使该程序成为中继服务器:它是第一个客户端的客户端,并使该流可用于其他客户端。
有没有办法做到这一点?我还是 gstreamer 的新手...
【问题讨论】: