Limits of the Gst-omx OpenMAX IL H.264 encoder on the Raspberry Pi 3?

Matthew Thyer matthew.thyer at adelaide.edu.au
Mon Jul 2 08:37:56 UTC 2018


Dear GStreamer developers,

I'm encoding H.264 video for the GStreamer RTSP server using the hardware accelerated OpenMAX IL encoder (omxh264enc).
My video source is currently the Raspberry Pi V2 camera module (ref: https://www.raspberrypi.org/products/camera-module-v2/) but I'd like to support the V1 module as well (a 5 MP OmniVision OV5647 sensor as opposed to the 8 MP Sony IMX219 sensor of the V2 module).

I've built GStreamer 1.14.1 from source and correctly targeted the Raspberry Pi when building the gst-omx module and things are working but I now need to quantify the limits of the application system.

A post (https://www.raspberrypi.org/forums/viewtopic.php?t=6852&start=200#p427960<https://www.raspberrypi.org/forums/viewtopic.php?t=6852&start=200%23p427960>) on the Raspberry Pi forums (in thread "gstreamer openmax") has shown me a GStreamer pipeline that works (with the capability filters I need to specify camera resolution, framerate, encoding profile etc) and my code is working with the following pipeline with gpu_mem=128 (in /boot/config.txt):
"v4l2src ! capsfilter caps=video/x-raw,width=640,height=480,framerate=30/1 ! omxh264enc target-bitrate=1000000 control-rate=variable ! capsfilter caps=video/x-h264,profile=high ! rtph264pay name=pay0 pt=96"

I'm now wanting to understand the following issues:

  *   The available resolutions for my video source
  *   The available frame rates for my video source
  *   How to intelligently choose the target-bitrate parameter of the OpenMax H.264 encoder
  *   The meaning of the control-rate parameter of the OpenMax H.264 encoder
  *   The H.264 encoding profiles that are supported by the OpenMax H.264 encoder and in what scenarios I would want to use each of them
Additionally, I need to understand whether there are particular hardware platform configurations required to support different configurations (e.g. gpu_mem in /boot/config.txt).

Ideally, I'd like to be able to programmatically assess whether a given configuration is viable.
It would also be great if I could query the camera for its capabilities if this is possible.

Does anyone have any pointers to assist with my problem?

---
Matthew Thyer
(08) 8313 9283
4.38 Ingkarni Wardli
Adelaide University

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180702/bf286a88/attachment-0001.html>


More information about the gstreamer-devel mailing list