eXport-it, android  UPnP Client/Server

eXport-it的Android的UPnP/HTTP客戶端/服務器

Android


一個android文件共享應用程序,視頻,音頻,圖片和電子書




eXport-it FFmpeg



什么是 FFmpeg 库?

FFmpeg (https://www.ffmpeg.org/) 是一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 FFmpeg 是领先的多媒体框架,能够解码、编码、转码、复用、解复用、流式传输、过滤和播放人类和机器创建的几乎所有内容。 它支持最模糊的古老格式,直到最前沿。无论它们是由某个标准委员会、社区还是公司设计的。

它还具有高度的可移植性:FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows、BSD、Solaris 等各种构建环境、机器架构、和配置。

FFmpeg 库本身在 LGPL 2.1 许可下。启用某些外部库(如 libx264)会将许可证更改为 GPL 2 或更高版本。

这个库是如何集成到Android应用中的

我使用 ffmpeg-android-maker 脚本(贡献者:Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va)来编译库。 该脚本从 https://www.ffmpeg.org 下载 FFmpeg 的源代码并构建库并为 Android 组装它。 该脚本生成共享库(*.so 文件)以及头文件(*.h 文件)。

ffmpeg-android-maker 的主要重点是准备共享库以无缝集成到 Android 项目中。 该脚本准备了要使用的“输出”目录。这不是这个项目做的唯一事情。 ffmpeg-android-maker 的源代码在 MIT 许可下可用。有关更多详细信息,请参阅 LICENSE.txt 文件 https://github.com/Javernaut/ffmpeg-android-maker/ eXport-it FFmpeg 库只是使用 libaom、libdav1d、liblame、libopus 和 libttwolame 编译...但不是所有相关的库。

为了开发对 FFmpeg 的 Java 支持并在 Android 7.1 到 12 上运行,我从 Taner Sener 在 https://github.com/tanersener/mobile-ffmpeg/ 上记录的 MobileFFmpeg 项目开始,该项目不再维护...并在 LGPL 3.0 ...

下获得许可

最后,我准备了一个带有库、包含文件和 Java 支持代码的 JNI Android Studio 项目,并生成了一个 .aar 库文件以作为附加库集成到我现有的项目中。


如何启动多播频道

要启动多播频道,需要使用客户端,以访问本地网络 (Wi-Fi) 上的 UPnP 服务器并支持 FFmpeg。该服务器应该用它导出的文件列表来回答。 如果此服务器支持 FFmpeg,则必须在列表页面顶行的末尾以红色显示小文本“作为频道”。 当文本为“红色”时,单击“播放”按钮的工作方式与使用 UPnP 协议之前一样。如果你点击文本,它应该变成“绿色”,点击“播放”按钮,选择视频或音频文件后,应该会启动一个“频道”。

所选媒体文件的播放方式显然与通过 UPnP 相同,只是启动延迟会因附加任务而变长。 您必须让该客户端继续播放媒体文件以保持管道处于活动状态。

在其他设备上使用此管道

IP 多播不能在 Internet 上工作,它只能在局域网上工作,因此主要在 Wi-Fi 上工作。一个组播数据通道可以同时被多个客户端共享。您正在 Wi-Fi 网络上发送媒体数据流,并在连接的设备上显示这些数据,几乎同步,只是延迟延迟差异。

使用 UPnP 或 HTTP 流式传输时,每个设备都需要所显示视频的带宽,而全局带宽是这两种流量的总和。 通过多播流,我们在 LAN 上发送一个数据流,在多个客户端之间共享。

如果您在启动频道后使用网络上的其他客户端,您应该会在客户端主窗口中看到额外的一行。只需单击此行即可开始显示。

使用其他产品(如 VLC、SMplayer 等)也可以使用 eXport-it 客户端上显示的“UDP”URL 来显示视频或收听通过多播频道分发的音乐。

停止多播频道

停止多播通道的好方法是在您启动它的客户端上停止它,因为该通道在那里受到控制。 播放到流媒体文件的结尾也应该结束节目。