My i.MX93 EVK is connected to a screen. It successfully shows the Weston desktop. Then, it failed and gave out an error when I tried playing an MP4 format video using the following GStreamer command
gst-launch-1.0 filesrc location=myBuggy.mp4 ! decodebin ! autovideoconvert ! autovideosink
The error message was:
====== AIUR: 4.8.2 build on Oct 10 2023 02:31:27. ======
Core: MPEG4PARSER_06.21.06 build on Oct 18 2023 10:08:29
file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm_elinux.so.3.2
------------------------
Track 00 [audio_0] Enabled
Duration: 0:00:07.978666000
Language: und
Mime:
audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)192235, stream-format=(string)raw, codec_data=(buffer)1190
------------------------====== BEEP: 4.8.2 build on Oct 10 2023 02:31:27. ======
Core: AAC decoder Wrapper build on Sep 8 2023 20:17:24
file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_ARMV8 build on Sep 8 2023 17:16:00.
------------------------
Track 01 [video_0] Enabled
Duration: 0:00:08.061944000
Language: und
Mime:
video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)960, height=(int)544, framerate=(fraction)9000/403, codec_data=(buffer)0164001fffe100186764001facd940f0116840000003004000000f03c60c658001000468efbcb0
------------------------
Redistribute latency...
Missing element: H.264 (High Profile) decoder
Redistribute latency...
WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed.
Additional debug info:
/usr/src/debug/gstreamer1.0/1.22.5.imx-r0/gst/parse/grammar.y(855): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstAutoVideoConvert named autovideoconvert0
Is there any possible way to play an MP4 video on screen with i.MX93EVK?
Thank you in advance.
There is no hardware decoder for i.MX93.
The SW decoder can be enabled in the build by making the following changes to the conf/local.conf file:
LICENSE_FLAGS_ACCEPTED += "commercial"
IMAGE_INSTALL:append = "gstreamer1.0-libav"
PACKAGECONFIG:append_pn-gstreamer1.0-libav = "x264"
Hi Brian,
I have tried the following command you mentioned previously:
gplay-1.0 my-video.mp4
It doesn't work. There is no video shown on the Wayland desktop. The output information on the terminal:
FSL_GPLAY2_01.00_LINUX build on Oct 10 2023 02:31:27
playbin3 is enabled
====== AIUR: 4.8.2 build on Oct 10 2023 02:31:27. ======
Core: MPEG4PARSER_06.21.06 build on Oct 18 2023 10:08:29
file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm_elinux.so.3.2
------------------------
Track 00 [audio_0] Enabled
Duration: 0:00:07.978666000
Language: und
Mime:
audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)192235, stream-format=(string)raw, codec_data=(buffer)1190
------------------------
------------------------
Track 01 [video_0] Enabled
Duration: 0:00:08.061944000
Language: und
Mime:
video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)960, height=(int)544, framerate=(fraction)9000/403, codec_data=(buffer)0164001fffe100186764001facd940f0116840000003004000000f03c60c658001000468efbcb0
------------------------
====== BEEP: 4.8.2 build on Oct 10 2023 02:31:27. ======
Core: AAC decoder Wrapper build on Sep 8 2023 20:17:24
file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_ARMV8 build on Sep 8 2023 17:16:00.
===!!! Current pulsesink device is alsa_output.platform-sound-xcvr.iec958-stereo !!!===
=========== fsl_player_play() ==================
FSL_GPLAY2_01.00_LINUX build on Oct 10 2023 02:31:27
[h]display the operation Help
[p]Play
[s]Stop
[e]Seek
[a]Pause when playing, play when paused
[v]Volume
[m]Switch to mute or not
[>]Play next file
[<]Play previous file
[r]Switch to repeated mode or not
[u]Select the video track
[d]Select the audio track
[b]Select the subtitle track
[n]Select adaptive playback track
[f]Set full screen
[z]resize the width and height
[t]Rotate
[c]Setting play rate
[i]Display the metadata
[x]eXit
State changed: buffering
State changed: playing
[Playing (No Repeated)][Vol=1.0][00:00:00/00:00:08][ 265.971162] audit: type=1334 audit(1680925126.924:18): prog-id=15 op=LOAD
[ 265.980181] audit: type=1334 audit(1680925126.932:19): prog-id=16 op=LOAD
[Playing (No Repeated)][Vol=1.0][00:00:04/00:00:08]p
[Playing (No Repeated)][Vol=1.0][00:00:07/00:00:08]EOS Found
getNextItem No next item!
No more media file, exit gplay!
FSL_PLAYER_UI_MSG_EXIT
Exit display thread
fsl_player_deinit
However, It can play test videos of GStreamer by using the following command:
gst-launch-1.0 -v videotestsrc pattern=snow ! video/x-raw,width=1280,height=720 ! autovideosink
It seems it can't play any MP4 format video because it has no decoder like H.264. Is there any solution to this problem?
Thank you.