簡體   English   中英

Xuggler和現場直播

[英]Xuggler and playing from live stream

我們目前正在忙於一個項目,在這個項目中,我們嘗試在Java的實時流中在窗口中播放視頻文件。 我們已經設法使用InputStreamReader通過Socket對象捕獲流。

下一步是使用現有的庫(Xuggler)或代碼來解碼此流並在一個簡單的窗口中顯示內容(視頻)。

該流源自Parrot AR Drone 2.0,IP地址為192.168.1.1:5555。 這就是我們陷入困境的地方。 我們嘗試使用的代碼是這里找到的DecodeandPlayVideo示例:

https://github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java

現在應該可以將它與輸入流一起使用,但它當然應該是正確的格式。 有什么方法可以幫助我們這樣做嗎?

我們解決了這個問題:

首先,我們與無人機建立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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM