Unable to get visual window when running gstreamer under Windows (work under Bash for Windows)
Nicolas Dufresne
nicolas at ndufresne.ca
Mon Apr 8 18:55:25 UTC 2019
Le lundi 08 avril 2019 à 13:29 -0500, Ben Rush a écrit :
> 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.
>
> 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.
Can you check the display element works ? e.g. videotestsrc ! autovideosink
For the burst issues, change you x264enc setting, with tune=zerolatency as an example.
>
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
> /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
>
> On Mon, Apr 8, 2019 at 12:33 PM Ben Rush <ben at ben-rush.net> wrote:
> > 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.
> >
> > Different subsystems, but it was the same instance of Windows running on the same computer and with the same networking stack.
> >
> > On Mon, Apr 8, 2019, 12:27 Nicolas Dufresne <nicolas at ndufresne.ca wrote:
> > > Le lundi 08 avril 2019 à 11:49 -0500, Ben Rush a écrit :
> > > > 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.
> > > >
> > > > 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.
> > > >
> > > > First, this command works just fine when run under windows:
> > > >
> > > > .\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! rtph264depay ! decodebin ! autovideosink
> > > >
> > > > 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:
> > > >
> > > > .\gst-launch-1.0.exe -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! autovideosink
> > > >
> > > > Once running, I then run this command to acts as the server and start pushing UDP packets:
> > > >
> > > > .\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! h264parse ! rtph264pay pt=96 ! udpsink port=3000
> > >
> > > 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.
> > >
> > > > 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:
> > > >
> > > > gst-launch-1.0 -v udpsrc port=3000 caps="application/x-rtp" ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! decodebin ! autovideosink
> > > >
> > > > Followed by this in another window:
> > > >
> > > > gst-launch-1.0 videotestsrc is-live=true ! x264enc ! h264parse ! rtph264pay pt=96 ! udpsink port=3000
> > > >
> > > > 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).
> > >
> > > I've check our CI builds and they are present, so it mean libgstx264 should also be in the official builds:
> > >
> > > https://gstreamer.freedesktop.org/data/pkg/windows/1.14.4/
> > >
> > > > Any help or input would be appreciated. Thanks in advance.
> > > >
> > > >
> > > > _______________________________________________
> > > > gstreamer-devel mailing list
> > > > gstreamer-devel at lists.freedesktop.org
> > > >
> > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > >
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list