Important: Please read the Qt Code of Conduct -

Search for video edition use tutorial with Qt (or plugins/tools, etc...)

  • Actually, i'm able to render a QCamera input to a viewfinder inside a QGraphicsVideoItem, and then overlay it with a text.
    I'm able also to render a QVideoWidget inside a QGraphicsView, but the overlayText item added stay under the video (no more an overlay then).
    The QVideoWidget let me change hue, saturation, luminosity (not color i think), but QGraphicsVideoItem not.
    For example, how to use the video from viewfinder of QCamera and change image color, saturation, hue, contrast, etc... and in the same time, have a nice overlay text (not linked with the video, but same as made by QGraphicsView... a separate real overlay text/graphic) ?
    How to multiplex entries (for example, i have 4 sources video entries, then i would like to put each one on a screen area source, then select wich one to be the record source) ?
    How to, in the same time, record video from source (i know to do that with multimediarecorder) and catch a image capture on the fly (the qt recorder don't know to do that i think) ?

    So... in general, how to use video not only for view a video, but for editing things, use many sources, mix sources in an output, modify images in live, etc... I not see anything in classic Qt libraies, but maybe need to inherit a class or use some plugins dedicated for that, or do i need to use qt5/gstreamer ?

  • Lifetime Qt Champion


    Are you trying to implement something like Kdenlive ?

  • Hi @SGaist,
    I'm trying to do something more simple than kdenlive, but i suppose that you give me this reference of application for i can go look in the source code (so i will do it), because yes, there is more fonctionalities than i want to do inside kdenlive application.
    My objectif is to have:
    1/ sources from cameras (webcam or decklink blackmagic sources streams) to be render in little screeners
    2/ have an output for video to be recording in live with the ability to modify sources color, hue, saturation, etc... and the ability to mix signals vidéos and audio
    3/ have an overlay system with some specificities:
    3.1/ one part for construct the overlay entries (dynamic or static entries positioned... it can be a GPS position or what ever from physical serial interface, or from udp streams... an interface make in, form signals)
    3.2/ on the QGraphicView, there is, in live the render of the overlay... but the vidéo not record it, this overlay is recording in live in a xml file... then it will be possible to modify the aspect and the content later
    3.3/ be able at a moment to render the recorded video and the overlay in a full renbdered video (so at this time, the overlay is inside the video).
    4/ be able on the fly to take snapshot images from outupt recording image or entries sources without break time (because all the recording sequencies are recorded in live)
    5/record in live all the entries in a kind of software "blackbox"...

    so technically, i just need to multiplex entries, to be able to change aspect of the image for the entry and for the output render, mix them, and have the overlay dynamic text.
    My problem actually is for all the part of video images and find information for learn to do that...
    Gstreamer seems to be the ultimate and powerfull tool for that, but i lake of docs/manual/tutos (nice manual in C of gstreamer... that's all), and i don't know, maybe there is something other than that... i'm not able to find actually good informations around this subject.

    any idea/informations/sources of informations are welcome
    'i'm going to read the kdenlive code now... thank you @SGaist)

  • Lifetime Qt Champion

    Since you need a bit of lower-level control on the pipeline then the QtGStreamer project might be a better choice.

  • @SGaist
    Yes, gstreamer seems to be very powerfull for do everything (streaming video also).
    Ok, i allready start to learn this by read the gstreamer doc manual (in C) and try to interpret it in C++/Qt.
    I see the list of plugins aviable and properties of each (not full properties for all of them, but ok...)

    Actually, i arrive to use source camera and record things by create a pipeline and a bin, but...
    I actually failed to redirect a sink to a QGraphicsVideoItem container.
    I never find any example code of gstreamer-qt5 use and Qt5 code. If you have some to provide... i will be so happy.

  • Lifetime Qt Champion

    Did you took a look at the Qt video sinks provided by QtGStreamer ?

  • @SGaist,
    yes, i read this allready and try to well understand and use it. For my level of knowledge, at this time, it is still some sentences not far from abstract words. example provide is also minimalist and i think this should help someone who allready know to do it well. But ok... that is some clues...

    It talks about 4 different things (combinate explication in one time for QML or QWidget with or without gl engine... so... it is confuse for me) in the same time and provide a non complete and old example.

    But ok... there is not more relevant information or examples provide, so i will have to do with that and imagine/try things from there to the state it will work (then from there maybe write an article on my web site, for provide full working examples, for help other ones who want to learn to use GStreamer with Qt5 and who doesn't really understand the qtGstreamer API official explications).
    thank you for try to help me @SGaist, i think i will find from these clues and with perseverance to try things from there and from gstreamer C manual too.

  • @SGaist

    it also said that at create time of GraphicVideoSurface (this include the QGraphicsView for construct), it construct automatically the videoSink QGSt::ElementPtr. then i think from there i can just call this GraphicVideoSurface::videoSink function for be able to add it in a pipeline... then add pads and connect them.
    I hope... but still have to resolve some weird thinks around GSt::Bin add function correct use.

  • @SGaist
    My new idea is to try to do transcript gstreamer code and share test application/code (then put it in my web site and will be happy to see the code used by other for learn). This way should be an idea to let community help community to improve test/example code who miss for qt5-gstreamer.
    I try that by start this public bitbucket depot:

    Feel free to share your knowledge by transcript and use qt5-gstreamer code in this depot public repository, and let's communicate the idea to which other hackers who would like to share to.

    hope this will show the power of open source community and document as well this qt5-gstreamer.

  • Lifetime Qt Champion

    Then I'd recommend contributing to the QtGstreamer project

Log in to reply