Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-64706

QtMultimedia (qmlvideo) does not play rtsp stream (No decoder available for type application/x-rtp)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P3: Somewhat important
    • None
    • 5.9.3
    • Multimedia
    • None
    • Debian 9 (stretch) amd64 with KDE
       Qt from Online Installer

    Description

      Running qmlvideo -url "rtsp://admin:admin@192.168.1.108:80/cam/realmonitor?channel=1&subtype=0&proto=Private3" to display IP camera video output via rtsp protocol results in this error:

      0:00:02.666240768 14268 0x7f3858006b70 WARN               decodebin gstdecodebin2.c:4592:gst_decode_bin_expose:<decodebin2> error: no suitable plugins found:
      Missing decoder: application/x-rtp (application/x-rtp, media=(string)application, payload=(int)100, clock-rate=(int)90000, encoding-name=(string)STREAM-ASSIST-FRAME, a-packetization-supported=(string)DH, a-rtppayload-supported=(string)DH, a-recvonly=(string)"", ssrc=(uint)1619523952, clock-base=(uint)63856, seqnum-base=(uint)63856, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1)
      

      Full output (with GST_DEBUG=3 set):

      Starting /home/debian/Qt/Examples/Qt-5.9.3/multimedia/video/build-qmlvideo-Desktop_Qt_5_9_3_GCC_64bit-Release/qmlvideo...
      0:00:02.298414542 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.300814450 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.326638039 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.326691878 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.377707216 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.379078141 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.480994371 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.481035983 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.543182871 14268 0x7f387404e050 FIXME                default gstutils.c:3826:gst_pad_create_stream_id_internal:<fakesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
      0:00:02.544957259 14268 0x7f387404e0f0 FIXME                default gstutils.c:3826:gst_pad_create_stream_id_internal:<fakesrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
      0:00:02.545341838 14268 0x7f387404e0a0 FIXME                default gstutils.c:3826:gst_pad_create_stream_id_internal:<fakesrc2:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
      0:00:02.666103144 14268 0x7f3858006b70 WARN            uridecodebin gsturidecodebin.c:938:unknown_type_cb:<uridecodebin0> warning: No decoder available for type 'application/x-rtp, media=(string)application, payload=(int)100, clock-rate=(int)90000, encoding-name=(string)STREAM-ASSIST-FRAME, a-packetization-supported=(string)DH, a-rtppayload-supported=(string)DH, a-recvonly=(string)"", ssrc=(uint)1619523952, clock-base=(uint)63856, seqnum-base=(uint)63856, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1'.
      0:00:02.666207204 14268 0x7f3858006b70 WARN                 default descriptions.c:1222:gst_pb_utils_get_codec_description: No description available for media type: application/x-rtp
      0:00:02.666240768 14268 0x7f3858006b70 WARN               decodebin gstdecodebin2.c:4592:gst_decode_bin_expose:<decodebin2> error: no suitable plugins found:
      Missing decoder: application/x-rtp (application/x-rtp, media=(string)application, payload=(int)100, clock-rate=(int)90000, encoding-name=(string)STREAM-ASSIST-FRAME, a-packetization-supported=(string)DH, a-rtppayload-supported=(string)DH, a-recvonly=(string)"", ssrc=(uint)1619523952, clock-base=(uint)63856, seqnum-base=(uint)63856, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1)
      
      0:00:02.667262701 14268 0x7f387404e400 WARN                 basesrc gstbasesrc.c:2950:gst_base_src_loop:<udpsrc6> error: Internal data stream error.
      0:00:02.667290827 14268 0x7f387404e400 WARN                 basesrc gstbasesrc.c:2950:gst_base_src_loop:<udpsrc6> error: streaming stopped, reason not-linked (-1)
      qml: [qmlvideo] VideoItem.onError error 2 errorString Cannot play stream of type: <unknown>
      qml: [qmlvideo] Content.onFatalError
      0:00:02.670339878 14268 0x7f3844017e30 WARN                GST_PADS gstpad.c:4106:gst_pad_peer_query:<decodebin0:src_0> could not send sticky events
      0:00:02.670431828 14268 0x7f3844017e30 WARN                GST_PADS gstpad.c:4106:gst_pad_peer_query:<decodebin0:src_0> could not send sticky events
      0:00:02.803801281 14268 0x55d41dffaad0 WARN                 rtspsrc gstrtspsrc.c:5505:gst_rtspsrc_try_send:<source> send interrupted
      0:00:02.803826567 14268 0x55d41dffaad0 WARN                 rtspsrc gstrtspsrc.c:7588:gst_rtspsrc_pause:<source> PAUSE interrupted
      0:00:02.807714944 14268 0x55d41dffaad0 WARN                 rtspsrc gstrtspsrc.c:5505:gst_rtspsrc_try_send:<source> send interrupted
      0:00:02.807730883 14268 0x55d41dffaad0 WARN                 rtspsrc gstrtspsrc.c:7043:gst_rtspsrc_close:<source> TEARDOWN interrupted
      Warning: "No decoder available for type 'application/x-rtp, media=(string)application, payload=(int)100, clock-rate=(int)90000, encoding-name=(string)STREAM-ASSIST-FRAME, a-packetization-supported=(string)DH, a-rtppayload-supported=(string)DH, a-recvonly=(string)\"\", ssrc=(uint)1619523952, clock-base=(uint)63856, seqnum-base=(uint)63856, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1'."
      0:00:02.817327462 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:02.817364648 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:03.218046762 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      0:00:03.218173987 14268 0x55d41d484a00 FIXME                    bin gstbin.c:4350:gst_bin_query: implement duration caching in GstBin again
      /home/debian/Qt/Examples/Qt-5.9.3/multimedia/video/build-qmlvideo-Desktop_Qt_5_9_3_GCC_64bit-Release/qmlvideo exited with code 0
      

      Meanwhile, I can launch KDE dragon player with gstreamer backend, and it managed to play the video, although same warning occurs (while QtMultimedia interpreted it as error?):

      $ env PHONON_BACKEND=phonon_gstreamer PHONON_BACKEND_DEBUG=2 PHONON_DEBUG=2 dragon 
      Stopped state
      updated actions
      updated menus
      set titles 
      seekable changed to  false
      Opening QUrl("rtsp://admin@192.168.1.108:80/cam/realmonitor?channel=1&subtype=0&proto=Private3")
      detected mimetype:  "application/octet-stream"
      QPainter::begin: Paint device returned engine == 0, type: 2
      Initial offset is  0
      using index:  -1  returned desc has index:  -1
      using index:  0  returned desc has index:  -1
      chapters:  0  titles:  0
      going from  "Loading"  to  "Stopped"
      Stopped state
      updated actions
      updated menus
      set titles 
      chapters:  0  titles:  0
      going from  "Stopped"  to  "Paused"
      Paused state
      updated actions
      updated menus
      set titles 
      PHONON-GST [WARNING] "Warning: gsturidecodebin.c(938): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0\nMessage:No decoder available for type 'application/x-rtp, media=(string)application, payload=(int)100, clock-rate=(int)90000, encoding-name=(string)STREAM-ASSIST-FRAME, a-packetization-supported=(string)DH, a-rtppayload-supported=(string)DH, a-recvonly=(string)\"\", ssrc=(uint)393883596, clock-base=(uint)12236, seqnum-base=(uint)12236, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1'."
      hasVideo changed true
      Paused state
      updated actions
      updated menus
      set titles 
      ()
      ()
      ()
      metaDataChanged
      Disc ID: ""
      set titles 
      ()
      ()
      ()
       update recent files list 
      ()
      ()
      ()
      metaDataChanged
      Disc ID: ""
      set titles 
      seekable changed to  false
      chapters:  0  titles:  0
      going from  "Paused"  to  "Playing"
      Updating channels, subtitle count: 0
      adjusting size to video resolution
      Playing state
      updated actions
      updated menus
      set titles 
      stop cursorTimer
      trying to fetch subtitle information
      fetched subtitle information
      

      And dragon is in fact using gstreamer:

      $ fgrep rtsp /proc/$(pgrep dragon)/maps
      7f6297a3a000-7f6297a57000 r-xp 00000000 08:01 793567                     /usr/lib/x86_64-linux-gnu/libgstrtsp-1.0.so.0.1004.0
      7f6297a57000-7f6297c56000 ---p 0001d000 08:01 793567                     /usr/lib/x86_64-linux-gnu/libgstrtsp-1.0.so.0.1004.0
      7f6297c56000-7f6297c59000 r--p 0001c000 08:01 793567                     /usr/lib/x86_64-linux-gnu/libgstrtsp-1.0.so.0.1004.0
      7f6297c59000-7f6297c5a000 rw-p 0001f000 08:01 793567                     /usr/lib/x86_64-linux-gnu/libgstrtsp-1.0.so.0.1004.0
      7f6297e7a000-7f6297e9f000 r-xp 00000000 08:01 139315                     /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtsp.so
      7f6297e9f000-7f629809f000 ---p 00025000 08:01 139315                     /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtsp.so
      7f629809f000-7f62980a0000 r--p 00025000 08:01 139315                     /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtsp.so
      7f62980a0000-7f62980a1000 rw-p 00026000 08:01 139315                     /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtsp.so
      

      P.S. to make dragon player work with gstreamer, I believe I had to installed phonon4qt5-backend-gstreamer.

      Attachments

        Activity

          People

            valentyn.doroshchuk Valentyn Doroshchuk
            talkless Vincas Dargis
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: