There's an issue with the RPi firmware used in the current Balena base image which causes GStreamer to fail to initialise the h264enc plugin
gst-launch-1.0 -v videotestsrc ! omxh264enc ! fakesink
gives
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, width=(int)320, height=(int)240, framerate=(fraction)30/1, format=(string)I420, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
0:00:00.381993085 595 0x13de750 ERROR omx gstomx.c:1399:gst_omx_component_set_parameter:<omxh264enc-omxh264enc0> Set video_encode parameter at index 0x02000001: Bad parameter (0x80001005)
0:00:00.388058054 595 0x13de750 ERROR omx gstomx.c:1578:gst_omx_port_update_port_definition:<omxh264enc-omxh264enc0> Updated video_encode port 200 definition: Bad parameter (0x80001005)
0:00:00.406862960 595 0x13de750 ERROR omx gstomx.c:1399:gst_omx_component_set_parameter:<omxh264enc-omxh264enc0> Set video_encode parameter at index 0x02000001: Bad parameter (0x80001005)
0:00:00.413642926 595 0x13de750 ERROR omx gstomx.c:1578:gst_omx_port_update_port_definition:<omxh264enc-omxh264enc0> Updated video_encode port 200 definition: Bad parameter (0x80001005)
0:00:00.452508731 595 0x13de750 ERROR omx gstomx.c:1399:gst_omx_component_set_parameter:<omxh264enc-omxh264enc0> Set video_encode parameter at index 0x02000001: Bad parameter (0x80001005)
0:00:00.457898704 595 0x13de750 ERROR omx gstomx.c:1578:gst_omx_port_update_port_definition:<omxh264enc-omxh264enc0> Updated video_encode port 200 definition: Bad parameter (0x80001005)
0:00:00.475185618 595 0x13de750 ERROR omx gstomx.c:1399:gst_omx_component_set_parameter:<omxh264enc-omxh264enc0> Set video_encode parameter at index 0x02000001: Bad parameter (0x80001005)
0:00:00.478108603 595 0x13de750 ERROR omx gstomx.c:1578:gst_omx_port_update_port_definition:<omxh264enc-omxh264enc0> Updated video_encode port 200 definition: Bad parameter (0x80001005)
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3064): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
This is noted as a bug here and should be fixable with an rpi-update to the base image
raspberrypi/firmware#1051
There's an issue with the RPi firmware used in the current Balena base image which causes GStreamer to fail to initialise the h264enc plugin
gst-launch-1.0 -v videotestsrc ! omxh264enc ! fakesinkgives
This is noted as a bug here and should be fixable with an rpi-update to the base image
raspberrypi/firmware#1051