我正在考虑在我的基于Linux的系统上实现我自己的DLNA系统. “Platinum UPnP”库是一个很好的选择.
我发现“Platinum UPnP”库的大小非常大.
是否有任何其他开源UPnP(DLNA)库在C/C++中具有更优化和紧凑的实现.
解决方法:
pupnp基于原始的libupnp代码,年龄显示…在我看来,在应用程序中使用它是痛苦的.当你只是测试东西时,这似乎并不重要,但是当你有一个复杂的应用程序时,痛苦是非常真实的.
有关Platinum的一点需要注意的是它与大多数Linux库不同,它是GPL.那个以及它甚至在主Linux发行版中都没有的事实意味着我从未尝试过它,所以我不能更详细地回顾它.
我自己的选择是GUPnP(尽管你可以轻易地称我有偏见):它是用C语言编写的,使用Glib并且它是根据LGPL许可的.使用GUPnP制作的移动和机顶式设备现在在现实世界中使用. UPnP和DLNA都拥有使用GUPnP制作的认证设备和服务.该库确实有一些依赖(libsoup,libxml2),但我相信这些是有充分理由的. API主要用于在不牺牲性能的情况下为用户提供便利 – 这是大多数upnp堆栈无法声明的内容.