在Xamarin Android中替代Xuggle-Xuggler / FFmpeg?

时间:2016-05-17 11:27:12

标签: android video xamarin ffmpeg xamarin.android

有几天我试图找到一个可以解码Parrot AR Drone 2.0视频流的工作库。问题实际上是FFmpeg不能在Xamarin Android中运行,而Xuggle-Xuggler只适用于Java,这使得它非常困难。

此外,我尝试使用FFmpeg,但每次我都遇到这样的错误:DllImport error loading lbavcodec-55': 'dlopen failed: libavcodec-55" not found'.我看到了很多可能的解决方案,但没有任何效果。我还尝试编译一些包含FFmpeg源代码的.dll文件,但遗憾的是和以前一样的错误。

我只想创建一个TCP视频流到" 192.168.1.1:5555"。之后我想使用一个可能的解码类/库,它可以将字节解码为帧或类似的东西,然后使用VideoView将其放在视图上,这样帧就会显示在智能手机上。

有没有人经历过这个?或者有人知道一个工作库来解码无人机的TCP视频流吗?

感谢。

1 个答案:

答案 0 :(得分:0)

好消息,因为我刚解决了这个问题。

使用FFMpeg是可能的,但您需要专门为您的平台编译。实际上这在Windows中比在Ununtu / Linux中稍微困难一点。但是,我尝试在Xamarin Android中实现预编译的库,但是有DllImport error loading lbavcodec-55': 'dlopen failed: libavcodec-55" not found'之类的错误,所以这不起作用。 Xuggle-Xuggler也是一个视频解码器,但是专门针对Java而且我在Xamarin Android工作,所以我必须找到别的东西。

几周后,我看到了一个使用OpenCV的项目。这可以解码无人机的视频流。然而,有一个人:https://github.com/AJRdev/ARDrone-Android-GEII以两种不同的方式制作视频流。即通过OpenCV和一个名为“Vitamio”的库。

我所做的是尝试使用Xamarin Android支持的Vitamio库。因为这个Xamarin Android版本已知https://components.xamarin.com/gettingstarted/vitamiobinding,但这是一个旧版本,所以我决定使用可在此处找到的Vitamio库:https://github.com/shaxxx/Xamarin.Vitamio。我正在使用这个库,因为它使用的.AAR包含与我之前讨论的项目中的Vitamio库相同的文件,最重要的是,没有出现错误:)

不幸的是,互联网上没有关于使用Xamarin Android的Parrot AR Drone 2.0的信息。所以,如果有人遇到这个问题,那么你可以使用名为“Freeflight 2.4”的官方应用程序的源代码,因为那个是专为Android设计的。然而,Freeflight 2.4应用程序中有很多代码需要花费大量时间来获取视频流,但我没有时间,所以我选择了一种更简单的方式,如我之前所解释的那样。

实施后,您应该能够在智能手机上看到视频!

祝你好运!