[英]Xuggler and playing from live stream
我們目前正在忙於一個項目,在這個項目中,我們嘗試在Java的實時流中在窗口中播放視頻文件。 我們已經設法使用InputStreamReader通過Socket對象捕獲流。
下一步是使用現有的庫(Xuggler)或代碼來解碼此流並在一個簡單的窗口中顯示內容(視頻)。
該流源自Parrot AR Drone 2.0,IP地址為192.168.1.1:5555。 這就是我們陷入困境的地方。 我們嘗試使用的代碼是這里找到的DecodeandPlayVideo示例:
現在應該可以將它與輸入流一起使用,但它當然應該是正確的格式。 有什么方法可以幫助我們這樣做嗎?
我們解決了這個問題:
首先,我們與無人機建立TCP連接:
try
{
socket_video_tcp = new Socket();
socket_video_tcp.connect(new InetSocketAddress(commandSender.droneInetAddress, commandSender.VIDEO_PORT));
}
我們的類是Runnable意味着我們還有一個方法run()在這個方法中我們發送一個video_enable命令,我們也通過發送這個命令來禁用動態視頻比特率:video:bitrate_ctrl_mode 0;
public void run()
{
commandSender.sendConfigCommand("VIDEO_ENABLE");
commandSender.sendConfigCommand("VIDEOBITRATE");
decode();
}
我們的decode()方法可以在這里找到: https : //github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java
在這種解碼方法中,我們改變了這個:
if (container.open(filename, IContainer.Type.READ, null) < 0)
對此:
if (container.open(socket_video_tcp.getInputStream(), null) < 0)
就這樣!!
從有問題的編輯復制:
今天我們解決了這個問題。 之前我們嘗試使用socketconnection.getInputStream將套接字連接加載到Icontainer.open中。 結果是0個流。 經過一些小的調整后,結果是1個流,我們可以在屏幕上看到無人機的實時視頻!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.