Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Showing stream video
Forum Updated to NodeBB v4.3 + New Features

Showing stream video

Scheduled Pinned Locked Moved Solved General and Desktop
30 Posts 4 Posters 4.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jsulmJ jsulm

    @BrMisha You could write your own QIODevice and use it with https://doc.qt.io/qt-5/qmediaplayer.html#setMedia

    B Offline
    B Offline
    BrMisha
    wrote on last edited by
    #3

    @jsulm I know but QMediaPlayer uses QIODevice::seek, which isn't available in stream

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #4

      Hi,

      What OS are you on ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      B 1 Reply Last reply
      0
      • SGaistS SGaist

        Hi,

        What OS are you on ?

        B Offline
        B Offline
        BrMisha
        wrote on last edited by
        #5

        @SGaist Windows (10) and Linux (Ubuntu and other).

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #6

          In that case, I would rather consider using VLC and its Qt integration to handle the video stream.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          B 1 Reply Last reply
          0
          • SGaistS SGaist

            In that case, I would rather consider using VLC and its Qt integration to handle the video stream.

            B Offline
            B Offline
            BrMisha
            wrote on last edited by
            #7

            @SGaist but why this solution better of using system codecs?

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #8

              Because VLC is the Swiss Army Knife of vidéo decoding and supports a larger palette of codecs than most OSs provide out of the box.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              B 1 Reply Last reply
              0
              • SGaistS SGaist

                Because VLC is the Swiss Army Knife of vidéo decoding and supports a larger palette of codecs than most OSs provide out of the box.

                B Offline
                B Offline
                BrMisha
                wrote on last edited by BrMisha
                #9

                @SGaist I would't like to use VLC but you have convinced me)))
                Tomorrow i will try to build VLC for windows

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  There's likely already a prebuilt package.

                  See also VLC-Qt

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  B 1 Reply Last reply
                  0
                  • SGaistS SGaist

                    There's likely already a prebuilt package.

                    See also VLC-Qt

                    B Offline
                    B Offline
                    BrMisha
                    wrote on last edited by
                    #11

                    @SGaist is VLC-Qt still actuality now? Last commit was in 2016 year and based on VLC 2.2.4

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      It does not mean it does not work anymore. I'd say it's worth a try.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        BrMisha
                        wrote on last edited by
                        #13

                        Unfortunately, VLC doesn't provide prebuilt packages for my compiler (MinGW32-64 7.3.0).
                        After googling i decided to try ffmpeg. I build it following this manual https://ffmpeg.org/platform.html#Native-Windows-compilation-using-MinGW-or-MinGW_002dw64 , then add libs to *pro file:

                        LIBS += -LF:/FFmpeg/tempinstall/usr/local/lib/ -llibavcodec.dll -llibavformat.dll
                        INCLUDEPATH += F:/FFmpeg/tempinstall/usr/local/include
                        DEPENDPATH += F:/FFmpeg/tempinstall/usr/local/include
                        

                        and i called avformat_open_input(some args). But got error^

                        c:/qt/qt5.14.1/tools/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: main.o: in function `qMain(int, char**)':
                        D:\projects_test\qt\PlayerVideo\build-PlayerVideo-Desktop-Debug/../PlayerVideo/main.cpp:58: undefined reference to `avformat_open_input(AVFormatContext**, char const*, AVInputFormat*, AVDictionary**)'
                        

                        So, i'm searching my mistake... I compared compiler versions between msys2 and qt, booth have GNU Make 4.2.1, but msys2 has gcc 8.3.0 and qt has 7.3.0.
                        That is problem?

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #14

                          It's "-lavcodec"

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          B 1 Reply Last reply
                          0
                          • SGaistS SGaist

                            It's "-lavcodec"

                            B Offline
                            B Offline
                            BrMisha
                            wrote on last edited by
                            #15

                            @SGaist no, it isn't helpfull((

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #16

                              Did you fix all libraries name ?

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              B 1 Reply Last reply
                              0
                              • SGaistS SGaist

                                Did you fix all libraries name ?

                                B Offline
                                B Offline
                                BrMisha
                                wrote on last edited by BrMisha
                                #17

                                @SGaist this part of .pro

                                LIBS += -LF:/Musor/FFmpeg_linbuild/ffmpeg/lib/ -lavformat
                                
                                INCLUDEPATH += F:/Musor/FFmpeg_linbuild/ffmpeg/include
                                DEPENDPATH += F:/Musor/FFmpeg_linbuild/ffmpeg/include
                                

                                In code i'm calling only avformat_license(), which locates in avformat

                                1 Reply Last reply
                                0
                                • SGaistS Offline
                                  SGaistS Offline
                                  SGaist
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #18

                                  Do you have ffmpeg built for the same architecture as your Qt version ?

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  B 1 Reply Last reply
                                  0
                                  • SGaistS SGaist

                                    Do you have ffmpeg built for the same architecture as your Qt version ?

                                    B Offline
                                    B Offline
                                    BrMisha
                                    wrote on last edited by
                                    #19

                                    @SGaist yes, booth is x64

                                    1 Reply Last reply
                                    0
                                    • B Offline
                                      B Offline
                                      BrMisha
                                      wrote on last edited by
                                      #20

                                      Men, I really don't understand what is happening.
                                      I installed msys2, and some packages for that, then i copied *c:\Qt\Qt5.14.2\Tools\mingw730_64* to *c:\msys64\mingw64*.
                                      Then built libav (it is "small" version of FFmpeg) and got this files:

                                      build\usr\local\bin\avcodec.lib
                                      build\usr\local\bin\avcodec-58.dll
                                      build\usr\local\bin\avconv.exe
                                      build\usr\local\bin\avdevice.lib
                                      build\usr\local\bin\avdevice-57.dll
                                      build\usr\local\bin\avfilter.lib
                                      build\usr\local\bin\avfilter-7.dll
                                      build\usr\local\bin\avformat.lib
                                      build\usr\local\bin\avformat-58.dll
                                      build\usr\local\bin\avprobe.exe
                                      build\usr\local\bin\avresample.lib
                                      build\usr\local\bin\avresample-4.dll
                                      build\usr\local\bin\avutil.lib
                                      build\usr\local\bin\avutil-56.dll
                                      build\usr\local\bin\swscale.lib
                                      build\usr\local\bin\swscale-5.dll
                                      
                                      build\usr\local\include\libavcodec\	<< here is *.h
                                      build\usr\local\include\libavdevice\	<< here is *.h
                                      build\usr\local\include\libavfilter\	<< here is *.h
                                      build\usr\local\include\libavformat\	<< here is *.h
                                      build\usr\local\include\libavresample\	<< here is *.h
                                      build\usr\local\include\libavutil\	<< here is *.h
                                      build\usr\local\include\libswscale\	<< here is *.h
                                      
                                      build\usr\local\lib\pkgconfig\
                                      build\usr\local\lib\avcodec-58.def
                                      build\usr\local\lib\avdevice-57.def
                                      build\usr\local\lib\avfilter-7.def
                                      build\usr\local\lib\avformat-58.def
                                      build\usr\local\lib\avresample-4.def
                                      build\usr\local\lib\avutil-56.def
                                      build\usr\local\lib\libavcodec.dll.a
                                      build\usr\local\lib\libavdevice.dll.a
                                      build\usr\local\lib\libavfilter.dll.a
                                      build\usr\local\lib\libavformat.dll.a
                                      build\usr\local\lib\libavresample.dll.a
                                      build\usr\local\lib\libavutil.dll.a
                                      build\usr\local\lib\libswscale.dll.a
                                      build\usr\local\lib\swscale-5.def
                                      

                                      *c:\Qt\Qt5.14.2\Tools\mingw730_64* was added to PATH. When I start, for example, avconv.exe, it works ok, so definitely libav was built with true mingw (which uses qt).
                                      Next, i added to *.pro (using "Add library...") this:

                                      win32: LIBS += -LF:/Musor/libav/build/usr/local/lib/ -llibavformat.dll
                                      INCLUDEPATH += F:/Musor/libav/build/usr/local/include
                                      DEPENDPATH += F:/Musor/libav/build/usr/local/include
                                      

                                      main.c:

                                      #include <libavformat/avformat.h>
                                      int main(int argc, char *argv[]) {
                                      	avformat_license();
                                      	return 0;
                                      }
                                      

                                      After compilation i got:

                                      C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
                                      mingw32-make[1]: Entering directory 'D:/projects_test/qt/qt_test/build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug'
                                      g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB -I..\qt_test -I. -IF:\Musor\libav\build\usr\local\include -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtSerialPort -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtCore -Idebug -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\win32-g++  -o debug\main.o ..\qt_test\main.cpp
                                      ..\qt_test\main.cpp: In function 'int main(int, char**)':
                                      ..\qt_test\main.cpp:4:14: warning: unused parameter 'argc' [-Wunused-parameter]
                                       int main(int argc, char *argv[])
                                                    ^~~~
                                      ..\qt_test\main.cpp:4:31: warning: unused parameter 'argv' [-Wunused-parameter]
                                       int main(int argc, char *argv[])
                                                                     ^
                                      g++ -Wl,-subsystem,console -mthreads -o debug\qt_test.exe debug/main.o  -LF:\Musor\libav\build\usr\local\lib F:\Musor\libav\build\usr\local\lib\libavformat.dll.a C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\libQt5SerialPort.a C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\libQt5Core.a   
                                      debug/main.o: In function `main':
                                      D:\projects_test\qt\qt_test\build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/../qt_test/main.cpp:6: undefined reference to `avformat_license()'
                                      collect2.exe: error: ld returned 1 exit status
                                      mingw32-make[1]: *** [Makefile.Debug:68: debug/qt_test.exe] Error 1
                                      mingw32-make: *** [Makefile:45: debug] Error 2
                                      mingw32-make[1]: Leaving directory 'D:/projects_test/qt/qt_test/build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug'
                                      18:45:50: The process "C:\Qt\Qt5.14.2\Tools\mingw730_64\bin\mingw32-make.exe" exited with code 2.
                                      Error while building/deploying project qt_test (kit: Desktop Qt 5.14.2 MinGW 64-bit)
                                      When executing step "Make"
                                      

                                      Whyyyyyyy?????
                                      I have tried to change -llibavformat.dll to -lavformat, "-lavformat.dll" and "-lavformat" but i'm stil getting this error.

                                      Pablo J. RoginaP 1 Reply Last reply
                                      0
                                      • SGaistS Offline
                                        SGaistS Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #21

                                        Might be silly but try linking to all the ffmpeg libraries, just in case.

                                        Interested in AI ? www.idiap.ch
                                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        B 1 Reply Last reply
                                        0
                                        • B BrMisha

                                          Men, I really don't understand what is happening.
                                          I installed msys2, and some packages for that, then i copied *c:\Qt\Qt5.14.2\Tools\mingw730_64* to *c:\msys64\mingw64*.
                                          Then built libav (it is "small" version of FFmpeg) and got this files:

                                          build\usr\local\bin\avcodec.lib
                                          build\usr\local\bin\avcodec-58.dll
                                          build\usr\local\bin\avconv.exe
                                          build\usr\local\bin\avdevice.lib
                                          build\usr\local\bin\avdevice-57.dll
                                          build\usr\local\bin\avfilter.lib
                                          build\usr\local\bin\avfilter-7.dll
                                          build\usr\local\bin\avformat.lib
                                          build\usr\local\bin\avformat-58.dll
                                          build\usr\local\bin\avprobe.exe
                                          build\usr\local\bin\avresample.lib
                                          build\usr\local\bin\avresample-4.dll
                                          build\usr\local\bin\avutil.lib
                                          build\usr\local\bin\avutil-56.dll
                                          build\usr\local\bin\swscale.lib
                                          build\usr\local\bin\swscale-5.dll
                                          
                                          build\usr\local\include\libavcodec\	<< here is *.h
                                          build\usr\local\include\libavdevice\	<< here is *.h
                                          build\usr\local\include\libavfilter\	<< here is *.h
                                          build\usr\local\include\libavformat\	<< here is *.h
                                          build\usr\local\include\libavresample\	<< here is *.h
                                          build\usr\local\include\libavutil\	<< here is *.h
                                          build\usr\local\include\libswscale\	<< here is *.h
                                          
                                          build\usr\local\lib\pkgconfig\
                                          build\usr\local\lib\avcodec-58.def
                                          build\usr\local\lib\avdevice-57.def
                                          build\usr\local\lib\avfilter-7.def
                                          build\usr\local\lib\avformat-58.def
                                          build\usr\local\lib\avresample-4.def
                                          build\usr\local\lib\avutil-56.def
                                          build\usr\local\lib\libavcodec.dll.a
                                          build\usr\local\lib\libavdevice.dll.a
                                          build\usr\local\lib\libavfilter.dll.a
                                          build\usr\local\lib\libavformat.dll.a
                                          build\usr\local\lib\libavresample.dll.a
                                          build\usr\local\lib\libavutil.dll.a
                                          build\usr\local\lib\libswscale.dll.a
                                          build\usr\local\lib\swscale-5.def
                                          

                                          *c:\Qt\Qt5.14.2\Tools\mingw730_64* was added to PATH. When I start, for example, avconv.exe, it works ok, so definitely libav was built with true mingw (which uses qt).
                                          Next, i added to *.pro (using "Add library...") this:

                                          win32: LIBS += -LF:/Musor/libav/build/usr/local/lib/ -llibavformat.dll
                                          INCLUDEPATH += F:/Musor/libav/build/usr/local/include
                                          DEPENDPATH += F:/Musor/libav/build/usr/local/include
                                          

                                          main.c:

                                          #include <libavformat/avformat.h>
                                          int main(int argc, char *argv[]) {
                                          	avformat_license();
                                          	return 0;
                                          }
                                          

                                          After compilation i got:

                                          C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
                                          mingw32-make[1]: Entering directory 'D:/projects_test/qt/qt_test/build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug'
                                          g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB -I..\qt_test -I. -IF:\Musor\libav\build\usr\local\include -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtSerialPort -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtCore -Idebug -IC:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\win32-g++  -o debug\main.o ..\qt_test\main.cpp
                                          ..\qt_test\main.cpp: In function 'int main(int, char**)':
                                          ..\qt_test\main.cpp:4:14: warning: unused parameter 'argc' [-Wunused-parameter]
                                           int main(int argc, char *argv[])
                                                        ^~~~
                                          ..\qt_test\main.cpp:4:31: warning: unused parameter 'argv' [-Wunused-parameter]
                                           int main(int argc, char *argv[])
                                                                         ^
                                          g++ -Wl,-subsystem,console -mthreads -o debug\qt_test.exe debug/main.o  -LF:\Musor\libav\build\usr\local\lib F:\Musor\libav\build\usr\local\lib\libavformat.dll.a C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\libQt5SerialPort.a C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\libQt5Core.a   
                                          debug/main.o: In function `main':
                                          D:\projects_test\qt\qt_test\build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/../qt_test/main.cpp:6: undefined reference to `avformat_license()'
                                          collect2.exe: error: ld returned 1 exit status
                                          mingw32-make[1]: *** [Makefile.Debug:68: debug/qt_test.exe] Error 1
                                          mingw32-make: *** [Makefile:45: debug] Error 2
                                          mingw32-make[1]: Leaving directory 'D:/projects_test/qt/qt_test/build-qt_test-Desktop_Qt_5_14_2_MinGW_64_bit-Debug'
                                          18:45:50: The process "C:\Qt\Qt5.14.2\Tools\mingw730_64\bin\mingw32-make.exe" exited with code 2.
                                          Error while building/deploying project qt_test (kit: Desktop Qt 5.14.2 MinGW 64-bit)
                                          When executing step "Make"
                                          

                                          Whyyyyyyy?????
                                          I have tried to change -llibavformat.dll to -lavformat, "-lavformat.dll" and "-lavformat" but i'm stil getting this error.

                                          Pablo J. RoginaP Offline
                                          Pablo J. RoginaP Offline
                                          Pablo J. Rogina
                                          wrote on last edited by
                                          #22

                                          @BrMisha said in Showing stream video:

                                          build\usr\local\bin\avformat.lib
                                          build\usr\local\bin\avformat-58.dll

                                          not sure if that's the issue, but you're showing libraries built in build\usr\local\bin but you're using build\usr\local\lib in your .pro file:

                                          win32: LIBS += -LF:/Musor/libav/build/usr/local/lib/ -llibavformat.dll

                                          In addition, and not sure since it's a long time I don't use libraries in Windows, also keep in mind that you have different names between the .lib and .dll files (avformat.lib vs. avformat-58.dll)

                                          Upvote the answer(s) that helped you solve the issue
                                          Use "Topic Tools" button to mark your post as Solved
                                          Add screenshots via postimage.org
                                          Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                                          B 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved