gstreamer mp4 not working

      gstreamer mp4 not working

      Hello Experts,

      I´ve problems streaming an mp4 videofile.
      Aim is to play the video from QML, but the problems started by trying to play the videofile without QML. I tried

      Source Code

      1. # gst-launch-1.0 playbin uri=file:///Core/Videos/Testvideo20komp.mp4


      and got this error message:

      Source Code

      1. Missing element: MPEG-4 AAC decoder

      Source Code

      1. Missing decoder: MPEG-4 AAC

      Source Code

      1. ERROR: pipeline doesn't want to preroll.
      2. Setting pipeline to NULL ...
      3. Freeing pipeline ...


      Talking to one of your collegues, I added

      Source Code

      1. Target packages -> Audio and video applications -> gst1-plugins-bad -> openh264
      2. Target packages -> Audio and video applications -> gst1-plugins-bad -> voaacenc


      to the menuconfig, did a make clean and builded the rootfs again.
      Trying to play the videofile, I got almost the same error-output:

      Brainfuck Source Code

      1. # gst-launch-1.0 playbin uri=file:///mnt/Testvideo20komp.mp4
      2. Setting pipeline to PAUSED ...
      3. Pipeline is PREROLLING ...
      4. ====== AIUR: 4.0.9 build on Oct 4 2017 13:34:15. ======
      5. Core: MPEG4PARSER_06.09.22 build on Jan 12 2016 13:29:32
      6. file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2
      7. ------------------------
      8. Track 00 [video_0] Enabled
      9. Duration: 0:01:30.023000000
      10. Language: und
      11. Mime:
      12. video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)480, height=(int)242, framerate=(fraction)30000/1001, codec_data=(buffer)014d4028ffe1001c674d4028eca0f043f1180b506010640000030004000afc803c60c65801000568eae1b2c8
      13. ------------------------
      14. Missing element: H.264 decoder
      15. WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)480, height=(int)242, framerate=(fraction)30000/1001, codec_data=(buffer)014d4028ffe1001c674d4028eca0f043f1180b506010640000030004000afc803c60c65801000568eae1b2c8'.
      16. Additional debug info:
      17. gsturidecodebin.c(939): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0
      18. ------------------------
      19. Track 01 [audio_0] Enabled
      20. Duration: 0:01:30.069000000
      21. Language: eng
      22. Mime:
      23. audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)0, stream-format=(string)raw, codec_data=(buffer)119056e500
      24. ------------------------
      25. Missing element: MPEG-4 AAC decoder
      26. ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is missing a plug-in.
      27. Additional debug info:
      28. gsturidecodebin.c(1006): no_more_pads_full (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0:
      29. no suitable plugins found:
      30. gstdecodebin2.c(4565): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
      31. no suitable plugins found:
      32. Missing decoder: MPEG-4 AAC (audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)0, stream-format=(string)raw, codec_data=(buffer)119056e500, framed=(boolean)true, level=(string)2, base-profile=(string)lc, profile=(string)lc)
      33. Missing decoder: H.264 (video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)480, height=(int)242, framerate=(fraction)30000/1001, codec_data=(buffer)014d4028ffe1001c674d4028eca0f043f1180b506010640000030004000afc803c60c65801000568eae1b2c8)
      34. ERROR: pipeline doesn't want to preroll.
      35. Setting pipeline to NULL ...
      36. Freeing pipeline ...


      Can you please give me the minimum needed package configuration to play a videofile including sound with gstreamer. I did understand, that I first need to be able to run the video without QML, before trying to play with QML MediaPlayer oder QML Video.

      Hope you can help me, as Iam not experienced with gstreamer.
      I took more time installing some things packages like opencv, opencv2.4 and ended with libav.
      After another make clean, I got this message:

      Brainfuck Source Code

      1. # gst-launch-1.0 playbin uri=file:///mnt/Testvideo20komp.mp4
      2. Setting pipeline to PAUSED ...
      3. Pipeline is PREROLLING ...
      4. ====== AIUR: 4.0.9 build on Oct 9 2017 13:10:46. ======
      5. Core: MPEG4PARSER_06.09.22 build on Jan 12 2016 13:29:32
      6. file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2
      7. ------------------------
      8. Track 00 [video_0] Enabled
      9. Duration: 0:01:30.023000000
      10. Language: und
      11. Mime:
      12. video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)480, height=(int)242, framerate=(fraction)30000/1001, codec_data=(buffer)014d4028ffe1001c674d4028eca0f043f1180b506010640000030004000afc803c60c65801000568eae1b2c8
      13. ------------------------
      14. display(/dev/fb0) resolution is (480x272).
      15. ====== OVERLAYSINK: 4.0.9 build on Oct 9 2017 13:10:52. ======
      16. display(/dev/fb0) resolution is (480x272).
      17. ------------------------
      18. Track 01 [audio_0] Enabled
      19. Duration: 0:01:30.069000000
      20. Language: eng
      21. Mime:
      22. audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)0, stream-format=(string)raw, codec_data=(buffer)119056e500
      23. ------------------------
      24. Redistribute latency...
      25. Redistribute latency...
      26. Pipeline is PREROLLED ...
      27. Setting pipeline to PLAYING ...
      28. ERROR: pipeline doesn't want to play.
      29. Setting pipeline to NULL ...
      30. Freeing pipeline ...


      So far, I see that the missing ecoders/decoders are found now, but the pipeline is not played.
      However, no sign whats wrong now.
      I would be happy if someone can help me.
      The i.MX6-SoloX CPU (and therefore the efusA9X) does not have a hardware video processing unit (VPU). So all video processing must be done in software. But H.264 (MPEG-4 AVC) decoding in software does not make sense. The computing required to do this is so intense that the result will not have an acceptable frame rate. This is why we did not add any MPEG-4 codecs to our standard configuration in the first place. You can try MPEG-2, there the computation is less complex. But I would guess that even there a full-screen video with smooth playback is not possible.

      In your later examples, you seem to have added the i.MX6 video libraries. But these libraries fail because the VPU hardware that they expect is not present on this CPU. For example the AIUR demuxer is a hardware demuxer that does not work on i.MX6-SoloX. As a fact this SoloX CPU is unfortunately not suited well for audio/video processing.

      So MPEG-4 (either H.263 or H.264) is too complex for this CPU. If MPEG-4 is a prerequisite, then you have a big problem. MPEG-2 may work, so if you can move to MPEG-2, then you may have a chance. You also have to look at the audio codecs. MP2 or MP3 may work, more complex stream types (like MPEG-4 AAC) also produce a much higher CPU load, which is probably not necessary just for having audio.

      By the way, many of these formats require licenses from the MPEG License Association (MPEG-LA) or other entities (e.g. Dolby Laboratories for AC3 a.k.a. Dolby Digital). You are responsible for yourself to request and pay for these licenses. There are no audio or video licenses included with the module.

      Your F&S Support Team
      F&S Elektronik Systeme GmbH
      As this is an international forum, please try to post in English.
      Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

      Post was edited 1 time, last by “fs-support_HK” ().