QT live video streaming on ARM Linux - qt

I am working on a system that includes two units: control unit and display unit both are ARM linux boards.I want to choose videos from sd card or usb on the control unit and stream this video to display unit and lastly show live video on display unit.I searched web and learned RTP and RTSP protocols can be using for this system.Several applications created with LibVLC and Live555 libs.But I need a clear example to simply work this system on Qt enviroment(developing on Ubuntu 12.04 LTS).Most important point is; I need any guy's experiments on this app which one is stable and good performance (FPS).I appriciate you to helping me with this problem.
Thanks.

Related

Running QT5 in an embedded device with 64 MB RAM

I have been working with QML for a couple of weeks now. But now a new requirement has risen where I have to check whether I can run QT5 in an embedded device for my project. I need this for my GUI related operations. The device has an ARM processor (Intel ARM920T-PXA27x processor to be exact) with 64 MB RAM. 32 MB will be taken up for the OS and the rest will be available for application and QT.
I have to check whether this is possible. I have googled for some references and unable to find a suitable answer to my requirement with QT5. I need the GUI libraries but my project does not have advanced graphical requirements like swiping or animations. It contains basic controls like texts, buttons and lists/grids. Since I am new to QT especially to this part, I would like to hear whether
1) Is this a viable option and should I keep digging more into this? Any feedback would be welcome to know if it's worthy to spend time to attempt this or if it's a lost cause.
2) If there are options, could you point me in the right direction to look more into this?
It depends on the OS you are running on your SOC.
It's definitely possible when running Linux. You can e.g. use Qt Lite for configuring a minimal static build of Qt. Then you deploy your statically linked application to the device. You can check this blog post for experiences with Qt Lite.
One possibility is to go with Qt for Device Creation for the whole embedded Linux based software stack which boots to a UI implemented with Qt technologies.

JavaFX video player using VLC slow performance

Currently I’m trying to develop RTSP video player, which can show many streams at one time (2, 4, 5 etc). It has to be fast and be able to run on Windows, Mac and Linux.
First app version has been written on Swing and VLC. Good performance, ability to play many streams at one time on slow PC. But not impressive UI and video playing is unsupported on Mac
So, after a lot of researching I stopped on JavaFX and VLC. Great UI, support on all platforms, but performance issues on slow PCs.
Here is simple project which can play one video: https://github.com/costello/vpfx
(don’t forget to set your media link in class java/app/AppController.java, line 22)
Unfortunately it’s using too much CPU, even if I play only one video. I tried to play 2 or 4 videos (from different RTSP streams), completely nightmare.
Here is CPU usage graph on PC with Intel® Pentium® Processor E5300 
(2M Cache, 2.60 GHz, 800 MHz FSB) and integrated video card: http://imgur.com/MrBv3HF
vlcj version: 3.0.1
VLC version: 2.1.5
Java: 7 and 8 (java fx 2.2 and java fx 8), same result.
Found this OpenGL discussion: How to use OpenGL in JavaFX?
But I don’t know how to use OpenGL to render image from given RGB array and even I don’t know will it help.

Displaying different stuff to multiple Projectors.

I want to connect multiple projector to single laptop, I found about VGA Splitter (http://www.kvmswitchtech.com/vga-splitter-350mhz-8-port-p46359.htm) which can use to connect multiple projectors to single PC.
But I don’t want to display whole screen in both Projectors, in short Projectors should display different stuff at same time.
For Example:-
Projector 1 can Display Power point Presentation and Projector 2 can Display the running movie in player.
I got below set of Questions
Is there any Software available to perform this operation?
If I want to write my own application, Is Directshow (Provided by Microsoft ) is good one to start?
Is there any other VGA Programming language available?
Is there any Software available to perform this operation?
The primary question you are going to get here is how the projectors are connected to PC. The device might need specific integration and you're moving the item #2 below immediately. Otherwise it can be a sort of secondary monitor and you can extend your desktop over it, and then any full screen application running on the secondary monitor is going to be projected.
Perhaps, you will find more software choices going to SuperUser.
If I want to write my own application, Is Directshow (Provided by Microsoft ) is good one to start?
As mentioned above, the hardware might need you to use specific SDK from the vendor and this is your starting point. DirectShow is the API that covers multiple related tasks and might be of use here:
it is capable to built media pipelines terminating at DirectShow-compatible video output device (the projector might be not might be not capable/compatible)
it allows you to play media files into your application and otherwise control video/audio and integrate it into higher level software
DirectShow as API does not fully cover requested task, but it definitely relevant might be used in the in-house built Windows based app.
Is there any other VGA Programming language available?
The "language" is not actually language and it is how particular device is integrated with PC. This is typically covered by hardware vendors who provide the hardware with accompanying development kits and samples.

Qt Based TouchScreen GUI for ARM9

I want to work in HMI domain and have started learning it.
In first stage I want to develop Qt GUI based touchscreen application for ARM9 board. Can anyone please suggest how to go for it and any budget ARM9 Dev board with integrated touchscreen LCD for this purpose? I want to use opensource platform as much as possible.
I know I can do it with more ease on an ARM board which support some OS like (say) embedded linux or may be Rasberry Pi with java or Qt based GUI. But I do not want to use OS rather want to develop just a simple touch screen GUI application to (say) turn a LED on the ARM board (without running any OS).
My next step of learning will be using touch screen GUI, Rasberry Pi with raspbian, where I have already found numerous resources Online.
Thanks
It may be better to just get a low end tablet or why not even a phone, much cheaper than a dev board with additional touchscreen. Plus Android is open. It may be a good idea to get an Ubuntu touch compatible device. The Pi, while cheap, is also very underpowered. A cheap tablet or phone will be more applicable, especially since official Android support in Qt is looming on the horizon. So why spend more money on a lower spec'd device with very narrow application range? Not to mention the wide range of sensors you get with a market device - cameras, compass, gyroscope, GPS, accelerometer - those could come in handy in a HMI scenario. Last but not least, graphics drivers are usually better in production devices than prototype boards.

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