2013-10-02 119 views
0

这是第三次也是最后一次我会尝试在StackOverflow上提出问题,而我的问题方式非常具体。VLCJ JPanel播放视频流预览

我有一个Java应用程序,将采取桌面和与libx264编码,然后用RTMP流twitch.tv。我的问题是我想要预览流,而我发现要做到这一点的最佳方式是将vlcj视频播放器添加到jpanel。那已经完成了。

但我不能做的是:发送流出两个Twitch,并在屏幕上。并让该屏幕获取该流,并显示它。

流式传输器是avconv,用于libav。 (FFmpeg的,但对Ubuntu) 猛砸代码加载:

`#! /bin/bash 
clear 

INRES="$1" 
OUTRES="$2" 
FPS="$3" 
QUAL="$4" 

STREAM="$5" 

avconv \ 
-f x11grab -s $INRES -r $FPS -i :0.0 -qcomp 1.0 \ 
-f alsa -ac 2 -i pulse \ 
-vcodec libx264 -s $OUTRES -preset $QUAL -g 2 \ 
-acodec libmp3lame -ar 44100 -threads 6 -q:a 3 -b:a 712000 -bufsize 512k \ 
-f flv $STREAM` 

vlcj面板甚至可以观看YouTube视频或抽搐视频,但我希望它具有低时延。

任何帮助表示赞赏。谢谢。

+0

:/耐心是一种美德。 – DaCoder

回答

0

vlcj测试中的此示例源流RTP并同时在JFrame中显示视频。

https://github.com/caprica/vlcj/blob/vlcj-2.0/src/test/java/uk/co/caprica/vlcj/test/streaming/StreamRtpDuplicate.java

您应该能够到例如适应你自己的特定需求,例如如果你使用不同的协议流。

关键是要设置正确的VLC“SOUT”流输出选项,当你播放的媒体,尤其是“重复”输出到“显示”:

:sout=#duplicate{dst=display,dst=rtp{dst=230.0.0.1,port=5555,mux=ts}}

+0

我会放弃它!谢谢您的帮助。如果可以的话,我会加倍努力,而且,如果它有效,我会标记为已回答。 – DaCoder

+0

好的,你可能不得不通过这一步,我是RTP/RTMP流新手。我有一个应用程序“avconv”,它将抓取屏幕并将其流式传输至抽搐。我希望vlcj窗格以低延迟(pref)预览那个流,所以我需要做的就是接受我的应用程序,并将它传输到该VlcJ(上面给出的),并让它显示流,然后重新编码并发送出去?我不能只有两个输出从我的应用程序,一个抽动,一个我的vlcj显示?而且,我如何在本地流式传输?谢谢您的帮助。 – DaCoder

+0

原始问题中$ STREAM参数的典型值是什么? – caprica