cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
218 Views
Registered: ‎10-04-2018

Multi-stream Transcoding with VCU IP

Hello, 

I am trying to transcode 2 H264 encoded 4K@30fps videos at the same time with ZCU104 board. 

For transcoding just one video I use the pipeline which has worked:

gst-launch-1.0 filesrc location="part1.mp4" ! qtdemux name=demux demux.video_0 ! h264parse ! video/x-h264, alignment=au ! omxh264dec low-latency=0 ! omxh265enc ! video/x-h265, alignment=au ! filesink location="output_1.h265"

To transcode two videos, I use the pipeline below:

gst-launch-1.0 filesrc location="part1.mp4" ! qtdemux name=demux demux.video_0 ! h264parse ! video/x-h264, alignment=au ! omxh264dec low-latency=0 ! omxh265enc ! video/x-h265, alignment=au ! filesink location="output_1.h265" & gst-launch-1.0 filesrc location="part2.mp4" ! qtdemux name=demux demux.video_0 ! h264parse ! video/x-h264, alignment=au ! omxh264dec low-latency=0 ! omxh265enc ! video/x-h265, alignment=au ! filesink location="output_2.h265"

But it hasnt worked.

I get these messages:

[1] 2633
Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Redistribute latency...
!! The specified Level is too low and will be adjusted !!
[ 126.746805] al5e a0100000.al5e: swiotlb: coherent allocation failed, size=13058048
[ 126.754404] CPU: 0 PID: 2639 Comm: gst-launch-1.0 Tainted: G O 4.19.0-xilinx-v2019.1 #1
[ 126.763692] Hardware name: ZynqMP ZCU104 RevC (DT)
Redistribute latency...[ 126.768466] Call trace:

[ 126.772907] dump_backtrace+0x0/0x148
[ 126.776714] show_stack+0x14/0x20
[ 126.780013] dump_stack+0x90/0xb4
[ 126.783321] swiotlb_alloc+0x160/0x168
[ 126.787061] __dma_alloc+0xa8/0x1e0
[ 126.790548] al5_alloc_dma+0xa8/0x140 [allegro]
[ 126.795065] al5_bufpool_allocate+0xc8/0x170 [allegro]
[ 126.800195] al5e_user_create_channel+0x14c/0x340 [al5e]
[ 126.805496] al5e_ioctl+0x15c/0x4e0 [al5e]
[ 126.809578] do_vfs_ioctl+0xb8/0x8a0
[ 126.813143] ksys_ioctl+0x44/0x90
[ 126.816442] __arm64_sys_ioctl+0x1c/0x28
[ 126.820348] el0_svc_common+0x84/0xd8
[ 126.824002] el0_svc_handler+0x68/0x80
[ 126.827733] el0_svc+0x8/0xc
[ 126.830636] al5e a0100000.al5e: Failed internal buffers allocation, channel wasn't created
!! The specified Level is too low and will be adjusted !!
Failed to create Encoder:
/!\ ERROR:encoder: memory allocation failure (firmware or ctrlsw) (135)[ 126.849409] al5e a0100000.al5e: swiotlb: coherent allocation failed, size=13058048

[E] [TreatSetStateCommand]: OMX_ErrorInsufficientResources
ER[ 126.860549] CPU: 2 PID: 2640 Comm: gst-launch-1.0 Tainted: G O 4.19.0-xilinx-v2019.1 #1
ROR: from element /GstPipeline:pipeline0/GstOMXH265Enc-omxh265en[ 126.875368] Hardware name: ZynqMP ZCU104 RevC (DT)
c:omxh265enc-omxh265enc0: GStreamer encountered a general suppor[ 126.885697] Call trace:
ting library error.
Additional debug info:
../../git/omx/gstom[ 126.893692] dump_backtrace+0x0/0x148
xvideoenc.c(3424): gst_omx_video_enc_handle_frame (): /GstPipeli[ 126.902886] show_stack+0x14/0x20
ne:pipeline0/GstOMXH265Enc-omxh265enc:omxh265enc-omxh265enc0:
F[ 126.911740] dump_stack+0x90/0xb4
ailed to enable OMX encoder: Insufficient resources (0x80001000)[ 126.920595] swiotlb_alloc+0x160/0x168

ERROR: pipeline doesn't want to preroll.
Setting pipeline to [ 126.929881] __dma_alloc+0xa8/0x1e0
NULL ...
[ 126.938913] al5_alloc_dma+0xa8/0x140 [allegro]
[ 126.944291] al5_bufpool_allocate+0xc8/0x170 [allegro]
[ 126.949420] al5e_user_create_channel+0x14c/0x340 [al5e]
[ 126.954722] al5e_ioctl+0x15c/0x4e0 [al5e]
[ 126.958804] do_vfs_ioctl+0xb8/0x8a0
[ 126.962370] ksys_ioctl+0x44/0x90
[ 126.965668] __arm64_sys_ioctl+0x1c/0x28
[ 126.969574] el0_svc_common+0x84/0xd8
[ 126.973220] el0_svc_handler+0x68/0x80
[ 126.976951] el0_svc+0x8/0xc
[ 126.979850] al5e a0100000.al5e: Failed internal buffers allocation, channel wasn't created
Failed to create Encoder:
/!\ ERROR:encoder: memory allocation failure (firmware or ctrlsw) (135)
[E] [TreatSetStateCommand]: OMX_ErrorInsufficientResources
ERROR: from element /GstPipeline:pipeline0/GstOMXH265Enc-omxh265enc:omxh265enc-omxh265enc0: GStreamer encountered a general supporting library error.
Additional debug info:
../../git/omx/gstomxvideoenc.c(3424): gst_omx_video_enc_handle_frame (): /GstPipeline:pipeline0/GstOMXH265Enc-omxh265enc:omxh265enc-omxh265enc0:
Failed to enable OMX encoder: Insufficient resources (0x80001000)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

 

Does anybody have an idea to solve this problem ? I am stuck :(

0 Kudos