[HN Gopher] GStreamer 1.20: Embedded and WebRTC lead the way
       ___________________________________________________________________
        
       GStreamer 1.20: Embedded and WebRTC lead the way
        
       Author : mfilion
       Score  : 118 points
       Date   : 2022-02-18 17:09 UTC (5 hours ago)
        
 (HTM) web link (www.collabora.com)
 (TXT) w3m dump (www.collabora.com)
        
       | Sean-Der wrote:
       | WebRTC has so many great implementations now! The author of the
       | C# implementation started a really great project webrtc-echoes[0]
       | that shows them all working together.
       | 
       | The next big challenge in the space seems to be getting widely
       | available congestion control. The hard part is making sure it is
       | understandable and customizable for everyones use cases.
       | 
       | [0] https://github.com/sipsorcery/webrtc-echoes
        
       | nakovet wrote:
       | I would love to do buy gstreamer course to learn more, I am
       | finding the documentation hard to navigate on the macOS platform,
       | it seems very linux friendly. Keeping an eye for study materials.
        
       | CyberRabbi wrote:
       | These are incredible contributions to the community. Thank you
       | Collabora and the gstreamer team.
        
       | CameronNemo wrote:
       | I might switch to Epiphany on my Pinebook Pro due to gstreamer
       | supporting hwaccel video decode. VAAPI (used by Firefox) does not
       | on this hardware.
       | 
       | I'll have to run some tests though.
        
         | freebuju wrote:
         | You can give Chromium a try. It has unofficially supported hw
         | video decode capability. Though in my experience, out of the
         | available browsers, Epiphany had the most robust hw video
         | playback support due to gstreamer integration.
        
           | CameronNemo wrote:
           | I am pretty sure Chromium does not have hwaccel decode on my
           | hardware (rk3399). It uses VAAPI like Firefox.
        
             | freebuju wrote:
             | My bad. I thought you were saying you had issues with
             | getting vaapi to work on Firefox. Tough luck getting any hw
             | video acceleration in Linux outside of x86_64 and vaapi
             | capable chips.
        
       | binarynate wrote:
       | This is good news, although it looks like GStreamer's WebRTC
       | plugin is still in its "bad" plugins repo:
       | 
       | https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/t...
       | 
       | From the README:
       | 
       | > gst-plugins-bad: a set of plug-ins that aren't up to par
       | compared to the rest. They might be close to being good quality,
       | but they're missing something - be it a good code review, some
       | documentation, a set of tests, a real live maintainer, or some
       | actual wide use. If the blanks are filled in they might be
       | upgraded to become part of either gst-plugins-good or gst-
       | plugins-ugly, depending on the other factors.
       | 
       | This was a bit of a turn off when I was evaluating GStreamer for
       | a WebRTC based product I'm working on.
        
         | sho_hn wrote:
         | The gst-plugins-bad repo is defunct. GStreamer now uses a
         | monorepo (also mentioned in the article).
         | 
         | https://gstreamer.freedesktop.org/documentation/frequently-a...
         | 
         | That said, webrtc is still in -bad:
         | https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/ma...
        
           | binarynate wrote:
           | Thanks for the link to the new repo, I had missed that.
        
         | Sean-Der wrote:
         | What did you end up using for WebRTC? Any specific things that
         | you needed when looking at WebRTC implementations?
        
           | binarynate wrote:
           | Hi, Sean! Thanks again for creating Pion. That's what I'm
           | using for the product now. I shared my reasons for choosing
           | Pion on Reddit when you posted about the Pion v3 release:
           | 
           | https://www.reddit.com/r/golang/comments/kj1net/pion_webrtc_.
           | ..
        
           | oplav wrote:
           | I'm not the commenter you are responding to, but we've been
           | using webrtcbin in a production system since late 2019. We
           | had some help from Collabora's consulting services
           | (specifically from Olivier and Aaron!) and our use case was
           | pretty targeted (near real time broadcasting of a video
           | stream to a handful of internal users) so YMMV.
           | 
           | EDIT: Didn't realize you were the author of Pion! We looked
           | at Pion and Janus when we were evaluating, but ended up using
           | GStreamer ultimately because we had other GStreamer
           | components within our pipeline.
        
       | eternityforest wrote:
       | GStreamer is so amazing! Probably the best way to do anything
       | related to media.
        
       | krastanov wrote:
       | I am probably asking about an apples to oranges comparison, but
       | could someone knowledgeable help me understand in what situations
       | I would want to use gstreamer vs ffmpeg vs pipewire vs others.
       | They all have some overlap and can use each other for some sub-
       | tasks, but I do not know when to reach for what.
        
         | goombacloud wrote:
         | GStreamer is the top-level framework that allows you to connect
         | the modules it offers to solve your problem, ffmpeg is a tool
         | or library to invoke which may cover your case but is a bit
         | harder to integrate and fit for arbitrary usecases, PipeWire is
         | for live connecting input sources to output sinks at a lower
         | level.
        
         | johnny22 wrote:
         | it really depends on what you're trying to do.
         | 
         | gstreamer and ffmpeg can both fill the same niche, but not
         | completely. gstreamer is plugin based while ffmpeg is
         | monolithic. gstreamer has a plugin for ffmpeg, while the
         | reverse is (or wasn't last i checked) isn't true.
         | 
         | You need pipewire, pulse, or plain alsa to actually play the
         | audio streams. Not a lot of overlap most of the time with
         | gstreamer or ffmpeg unless you're dealing with raw streams.
        
       | preya2k wrote:
       | I wanna believe that this is a fantastic piece of software.
       | However it's really bad at describing what it does. As a software
       | developer, I cannot find a high-level 2-5 sentence description of
       | what GStreamer actually is/does on their website. I might just be
       | blind, but this should really be on the home page above the fold.
       | So many OSS projects fail at this :(
        
         | TingPing wrote:
         | Its a multimedia framework. It can do everything in that
         | domain, decoding, muxing, rendering, etc.
        
       ___________________________________________________________________
       (page generated 2022-02-18 23:00 UTC)