<div dir="ltr"><div dir="ltr">For my own edification, can someone please tell me what the difference is, under the hood, in terms of what finally worked for me and what didn't? I finally pieced together enough examples to think maybe I needed to add a "videoconvert" on the client side, right before autovideosink. So, what I had originally: <br><br>.\gst-launch-1.0.exe -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! autovideosink <div><br></div><div>Became  <br><br>.\gst-launch-1.0.exe -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! <b>videoconvert</b> ! autovideosink<br></div><div><br></div><div>In terms of the player expecting certain formats, etc. I can understand it, and I can likewise imagine that videoconvert smartly identifies what to convert frames to for the downstream component. However, as noted in an earlier part of this thread, the following worked for me without any issues: <br><br>.\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! rtph264depay ! decodebin ! autovideosink <br><br> Note the absence of ANY videoconvert elements. What is it about sending over UDP that somehow caused videoconvert to be necessary whereas it wasn't necessary before? I'm doing all of the same things EXCEPT packetizing the stream, which I assumed udpsrc and rtph264depay would handle the same. <br><br>Thanks. </div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 8, 2019 at 2:03 PM Ben Rush <<a href="mailto:ben@ben-rush.net" target="_blank">ben@ben-rush.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Yes, it works. I mentioned in the earlier part of the first email that I could run it with 

\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! rtph264depay ! decodebin ! autovideosink. So it's basically "looping back" to itself instead of broadcasting over the network. That works. The command you mentioned also works. <br><br>I can play with logging for a while too, turn up debugging and see if I can notice anything which hints at a display problem. <br><br>FWIW, I'm on Windows 10, Version 1809. NVIDIA GeForce RTX 2070. <br><br>I'm fine digging into this further, but if there's anything else you think I should try, or anything I should pay special attention to when looking at the logs, please let me know. Thanks again for your help. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 8, 2019 at 1:55 PM Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca" target="_blank">nicolas@ndufresne.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Le lundi 08 avril 2019 à 13:29 -0500, Ben Rush a écrit :<br>
> With respect to the x264enc: I was mistaken and was able to get it to work under Windows. It must have been an earlier experiment which made me believe it wasn't available. So, I apologize. I tried it, and the behavior was the same: no window was shown. <br>
> <br>
> Regarding the firewall: turning it off completely also made no difference _visually_. But it might have changed things under the hood; what I mean by that is that I'm seeing more at the console now. Wireshark shows UDP traffic is flowing on the loopback device. This is the kind of output I'm seeing despite no visual window (note: when running under Bash for Windows, I don't see this output). Note that this output displays in bursts, with a period of maybe five seconds where nothing is shown. <br>
<br>
Can you check the display element works ? e.g. videotestsrc ! autovideosink <br>
<br>
For the burst issues, change you x264enc setting, with tune=zerolatency as an example.<br>
<br>
> <br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000568ebec4480, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> /GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01f4000dffe1001d67f4000d919b28283f602d41804150000003001000000303c8f142996001000668ebec448440, level=(string)1.3, profile=(string)high-4:4:4<br>
> <br>
> On Mon, Apr 8, 2019 at 12:33 PM Ben Rush <<a href="mailto:ben@ben-rush.net" target="_blank">ben@ben-rush.net</a>> wrote:<br>
> > I will check my firewall, but also note that the bash for Windows scripts that worked ran on the same computer as the Windows scripts that did not. <br>
> > <br>
> > Different subsystems, but it was the same instance of Windows running on the same computer and with the same networking stack. <br>
> > <br>
> > On Mon, Apr 8, 2019, 12:27 Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca" target="_blank">nicolas@ndufresne.ca</a> wrote:<br>
> > > Le lundi 08 avril 2019 à 11:49 -0500, Ben Rush a écrit :<br>
> > > > I imagine a lot of the community here is using Linux, but I'm bound by Windows because of my work. I mention this because I'm not sure how much traction I'll get asking a Windows-specific question, but I'll try. <br>
> > > > <br>
> > > > I'm trying to get some basic gst-launch-1.0 commands to work, but thus far have been unable. Moving those same commands over to Bash for Windows and launching them there, I'm able to get the play window to run (I'm running Xming on my Windows machine as an X server). Note that some commands do work and display the interface, so I think it's unlikely to be a bad installation. <br>
> > > > <br>
> > > > First, this command works just fine when run under windows: <br>
> > > > <br>
> > > > .\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! rtph264depay ! decodebin ! autovideosink<br>
> > > > <br>
> > > > Upon executing it, I get the test video to show up in the video window. But when I try to split this up as a server/client, it fails. First I run the following command to spin up the client: <br>
> > > > <br>
> > > > .\gst-launch-1.0.exe -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! autovideosink<br>
> > > > <br>
> > > > Once running, I then run this command to acts as the server and start pushing UDP packets: <br>
> > > > <br>
> > > > .\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! h264parse ! rtph264pay pt=96 ! udpsink port=3000<br>
> > > <br>
> > > I've recently hit a IPv6 vs IPv4 issue when not specifying any host/address on the udp elements. You should also check your firewall, udp is often dropped by default.<br>
> > > <br>
> > > > Nothing crashes, and I don't get any errors, but also no window opens up. I see nothing. However, if I spin up Bash for Windows (with Xming) and run this in one window: <br>
> > > > <br>
> > > > gst-launch-1.0 -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! autovideosink<br>
> > > > <br>
> > > > Followed by this in another window: <br>
> > > > <br>
> > > > gst-launch-1.0 videotestsrc is-live=true ! x264enc ! h264parse ! rtph264pay pt=96 ! udpsink port=3000<br>
> > > > <br>
> > > > The only difference is the x264enc instead of the openh264enc. I'm not sure how to get the x264enc to exist under Windows (I cannot find the plugin for Windows).<br>
> > > <br>
> > > I've check our CI builds and they are present, so it mean libgstx264 should also be in the official builds:<br>
> > > <br>
> > > <a href="https://gstreamer.freedesktop.org/data/pkg/windows/1.14.4/" rel="noreferrer" target="_blank">https://gstreamer.freedesktop.org/data/pkg/windows/1.14.4/</a><br>
> > > <br>
> > > > Any help or input would be appreciated. Thanks in advance. <br>
> > > > <br>
> > > > <br>
> > > > _______________________________________________<br>
> > > > gstreamer-devel mailing list<br>
> > > > <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> > > > <br>
> > > > <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
> > > <br>
> > > _______________________________________________<br>
> > > gstreamer-devel mailing list<br>
> > > <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> > > <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
> <br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></blockquote></div>
</blockquote></div>