2013-10-02 118 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