Xuggler 和从直播中播放

Posted

技术标签:

【中文标题】Xuggler 和从直播中播放【英文标题】:Xuggler and playing from live stream 【发布时间】:2012-11-18 13:56:53 【问题描述】:

我们目前正忙于一个项目,我们试图在一个窗口中播放来自 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

现在应该可以将它与输入流一起使用,但它当然应该采用正确的格式。有什么方法可以帮助我们做到这一点吗?

【问题讨论】:

你试过vlcj吗?它有很好的文档记录,对我来说效果很好。我也在考虑使用 xaggler,但经过几天的评估,vlcj 出现在我的名单上。 今天我们尝试了vlcj。至今没有成功。我们想要显示和操作来自 de Parrat Ar Drone 2.0 的视频。我们认为 Xuggle 对两者都有好处。有没有人举例说明如何使用 Xuggle 从 http 流中读取数据? 操纵是什么意思?编辑还是导航? 我的意思是导航。我们想捕捉一个物体并用无人机自动跟随。 @michel3vb 请不要将答案编辑到问题中。如果您解决了您的特定问题,您可以点击帖子下方的按钮Answer your Question。您将不得不等待 48 小时(我认为),然后可以返回并通过单击复选标记将其标记为已接受。不过,我鼓励您在答案中扩展您的编辑内容,因为仍然不清楚您为解决问题所做的工作。添加代码示例通常有助于解决这个问题。 【参考方案1】:

好的,我们解决了问题:

首先我们与无人机建立 TCP 连接:

try
    
        socket_video_tcp = new Socket();
        socket_video_tcp.connect(new InetSocketAddress(commandSender.droneInetAddress, commandSender.VIDEO_PORT));
    

我们的类是可运行的,这意味着我们还有一个方法 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)

就是这样!!

【讨论】:

【参考方案2】:

从有问题的编辑中复制:

今天我们解决了这个问题。我们之前尝试过加载套接字 连接到 Icontainer.open 与 socketconnection.getInputStream 。结果是 0 个流。经过一番 小的调整结果是 1 个流,我们可以看到实时视频 来自屏幕上的无人机!

【讨论】:

@michel3vb 在你发布你自己的答案后,我会删除这个。

以上是关于Xuggler 和从直播中播放的主要内容,如果未能解决你的问题,请参考以下文章

Xuggler,xuggler 5.4 中的转发和倒带视频不起作用

直播平台性能测试技术

Windows Phone 8:播放 YouTube 直播活动流

H5.video在微信中禁止全屏播放视频和直播流

如何使用视频元素在 html5 中播放直播视频?

为啥 Flash-Player 不能播放 RTMP 直播流