Multimedia Framework Hardware Capture, Play, Tv Out (Option Feasibility) :
Am new to Qt and have a 3.5 yrs experience in C#.Net programming and little experience in C++. I work for a company which develops software for Tv channel broadcasters.
Currently we use a 3rd party Sdk (propriety) written in DirectX and make API calls for playing files. Using VLC or Windows Media Player components are out of scope because they do not give a frame level control on the video file and there are many pitfalls (like I cannot capture and output video, I cannot overlay, there is visible black frame between 2 files playing back to back, etc.). I want to write a library for the same which should be platform independent (and even porting to embedded devices should be easy). I plan for a personal project (most probably open source but not sure).
My basic requirements are :
Capture live video feed (using a hardware card like Blackmagic or Hauppauge or MpegIO or AJA - any card) and show a preview.
Overlay images, text, banners (flash .swf files), show animations (crawls & tickers) and show a preview.
Also play locally stored video files and toggle between input feed and local play.
Play any kind of audio video file (like a DVD player (so how will I get the codecs)) ?
Output the video to another hardware card from where it goes to the Tv or broadcasting machine.
Record (either playing video or the input feed video) to a file.
Frame level control on the video feed.
Stream video feed to any url by a set of protocols.
I have seen Qt multimedia framework documents (and how it supersedes phonon framework).
Can I achieve this using Qt (4.8 or may be later versions even) ? Is it in the scope of Qt multimedia framework ?
Can I access hardware (input and output cards) to read and write video stream in realtime using Qt ?
How difficult will it be ?
Can I later port my code to some embedded device with Android OS or any other OS (hardware peripheral interfaces will change but functionality will be same) ?
Please reply, as this will be critical if I learn Qt.
-- Sincere Regards
[Moved to General and Desktop, since it wasn't related to any particular Qt tool. -mlong]
Do you find the solution?
How do you read video from card capture?
No, I did not find (also did not try - to my satisfaction) any open source solutions.
All hardware cards come with drivers - which enable memory buffers from where the card input can be read. So all card output (to be sent out by our program) are written to output-buffer and the card driver reads and delegates it - all input captured by card is written to the input-buffers and the card driver can be asked to read and relay it. This task is implemented in DirectX.
We bought a 03rd party library (.Net wrapper over COM) for this task.
The same can be achieved by open-cv and hardware's native libraries.
Thanks a lot for comprehensive response