<div dir="auto"><div>Hi,<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 24 févr. 2023, 17 h 30, Justas P via gstreamer-devel <<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Howdy,<div><br></div><div>I am trying to set-up a video stream from an embedded device to an application in my PC using h264 codec. I can use a straightforward gstreamer setup to get it to work using software encoding: "gst-launch-1.0 -vv videotestsrc ! openh264enc ! rtph264pay  ! udpsink host=192.168.137.1 port=5600". However, it is not working when using hw accelerated encoder: "gst-launch-1.0 -vv --gst-plugin-path=/usr/local/lib/gstreamer-1.0 videotestsrc ! cedar_h264enc ! rtph264pay ! udpsink host=192.168.137.1 port=5600".</div><div><br></div><div>I know that hw encoder definitely works because:</div><div>1) I can encode local files using HW encoder just fine.</div><div>2) I can stream h264 stream encoded using HW encoder to a gst application in my laptop using this pipeline "gst-launch-1.0 -vv --gst-plugin-path=/usr/local/lib/gstreamer-1.0 videotestsrc ! video/x-raw,width=800,height=600,framerate=20/1 ! videoscale ! videoconvert ! cedar_h264enc ! h264parse   ! rtph264pay config-interval=10 pt=96 ! udpsink host=192.168.137.1 port=5000"</div><div>3) If I start a video stream using openh264enc, stop it and restart using cedar_h264enc and it works in the receiver application.</div></div></div></div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">cedar_h264enc, which I supposed is for Allwinner BSP is not an element hosted by GStreamer project. In fact,.I'm not sure who makes it, and we're is the code. Best is to find and reach to the authors.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>Am I missing something trivial that prevents my application from starting to decode data encoded using cedar_h264enc? Thanks in advance.</div></div></div></div></div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">You may need to do specific configuration so that sps/PPS are periodically resent along with some keyframes. Each encoder have different defaults parameters.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>My gst-launch debug output using openh264enc and cedar_h264enc are listed below:</div><div></div><div><br></div><div><div>gst-launch-1.0 -vv videotestsrc ! openh264enc ! rtph264pay  ! udpsink host=192.168.137.1 port=5600</div><div><br></div><div>/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</div><div>/GstPipeline:pipeline0/GstOpenh264Enc:openh264enc0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)constrained-baseline, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono</div><div>/GstPipeline:pipeline0/GstOpenh264Enc:openh264enc0.GstPad:sink: 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</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, ssrc=(uint)1706411672, timestamp-offset=(uint)236597121, seqnum-offset=(uint)27290, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, ssrc=(uint)1706411672, timestamp-offset=(uint)236597121, seqnum-offset=(uint)27290, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"Z0LADYyNQKD5APCIRqA\=\,aM48gA\=\=", payload=(int)96, seqnum-offset=(uint)27290, timestamp-offset=(uint)236597121, ssrc=(uint)1706411672, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"Z0LADYyNQKD5APCIRqA\=\,aM48gA\=\=", payload=(int)96, seqnum-offset=(uint)27290, timestamp-offset=(uint)236597121, ssrc=(uint)1706411672, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 236597121</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 27290</div></div><div><br></div><div><div>gst-launch-1.0 -vv --gst-plugin-path=/usr/local/lib/gstreamer-1.0 videotestsrc ! cedar_h264enc ! rtph264pay ! udpsink host=192.168.137.1 port=5600</div><div><br></div><div>/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive</div><div>/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</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.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</div><div>/GstPipeline:pipeline0/GstCedarH264Enc:cedarh264enc0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, ssrc=(uint)3957142132, timestamp-offset=(uint)1671776860, seqnum-offset=(uint)29910, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, ssrc=(uint)3957142132, timestamp-offset=(uint)1671776860, seqnum-offset=(uint)29910, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"Z00AKdoFB8Q\=\,aO4C4XES", payload=(int)96, seqnum-offset=(uint)29910, timestamp-offset=(uint)1671776860, ssrc=(uint)3957142132, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"Z00AKdoFB8Q\=\,aO4C4XES", payload=(int)96, seqnum-offset=(uint)29910, timestamp-offset=(uint)1671776860, ssrc=(uint)3957142132, a-framerate=(string)30</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 1671776860</div><div>/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 29910</div><div><br></div></div><div><br></div></div></div></div></div></div></div></div></div>
</blockquote></div></div></div>