Backends to use for multimedia in Qt5 - c++

What are available and reliable multimedia backends to use with Qt5 for media playback on Linux?

I don't know about backends rather than gstreamer for linux, but you can try to integrate QmlVlc project into your code. You can find a demo here. It uses vlc for playing video. I successfully used this project for my purposes under Android. You can also try QtAV, it uses ffmpeg. From my experience it worked on Android as well, but there were issues with hanging UI. It might have needed more work to properly integrate though, but I didn't want to spend time on it, at least it was easy to try.
I know you were not asking for Android libs, but by using on Android I mean native (C++) code, so no Java was used.

you can use Gstreamer Qt bindings

Related

How can I use WebRTC in a desktop application for voice chat?

I am trying to add voice chat between peers using my software - desktop application to desktop application over a network. My software is compatible with Windows and OSX. The difficulty is that there seems to be very little documentation on using the native API, and all the tutorials I've come across are out of date.
I started off by building the libraries and linking them in a new project, but as I mentioned, the tutorials I have found on the Internet are several years out of date, so I didn't get far with that.
So instead I built the native code, following these instructions https://webrtc.org/native-code/development/, and have successfully used peerconnection_client and -_server, which work great.
My problem now is that the peerconnection_client is more complicated than what I need, and I'm finding it difficult extracting the relevant parts (I want to remove the GUI, connect to a peer programmatically, and only transmit audio). And even if I do manage to strip down the peerconnection_client code, to just make voice calls through a terminal, it would still be lot of code to then embed into my program because it isn't linked to libraries, but raw code.
Has anyone else tried using WebRTC for native desktop applications in this way before? Is there any up to date documentation for this I can use? Any help would be greatly appreciated.
Best solution is to use this project :
CEF project
You will get mac os, windows and linux implementation from one project.
You can always update your cef library's to stay on road.
You can also use Firefox variant :
Firefox implementation
There is a lot of other ways like :
QT framework.
https://www.qt.io/
I've worked on a couple Voice/Video/Screen over IP projects using native C++ API, and my advice is: don't do it unless you have tons of time on your hands. Native API/samples is very much abandonware - Google devs keep it in sync with Chrome, but you're on your own, you'll have to dig through WebRTC & Chrome issues and PRs when your code stops working after updating to a newer release branch.
The only documentation is the source code itself, there's plenty of comments, but it's still very hard to figure things out. And those things tend to change from one release to another

Cross Platform (C/C++) Audio Library for MP3, AAC, WAV

I'm trying to find a cross platform audio library that will have the following abilities (in order of importance):
Full Windows, Mac, Linux support
C / C++ APIs
Free/cheap but commercially viable
MP3 Support
AAC Support
WMA Support
FLAC Support
OGG Support
ARM Linux support would be nice
Open Source
I've found several things like OpenAL, libao, Bass, etc. but they all seem to all either have a limitation of OS, codec or both. For the most part MP3 and AAC support are a must as I'm working on a media player and would like it to support those common formats.
Any suggestions?
You can take a look at GStreamer and FFmpeg.
EDIT:
Since you are willing to use Qt, you should definitely check Qt MultimediaKit, which is a part of the Qt Mobility project. Phonon is fading away because Qt is investing on MultimediaKit to replace it.
This example shows how to do simple audio playback. This example shows how to create a multimedia player. This example shows a more advanced music player, using Qt and QML.
I don't know if you are planning on using a framework like Qt.
This has a library called "Phonon" bundled, which is also really nice.
It is built on the corresponding native media framework, so QuickTime on Mac, Windows Media Player on Windows and GTK+ on Linux.
PulseAudio also looks promising without any framework.
Try out JUCE. It is like Qt in some respects, but much more audio-centric.I've been using it for some years now and it is well maintained and written.

How to integrate webkit into a C++ Windows application

I've downloaded a nightly build of webkit which includes a dll, pdb. There are no header files and I can't find documentation on the API and usage of the dll.
I'm looking for example code to integrate this into a C++ application, and how to start requests, render them to window or ideally a Direct X texture.
So far my searching is coming up short on the webkit website and the internet at large.
You might want to check out the Chromium Embedded Framework available here: http://code.google.com/p/chromiumembedded/
I've used it extensively and found it to be functional, stable, and easy to use. It is smaller than QWebKit and has a more liberal license.
Why dont you use QWebKit from Qt? see this

how to play rtsp streamming in QT

I am trying to find a way to play in Qt 4.6 rtsp streaming, that i got from youtube api
can it be done somehow?
Live555 has some very useful libraries on this subject.
Checkout Phonon, multimedia framework for QT.
The most seamless way is to use Phonon.
If you are using Windows, Phonon uses DirectShow as the backend. To utilize this you need a RTSP DirectShow source filter, which you register in Windows. There are commercially available ones and a few open source projects that may have what you need.
For example,
http://sourceforge.net/projects/rtspdirectshow
A good rule of thumb is if you can play it in Windows Media Player (mplayer2.exe, wmplayer.exe), you can play it using Phonon. Currently you would not be able to play a URL containing "rtsp://" in WMP or Phonon is because no DirectShow source filters are installed which support RTSP.

Cross platform c++ with libcurl

I am a perl developer that has never went into the client side programming of things. I'd like to think that I'm a pretty good developer, except I know that my severe lack of knowledge of the way desktop programming really takes away from my credibility.
That said, I really want to get into doing some desktop applications.
I want to try to develop a simple application that will connect to my server and grab an rss feed, then display it in the console. My plan of attack is to use libcurl (and curlpp) to grab the feed (I'd also like to do more curl stuff in the future). But I want to be able to run this small program on linux, windows, and mac because I want to understand developing cross platform.
So here is the question (and I know it is extremely noobish): How do I write c++ code that will use libcurl and curlpp, and will work on the 3 major OSes? The main thing I don't understand is if I have to compile libcurl and curlpp, then how does it work when trying to take it over to the other platforms?
You need to write the code portably - basically make it a console application. You then transfer the source code (not the exe) to the other platforms and compile it there and link with the version of llibcurl on each specific platform.
Neil is right, but using a framework will make your life easier. Try QT it is very nice. It has a cross platform http API, and integrates curl.
I'd recommend Qt4 as well, I've wrote a small'ish tutorial on how to setup a windows gcc compiler on linux and compile Qt4/OpenSSL with it for windows, hope that helps.
http://www.limitlessfx.com/mingw-openssl-qt4-for-windows-on-linux.html
You can easily adapt that tutorial to compiling libcurl instead of just moving to Qt4.