OpenRTSP Qt integration for video rendering - qt

I was trying to use Qt for playing live video for which Qt provides a phonon class. However, the limitation with this is that it is not capable of decoding RTSP packets on windows (since phonon uses Directshow on windows platform).
In order to make it capable of doing this, I am planning to now integrate openRTSP with Qt. Within openRTSP where can I find a pointer / handle to the video buffer or frame buffer so that I can pass on this to my Qt widget for display.
Has anyone attempted this before?
Any pointers on the correct approach for doing this would be highly appreciated.

Take a look at GStreamer and GStreamer Qt bindings. They provide VideoWidget etc so it should provide you enough code examples how you should do this: http://gstreamer.freedesktop.org/modules/qt-gstreamer.html

Related

Use gstreamer gtk signaling in QT application

Hi i am writing a small Qt Application and part of that would be a webRTC video stream for which planned to use Gstreamer.
This is where i can into problems.
Naturally my app is a QtApplication and is thus managed by Qt a processes. Now while planning the code I learned that The component webrtcbin from Gstreamer relies on GLib and the GTK signaling.
so things like
g_signal_emit_by_name
or
g_signal_connect
will run into nirvana without the GLib main loop.
Now after researching and getting a headache over this i hope that i overlooked something and that the power of the crowd-brain can help me with a hint.
An answer to any of the following would help
Is it possible to have Glib signaling inside a QT app?
Is it feasible/possible to run both main loops (QT and GLib)?
Is there a good example on how to connect a gstremer pipeline with pure webrtc (not using webrtcbin)

Qt Bluetooth AVRCP Implementation

I'm working on Qt project and I successfully implemented Bluetooth connection using "HandsfreeAudioGateway" so I can stream audio.
As a next step I would like to implement AVRCP to control the audio player over Bluetooth.
Looks like Qt doesn't support AVRCP yet. On the other hand BlueZ has mediaAPI which I don't know how to use it in Qt.
If you can show me a way or an example to figure it out, would be appreciated.
Cheers!
You could take a look at bluez-qt which is a Qt wrapper for Bluez 5 DBus API.
BluezQt::MediaPlayer represents a media player interface and might be a way forward for you.

Media Player in Qt

I am posting this to know whether a media player can be developed with Qt5 without using gstreamer plugins as backend.Is there any other backend engine available in embedded linux platform to play media files other than gstreamer. I am using intel X86 32 bit architecture.
Thanks in advance.
Just checked the Qt5 plugin sources (/qt5/qtmultimedia/src/plugins) and it seems like gstreamer is the only option for linux. Phonon has been dropped in Qt5.
If you want to use phonon you'll have to stick with Qt 4.8.
Qt5 on Linux only supports gstreamer by using the plugins in http://qt.gitorious.org/qt/qtmultimedia/trees/stable/src/plugins. Of course you can write your own plugin using ffmpeg or whatever you want. This is pretty simple, but entirely depends in the performance you need.
Phonon was available in Qt 4, but AFAIK Phonon is gstreamer based again. There is also a project to create a vlc-based Phonon, but I don't really know how it works (https://projects.kde.org/projects/kdesupport/phonon).
However, you don't specify your specific target, but if you want to achieve acceptable performance for graphics and/or video on embedded devices, you probably really need hardware acceleration. And Phonon will hardly help you with this. Also consider that Qt 4 is old: it misses years of development.
I'm also writing a Qt5 backend using OpenMAX and ffmpeg: http://thebugfreeblog.blogspot.it/2013/04/hardware-accelerated-qtmultimedia.html. It might be an example if you need to write your own.
Also consider that the errors you reported (why reporting in an answert?) seem to suggest you built gstreamer wrong.

Video player in qt using Gstreamer or Phonon or VLC Player

Right now I am in no where :( I want to develop a video player where human will be detected using a detection algorithm which is already working in visual studio platform. My player should simply show the detection in video player. I want use QT framework for that. But the problem is I am not sure which one i should go for. There is option of using Phonon, GStreamer, and vlc player that can be use for my purpose but does anybody has any real experience like this kind of stuff ??
Thanks in advance !
GStreamer is a great cross-platform multimedia framework and I've used it many times, including a few projects involving Qt. Knowing GStreamer certainly adds a great skill to your arsenal but it will take some extra time to understand it's design and how it works.
I've never used VLC Player, and Phonon should be your last resort because it is dying.
Another option you might consider is QtMultimediaKit, which is a part of Qt Mobility. It's Qt all the way and may be an easier transition to your current set of skills.

Media player/recorder (phonon)

I would like to develop a media player/recorder.
The primary target platform is Windows, support for other OSs would be nice, but that's not a high priority. It should be able to play formats like wav, mp3, avi. It should also be able to record audio (microphone) and video (webcam or capture card).
As I have some experience with QT and C++, I looked at QT (4.7.2) phonon with DS backend. But unfortunately I was unable to play a simple AVI, even with the MediaPlayer sample that comes with the QT demos. I could only hear sound, but saw no video.
The developer machine is a 64-bit Vista. I also tried it on another 64-bit Vista without any luck. On a 32-bit Win7 (QT MinGW) it then finally worked. But when I copied that MediaPlayer executable and its dlls to the 64bit machines and tried to run it, it again failed.
Is there a known problem with QT phonon on 64 bit machines? I also heard of a VLC phonon backend. Could that be solution? Is QT phonon mature enough to develop a commercial application on top of it? Or is it maybe more wise to access directshow directly?
Thanks
Directshow is just a programming framework or API, it does not guarantee that you will be able to play every possible video format on every computer, since it relies on codecs installed on the system to decompress the audio/video streams. A codec for one specific format might be available in one system an not in anotherone. On top of that, 64 bits architecture adds even more complexity, since codecs built in 64 bits mode cannot be used from 32 bits applications and vice-versa. The issue you are facing on the 32 bits Phonon player is very likelly to be caused by a missing or "not 32 bits compatible" codec.
VLC on the other hand is a self contained application, it does not depend on DirectShow or in any codec installed on the system, so it might be a good idea to use it instead of DirectShow, however you will need to read VLC legal terms and decide if you can still use it for your purposes.

Resources