Part Number: AM5728
Tool/software: Linux
Hi,
Our goal is to encode image frames from a USB 3.0 camera (uEye LE) into an mpeg4 video file, using the GStreamer framework and AM5728.
Currently I have been successful in doing so by creating an appsrc element that pushes image frames from my camera into a GStreamer pipeline. By following the guidelines provided by Gstreamer, and the TI Multimedia Processor training, I have a pipeline that loosely resembles the following:
appsrc ! 'format=UYVY, width=1280, height=720, framerate=15' ! videoconvert ! ducatimpeg4enc bitrate=2000 ! queue ! mpegvideoparse ! qtmux ! filesink location="./x.mp4"
As you will notice, I am using the videoconvert plugin in order to convert between the UYVY format of the camera's image frames, and the NV12 format required by the ducatimpeg4enc sink pad. While my current pipeline properly encodes video, the color space conversion done by videoconvert is happening in software, and I would like to use the hardware-accelerated vpe element instead to hopefully achieve faster framerates (the current pipeline does not "keep up" with my camera when I increase the framerate to higher values, say 30 fps).
TI mentions its VPE in several places online (see links below), and claims that UYVY is a supported input format. However, when I replace videoconvert with vpe (and set up the proper capabilities filters in GStreamer), no data is written to the filesink.
Is UYVY actually supported by the VPE as stated in multiple locations online? When running the command gst-inspect-1.0 on the vpe element in the Linux console window, the supported capabilities list YUY2 and YUYV, neither of which are mentioned in the links below:
http://processors.wiki.ti.com/index.php/Processor_Training:_Multimedia
- In Capabilities of IVA-HD, VPE, DSP, and ARM, "Supported Input formats: NV12, YUYV, UYVY"
http://wiki.tiprocessors.com/index.php/Linux_Core_VPE_User's_Guide
- In Driver Features, "Supported Input formats: NV12, YUYV, UYVY"
We have selected the AM5728 due to its wealth of features. Hardware acceleration using vpe is one such feature we hope to use.
Thanks,
Andrew