Power & Source of Big Ideas

gstreamer-1.0

Moderators: chensy, FATechsupport

Hi, I purchased a NanoPi NEO AIR recently, and I've been trying to get
gstreamer1.0 to run and encode h264.

I've installed the gst-plugin-cedar but get the following logs:

GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0/ gst-launch-1.0 -ve videotestsrc ! cedar_h264enc ! h264parse ! matroskamux ! filesink location="cedar.mkv"
Setting pipeline to PAUSED ...
[VDPAU SUNXI] VE version 0x0000 opened.
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\pixel-aspect-ratio\=\(fraction\)1/1\,\interlace-mode\=\(string\)progressive"
/GstPipeline:pipeline0/GstCedarH264Enc:cedarh264enc0.GstPad:src: caps ="video/x-h264\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal\,\ profile\=\(string\)main\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)byte-stream\,\
alignment\=\(string\)nal\,\ profile\=\(string\)main\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
/GstPipeline:pipeline0/GstCedarH264Enc:cedarh264enc0.GstPad:sink: caps =
"video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\
interlace-mode\=\(string\)progressive"
h264enc: can't allocate VE memory
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop ():
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming task paused, reason error (-5)
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps =
video/x-matroska
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps =
video/x-matroska
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = "NULL"
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps =
"video/x-matroska\,\ streamheader\=\(buffer\)\<\
1a45dfa301000000000000144282896d6174726f736b610042878102428581021853806701ffffff
ffffffff114d9b74010000000000008c4dbb010000000000001253ab841549a96653ac88ffffffff
ffffffff4dbb010000000000001253ab841654ae6b53ac88ffffffffffffffff4dbb010000000000
001253ab841043a77053ac88ffffffffffffffff4dbb010000000000001253ab841c53bb6b53ac88
ffffffffffffffff4dbb010000000000001253ab841254c36753ac88ffffffffffffffff1549a966
010000000000007373a49091d949e91750e43e20961bccdd50238b2ad7b1830f4240448988000000
00000000004d80a44753747265616d6572206d6174726f736b616d75782076657273696f6e20312e
382e33005741994753747265616d6572204d6174726f736b61206d757865720044618807209ad102
7068001654ae6b0100000000000000\
\>"
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps =
"NULL"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "NULL"
/GstPipeline:pipeline0/GstCedarH264Enc:cedarh264enc0.GstPad:src: caps =
"NULL"
/GstPipeline:pipeline0/GstCedarH264Enc:cedarh264enc0.GstPad:sink: caps =
"NULL"
Caught SIGSEGV

It looks like the interesting part is "h264enc: can't allocate VE memory" - how can I remedy this?
Wow, it's been an experience.

I fixed up the Nano Pi NEO Air kernel here:

https://github.com/gtalusan/sun8i-linux ... 4a7d7e04d4

Ported gst-plugin-cedar to support H3 here:

https://github.com/gtalusan/gst-plugin-cedar

And now I can record 1080p from the CAM-500B with HW accelerated H264 encoding. gstreamer runs around 20-40% CPU and around 10% if I eliminate the memcpy inside of gst-plugin-cedar, but this is only possible if the DMA buffer between V4L2 and VFE/ION is shared, but this doesn't appear to be possible at the moment....

Who is online

In total there are 40 users online :: 0 registered, 0 hidden and 40 guests (based on users active over the past 5 minutes)
Most users ever online was 5185 on Wed Jan 22, 2020 1:44 pm

Users browsing this forum: No registered users and 40 guests