nv_omx_h264enc does not connect with rtph264pay
Tim Müller
tim at centricular.com
Wed Jan 15 10:28:09 PST 2014
On Wed, 2014-01-15 at 09:06 -0800, ondrahnilicka wrote:
Hi Ondra,
> I would like to encode video on my Tegra T30 Apalis board with L4T (Angstrom
> Linux) to H.264 and send it over UDP. When I run the statement:
> gst-launch -v videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' !
> nv_omx_h264enc ! rtph264pay ! fakesink silent=0 (or with udpsink)
>
> i got this error: "Element doesn't implement handling of this stream."
> The whole error description is below.
> I tried many similar statements and compile the app in C with the same
> result. The problem is really between the nv_omx_h264enc and the rtph264pay
> plugins. I tried the x264enc encoder instead of the nv_omx_h264enc and it
> works. In rtph264pay sources i see that "payload" hasn't adjusted a
> clock-rate, but i don't know where to fix it. Maybe it is a plugin version
> problem.
>
> Versions:
> gst-launch-0.10 version 0.10.36
> gst-plugins-good - 0.10.31-r13.7
> nv_omx_h264enc version 0.10.1
>
> Does anybody have an idea?
>
> Thank you.
> Ondra
>
> ERROR: from element /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0:
> Element doesn't implement handling of this stream. Please file a bug.
> Additional debug info:
> /home/tegradev/oe-core/build/out-eglibc/work/armv7ahf-vfp-neon-angstrom-linux-gnueabi/gst-plugins-base/0.10.36-r12/git/gst-libs/gst/rtp/gstbasertppayload.c(850):
> gst_basertppayload_prepare_push ():
> /GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0:
> subclass did not specify clock-rate
This implies, as the error message says, that the subclass (rtph264pay)
has not set the clock-rate, which it appears to do in its set_caps()
function [1].
My guess would be then that the nv_omx_h264enc element doesn't set any
caps on the buffer it pushes to rtph264pay, leading to the set_caps not
being called, and the clock-rate not set.
You can test if this is the case using
gst-launch-0.10 -v videotestsrc ! nv_omx_h264enc ! fakesink silent=true
and checking the output for fakesink's sink pad getting video/x-h264
caps set.
If that is the problem, an h264parse element might help, or a capsfilter
like
.. ! video/x-h264,stream-format=byte-stream,alignment=nal ! rtph264pay
Cheers
-Tim
[1]
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtp/gstrtph264pay.c?h=0.10#n463
--
Tim Müller, Centricular Ltd - http://www.centricular.com
More information about the gstreamer-devel
mailing list