AIVCtrl a new control point based on Qt5 to manage UPnP (DLNA) media severs and renderers
-
Re: [QtUPnP a C++ framework](based on QT5)
After publishing QtUPnP with its test program "chupnp", I published AIVCtrl.
AIVCtrl is a control point to browse media servers and to drive media renderer. Of course it is based on QtUPnP library.
Its orientation is user, chupnp was developer.
AIVCtrl is built like a phone or a remote control. It is similar at a player on mobil systems. The main functionalities are:- Discover and show servers and renderers.
- Browse the servers content.
- Manage renderers like a player (volume, seek, mute, suffle, repeat, cover, previous, next...).
- Manage audio, image, video playlists and favorites.
- Verify playlist elements.
- And a lot of another things.
In the same way as the framework QtUPnP, it is based on QT5 and use only QT API, no other system dependent API.
The source codes are available at https://github.com/ptstream/QtUPnP.To test easily AIVCtrl, some installers are available at: https://drive.google.com/drive/folders/1buJLY6XTpp-wZo90_Iixgs8oof-Ij1yu?usp=sharing
- Windows 7 to 10: Download install-AIVCtrl-100.exe and double click on it to install. Tested with Windows 10. To use Vista the application must be rebuilt with Qt 5.6. - Kubuntu and Ubuntu: Download aivctrl-1.0.0-beta-1.deb double click on it to install. Tested with Kubuntu 17.10, and Ubuntu 16.04 LTS (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl). - All Linux: Download aivctrl-1.0.0-beta-1.zip for a manual installation. Not tested (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl). - Documentation in English and French.
I look forward to your remarks, test results...
Good luck. -
A new version of AIVCtrl is available. Installers can be downbloaded at: https://drive.google.com/drive/folde...yu?usp=sharing
-
Windows 7 to 10: Download install-AIVCtrl-101.exe and double click on it to install.
Tested with Windows 10. To use Vista the application must be rebuilt with Qt 5.6. -
Kubuntu and Ubuntu: Download aivctrl-1.0.1.deb double click on it to install.
Tested with Kubuntu 17.10, and Ubuntu 16.04 LTS (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl). -
All Linux: Download aivctrl-1.0.1.zip for a manual installation.
Not tested (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl). -
Documentation in English and French.
I look forward to your remarks, test results...
Have a nice day. -
-
FWIW, I'm using minissdp daemon from BSD-licensed miniupnp project [1]. It runs independently from the application and keeps track of all UPnP devices in the network, and then it's queries via IPC from main application (I've embedded slightly modified part of miniupnpc client and use it as a library).
Benefits:
- Permissive license
- Mature, proven solution. Note that making quality implementation of SSDP protocol from scratch is not so easy task, it should not create excessive traffic and carefully track when discovered devices should be considered offline
- Process separation allows to manipulate minissdp daemon from console client, may be useful for debugging
Drawbacks:
- DLNA layer is not implemented, you need soap client (QtSoap is sufficient) to interact with device, and do some HTTP requests and XML parsing (not that complex if your usage of UPnP/DLNA is not sofisticated)
[1] https://github.com/miniupnp/miniupnp/tree/master/minissdpd
-
FWIW, I'm using minissdp daemon from BSD-licensed miniupnp project [1]. It runs independently from the application and keeps track of all UPnP devices in the network, and then it's queries via IPC from main application (I've embedded slightly modified part of miniupnpc client and use it as a library).
Benefits:
- Permissive license
- Mature, proven solution. Note that making quality implementation of SSDP protocol from scratch is not so easy task, it should not create excessive traffic and carefully track when discovered devices should be considered offline
- Process separation allows to manipulate minissdp daemon from console client, may be useful for debugging
Drawbacks:
- DLNA layer is not implemented, you need soap client (QtSoap is sufficient) to interact with device, and do some HTTP requests and XML parsing (not that complex if your usage of UPnP/DLNA is not sofisticated)
[1] https://github.com/miniupnp/miniupnp/tree/master/minissdpd
@Konstantin-Tokarev
Thanks Konstantin for your remarks.
Indeed, I examined minissdp. I may have missed something but I did not find anything about Apple systems.
In fact, the purpose of this library is to create a simple wrapper for UPnP/AV control point (SSDP, SOAP, UPnP Eventing...) totally autonomous. QtUPnP use only standard QT libararies and no other code.
I agree with you making quality implementation of SSDP protocol from scratch is not so easy task. It is true for SOAP and even more for the AV part of UPnP/AV due to the strange implementation of certain UPnP/AV servers and renderers. -
A new version of QtUPnP and AIVCtrl are now available (version 1.1.2).
The major improvements are:-
New system compatibility
- Raspberry PI 3 (tested with Rasbian Stretch).
- MacOS.
-
Better devices discovery.
- Save the device list and try to restore it.
- Limit the subscription at a subset of services to limit the network trafic.
Of course the source codes are available at https://github.com/ptstream/QtUPnP.
To test easily AIVCtrl, the installers are available at: https://drive.google.com/drive/folders/1buJLY6XTpp-wZo90_Iixgs8oof-Ij1yu?usp=sharing in English and French.I look forward to your remarks, test results...
Have a nice day. -