Some of the dependencies are not being meet and creating issues that seem be a dead end with ARM64.
Any suggestions to what works good for full screen .mp4 playback. Tried ffmpeg and it is choppy and some other issues even with NVMe drive.
Some of the dependencies are not being meet and creating issues that seem be a dead end with ARM64.
Any suggestions to what works good for full screen .mp4 playback. Tried ffmpeg and it is choppy and some other issues even with NVMe drive.
Hello @foxsquirrel
For VIM4, gstreamer already installed by default. You can install the image online with oowow.
Check usage here: VIM4 Hardware Decoding [Khadas Docs]
Thank you for the information.
It is broken
lastest image from 12/22
khadas@Khadas:~$ uname -a
Linux Khadas 5.4.180 #1.4 SMP PREEMPT Thu Dec 29 07:03:59 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
khadas@Khadas:~$ gst-launch-1.0 filesrc location=/home/khadas/bbb_sunflower_1080p_60fps_normal.mp4 ! qtdemux name=d d.video_0 ! h264parse ! v4l2h264dec capture-io-mode=0 ! video/x-raw,format=NV12 ! amlvenc ! h265parse ! filesink location=/home/khadas/h264dec.h265
Setting pipeline to PAUSED ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Resource not found.
Additional debug info:
../plugins/elements/gstfilesrc.c(553): gst_file_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
No such file "/home/khadas/bbb_sunflower_1080p_60fps_normal.mp4"
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Resource not found.
Additional debug info:
../plugins/elements/gstfilesrc.c(553): gst_file_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
No such file "/home/khadas/bbb_sunflower_1080p_60fps_normal.mp4"
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3556): gst_base_src_start (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
khadas@Khadas:~$
This is just an example, you don’t have video file bbb_sunflower_1080p_60fps_normal.mp4
in /home/khadas
, please put the video file you want to decoding in /home/khadas
and use the correct name.
Thank you for clarifying that, it looks like it is a demo, this might clear that up.
filesrc location=/home/khadas/<file-name>.mp4 ! qtdemux name=d d.video_0 ! h264parse ! v4l2h264dec capture-io-mode=0 ! video/x-raw,format=NV12 ! amlvenc ! h265parse ! filesink location=/home/khadas/h264dec.h265
Just tried it and it did not work for me.
This is an untouched fresh install, only addition has been ffmpeg and the test file.
khadas@Khadas:~$ gst-launch-1.0 filesrc location=/home/khadas/Videos/SD24-129.mp4 ! qtdemux name=d d.video_0 ! h264parse ! v4l2h264dec capture-io-mode=0 ! video/x-raw,format=NV12 ! amlvenc ! h265parse ! filesink location=/home/khadas/h264dec.h265
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
(gst-launch-1.0:15874): GStreamer-CRITICAL **: 02:49:08.725: gst_value_collect_fraction: assertion 'collect_values[1].v_int != 0' failed
(gst-launch-1.0:15874): GStreamer-CRITICAL **: 02:49:08.725: passed '0' as denominator for `GstFraction'
Set log level to 4
[initEncParams:190] enc_feature_opts is 0x1 , GopPresetis 0x0
[vdi_sys_sync_inst_param:675] [VDI] fail to deliver sync instance param inst_idx=0
[AML_MultiEncInitialize:1389] VPU instance param sync with open param failed
[SetSequenceInfo:990] Required buffer fb_num=3, src_num=1, actual src=3 1920x1080
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
Redistribute latency...
New clock: GstSystemClock
0:00:58.1 / 0:00:58.5 (99.2 %)
(gst-launch-1.0:15874): GStreamer-CRITICAL **: 02:49:23.265: gst_memory_resize: assertion 'size + mem->offset + offset <= mem->maxsize' failed
Got EOS from element "pipeline0".
Execution ended after 0:00:14.446067236
Setting pipeline to NULL ...
Freeing pipeline ...
khadas@Khadas:~$
The reference file is fine, it works with $ sudo ffplay
First of all, you need to understand what does this pipe line mean, this pipe line have done two things - mp4 file → NV12 raw format->H265 encode
h264dec.h265
Copy h264dec.h265
to your PC and play the encoded file h264dec.h265
, if the video is the same with your reference file then it means work well.
Form the log, it seems work well.
Did not realize that is all it did, assumed it would actually play the .mp4
I might not have been clear enough, need to build an application using gstreamer on the arm board. It has issues getting all the dependencies.