<div dir="ltr">Thanks Mathieu! It works after I built a gstreamer with x264enc.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 10, 2022 at 1:07 AM Mathieu Duponchelle <<a href="mailto:mathieu@centricular.com">mathieu@centricular.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Thanks. It looks like the only encoder available on your system is<br>
opusenc. This is not enough, make sure to at least have x264enc /<br>
vp8enc / x265enc / vp9enc.<br>
<br>
On Wed, 2022-11-09 at 20:52 +0800, Jun Xiao via gstreamer-devel wrote:<br>
> Hi Mathieu,<br>
> <br>
> Following is the log with the patch, if you need more debug patches<br>
> let me know.<br>
> <br>
> gst-plugins-rs$ GST_DEBUG=webrtcsink:6 gst-launch-1.0 webrtcsink<br>
> name=ws videotestsrc ! ws. audiotestsrc ! ws.<br>
> Setting pipeline to PAUSED ...<br>
> 0:00:00.124050809 10519 0x55cdb072a190 DEBUG             webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:1192:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> preparing<br>
> Pipeline is live and does not need PREROLL ...<br>
> Pipeline is PREROLLED ...<br>
> Setting pipeline to PLAYING ...<br>
> 0:00:00.125241154 10519 0x55cdb0973180 INFO              webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2281:gstrswebrtc::webrtcsink::imp:<w<br>
> s:video_0><br>
> Received caps event Caps(Event { ptr: 0x55cdb0979560, type: "caps",<br>
> seqnum: Seqnum(45), structure: Some(GstEventCaps { caps: (GstCaps)<br>
> video/x-raw, format=(string)ABGR64_LE, width=(int)320,<br>
> height=(int)240, framerate=(fraction)30/1,<br>
> multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1,<br>
> interlace-mode=(string)progressive }) })<br>
> New clock: GstSystemClock<br>
> 0:00:00.125881460 10519 0x55cdb09731e0 INFO              webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2281:gstrswebrtc::webrtcsink::imp:<w<br>
> s:audio_0><br>
> Received caps event Caps(Event { ptr: 0x7fb74c003470, type: "caps",<br>
> seqnum: Seqnum(55), structure: Some(GstEventCaps { caps: (GstCaps)<br>
> audio/x-raw, format=(string)S16LE, layout=(string)interleaved,<br>
> rate=(int)44100, channels=(int)1 }) })<br>
> Redistribute latency...<br>
> 0:00:00.128845016 10519 0x7fb744024290 DEBUG             webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2218:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> Looked up codecs {96: Codec { encoder: ElementFactory { inner:<br>
> TypedObjectRef { inner: 0x55cdb059e2a0, type: GstElementFactory } },<br>
> payloader: ElementFactory { inner: TypedObjectRef { inner:<br>
> 0x55cdb06cab40, type: GstElementFactory } }, caps:<br>
> Caps(audio/x-opus(memory:SystemMemory)), payload: 96 }}<br>
> 0:00:00.129043362 10519 0x7fb744024290 DEBUG             webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2086:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> Running discovery pipeline for caps audio/x-raw,<br>
> format=(string)S16LE,<br>
> layout=(string)interleaved, rate=(int)44100, channels=(int)1 with<br>
> codec Codec { encoder: ElementFactory { inner: TypedObjectRef {<br>
> inner:<br>
> 0x55cdb059e2a0, type: GstElementFactory } }, payloader:<br>
> ElementFactory<br>
> { inner: TypedObjectRef { inner: 0x55cdb06cab40, type:<br>
> GstElementFactory } }, caps: Caps(audio/x-opus(memory:SystemMemory)),<br>
> payload: 96 }<br>
> Redistribute latency...<br>
> 0:00:00.137439122 10519 0x7fb744024290 DEBUG             webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2149:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> Codec discovery pipeline for caps audio/x-raw, format=(string)S16LE,<br>
> layout=(string)interleaved, rate=(int)44100, channels=(int)1 with<br>
> codec Codec { encoder: ElementFactory { inner: TypedObjectRef {<br>
> inner:<br>
> 0x55cdb059e2a0, type: GstElementFactory } }, payloader:<br>
> ElementFactory<br>
> { inner: TypedObjectRef { inner: 0x55cdb06cab40, type:<br>
> GstElementFactory } }, caps: Caps(audio/x-opus(memory:SystemMemory)),<br>
> payload: 96 } succeeded: application/x-rtp, media=(string)audio,<br>
> clock-rate=(int)48000, encoding-name=(string)OPUS,<br>
> sprop-stereo=(string)0, encoding-params=(string)2,<br>
> sprop-maxcapturerate=(string)48000, payload=(int)96,<br>
> extmap-1=(string)<a href="http://www.ietf.org/id/draft-holmer-rmcat-transport-" rel="noreferrer" target="_blank">http://www.ietf.org/id/draft-holmer-rmcat-transport-</a><br>
> wide-cc-extensions-01;<br>
> 0:00:00.138044111 10519 0x7fb744024290 ERROR             webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:2319:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> error: No caps found for stream video_0<br>
> ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: There is<br>
> no codec present that can handle the stream's type.<br>
> Additional debug info:<br>
> net/webrtc/src/webrtcsink/<a href="http://imp.rs" rel="noreferrer" target="_blank">imp.rs</a>(2320): gstrswebrtc::webrtcsink::imp<br>
> (): /GstPipeline:pipeline0/GstWebRTCSink:ws:<br>
> Failed to look up output caps: No caps found for stream video_0<br>
> Execution ended after 0:00:00.013297770<br>
> Setting pipeline to NULL ...<br>
> 0:00:00.138701195 10519 0x55cdb072a190 INFO              webrtcsink<br>
> net/webrtc/src/webrtcsink/imp.rs:1207:gstrswebrtc::webrtcsink::imp:<w<br>
> s><br>
> unpreparing<br>
> Freeing pipeline ...<br>
> <br>
> Thanks,<br>
> Jun<br>
> <br>
> On Wed, Nov 9, 2022 at 8:05 PM Mathieu Duponchelle<br>
> <<a href="mailto:mathieu@centricular.com" target="_blank">mathieu@centricular.com</a>> wrote:<br>
> > <br>
> > Hey, unfortunately webrtcsink needs a few more logs on the codec<br>
> > discovery code path to be useful her, can you apply<br>
> > <a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/972/" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/972/</a><br>
> > and try again?<br>
> > <br>
> > On Wed, 2022-11-09 at 00:11 +0800, Jun Xiao via gstreamer-devel<br>
> > wrote:<br>
> > > Thanks Mathieu,<br>
> > > <br>
> > > Following is the message with debug log:<br>
> > > gst-plugins-rs$ GST_DEBUG=webrtcsink:6 gst-launch-1.0 webrtcsink<br>
> > > name=ws videotestsrc ! ws. audiotestsrc ! ws.<br>
> > > Setting pipeline to PAUSED ...<br>
> > > 0:00:00.017416246  7466 0x55655b56c2d0 DEBUG            <br>
> > > webrtcsink<br>
> > > net/webrtc/src/webrtcsink/imp.rs:1192:gstrswebrtc::webrtcsink::im<br>
> > > p:<w<br>
> > > s><br>
> > > preparing<br>
> > > Pipeline is live and does not need PREROLL ...<br>
> > > Pipeline is PREROLLED ...<br>
> > > Setting pipeline to PLAYING ...<br>
> > > New clock: GstSystemClock<br>
> > > 0:00:00.018513516  7466 0x55655b5fc580 INFO             <br>
> > > webrtcsink<br>
> > > net/webrtc/src/webrtcsink/imp.rs:2260:gstrswebrtc::webrtcsink::im<br>
> > > p:<w<br>
> > > s:video_0><br>
> > > Received caps event Caps(Event { ptr: 0x55655b603150, type:<br>
> > > "caps",<br>
> > > seqnum: Seqnum(50), structure: Some(GstEventCaps { caps:<br>
> > > (GstCaps)<br>
> > > video/x-raw, format=(string)ABGR64_LE, width=(int)320,<br>
> > > height=(int)240, framerate=(fraction)30/1,<br>
> > > multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1,<br>
> > > interlace-mode=(string)progressive }) })<br>
> > > Redistribute latency...<br>
> > > 0:00:00.028336475  7466 0x55655b5fc5e0 INFO             <br>
> > > webrtcsink<br>
> > > net/webrtc/src/webrtcsink/imp.rs:2260:gstrswebrtc::webrtcsink::im<br>
> > > p:<w<br>
> > > s:audio_0><br>
> > > Received caps event Caps(Event { ptr: 0x7f77680034a0, type:<br>
> > > "caps",<br>
> > > seqnum: Seqnum(61), structure: Some(GstEventCaps { caps:<br>
> > > (GstCaps)<br>
> > > audio/x-raw, format=(string)S16LE, layout=(string)interleaved,<br>
> > > rate=(int)44100, channels=(int)1 }) })<br>
> > > Redistribute latency...<br>
> > > 0:00:00.095827060  7466 0x7f776c05aea0 ERROR            <br>
> > > webrtcsink<br>
> > > net/webrtc/src/webrtcsink/imp.rs:2298:gstrswebrtc::webrtcsink::im<br>
> > > p:<w<br>
> > > s><br>
> > > error: No caps found for stream video_0<br>
> > > ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws:<br>
> > > There is<br>
> > > no codec present that can handle the stream's type.<br>
> > > Additional debug info:<br>
> > > net/webrtc/src/webrtcsink/<a href="http://imp.rs" rel="noreferrer" target="_blank">imp.rs</a>(2299):<br>
> > > gstrswebrtc::webrtcsink::imp<br>
> > > (): /GstPipeline:pipeline0/GstWebRTCSink:ws:<br>
> > > Failed to look up output caps: No caps found for stream video_0<br>
> > > Execution ended after 0:00:00.077864232<br>
> > > Setting pipeline to NULL ...<br>
> > > 0:00:00.101370102  7466 0x55655b56c2d0 INFO             <br>
> > > webrtcsink<br>
> > > net/webrtc/src/webrtcsink/imp.rs:1207:gstrswebrtc::webrtcsink::im<br>
> > > p:<w<br>
> > > s><br>
> > > unpreparing<br>
> > > Freeing pipeline ...<br>
> > > <br>
> > > On Tue, Nov 8, 2022 at 11:59 PM Mathieu Duponchelle<br>
> > > <<a href="mailto:mathieu@centricular.com" target="_blank">mathieu@centricular.com</a>> wrote:<br>
> > > > <br>
> > > > Do you have video encoders available on your system? Perhaps<br>
> > > > try to<br>
> > > > run<br>
> > > > with GST_DEBUG=webrtcsink:6 to get more information.<br>
> > > > <br>
> > > > On Tue, 2022-11-08 at 23:54 +0800, Jun Xiao via gstreamer-devel<br>
> > > > wrote:<br>
> > > > > Hi,<br>
> > > > > <br>
> > > > > When I tried to run webrtc rust sample in ubuntu 22.04 VM by<br>
> > > > > following<br>
> > > > > <a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/webrtc" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/webrtc</a><br>
> > > > > ,<br>
> > > > > I met following problem:<br>
> > > > > <br>
> > > > > $gst-launch-1.0 webrtcsink name=ws videotestsrc ! ws.<br>
> > > > > audiotestsrc !<br>
> > > > > ws.<br>
> > > > > Setting pipeline to PAUSED ...<br>
> > > > > Pipeline is live and does not need PREROLL ...<br>
> > > > > Pipeline is PREROLLED ...<br>
> > > > > Setting pipeline to PLAYING ...<br>
> > > > > New clock: GstSystemClock<br>
> > > > > Redistribute latency...<br>
> > > > > Redistribute latency...<br>
> > > > > 0:00:00.052590872  7339 0x7fb29006b8a0 ERROR<br>
> > > > > webrtcsink<br>
> > > > > net/webrtc/src/webrtcsink/imp.rs:2298:gstrswebrtc::webrtcsink<br>
> > > > > ::im<br>
> > > > > p:<w<br>
> > > > > s><br>
> > > > > error: No caps found for stream video_0<br>
> > > > > ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws:<br>
> > > > > There is<br>
> > > > > no codec present that can handle the stream's type.<br>
> > > > > Additional debug info:<br>
> > > > > net/webrtc/src/webrtcsink/<a href="http://imp.rs" rel="noreferrer" target="_blank">imp.rs</a>(2299):<br>
> > > > > gstrswebrtc::webrtcsink::imp<br>
> > > > > (): /GstPipeline:pipeline0/GstWebRTCSink:ws:<br>
> > > > > Failed to look up output caps: No caps found for stream<br>
> > > > > video_0<br>
> > > > > Execution ended after 0:00:00.036349323<br>
> > > > > Setting pipeline to NULL ...<br>
> > > > > Freeing pipeline ...<br>
> > > > > <br>
> > > > > Could anyone share any suggestions?<br>
> > > > > Thanks,<br>
> > > > > Jun<br>
</blockquote></div>