Wow! This is great! It was always such a struggle to get stuff like CEF (necessary to show rendered HTML/web pages and chat in a livestream) on Linux. I never even tried to tackle other plugins.
I might start up my livecoding again based on this -- thank you
Danny! God, I remember your TV show, 404 Not Found. You should restart that. Did you film it at Capital? I was doing Chips with Everything for .tv at the same time in that tiny, tiny studio.
I was in court testifying about something technical recently and the prosecutor said "And where did you get that?" and I said "404 Not Found" and it was very confusing for them.
This OBS Studio Portable container is built with Ubuntu, because Ubuntu is one of the supported Linux targets by upstream OBS. The OBS Studio Portable container is a ready-to-run, batteries included turn-key solution.
I am a NixOS user and nixpkgs maintainer. I've been working on adding more OBS plugins to nixpkgs and fixing OBS Studio in nixpkgs, but it needs more work:
- For me, it is missing some plugins I rely on and some of the OBS plugins in nixpkgs do not work. I am actively working on this.
- FDK ACC doesn't work in OBS in nixpkgs and the ffmpeg version is not fully API compatible with OBS, meaning some presets do not work. On my list to fix.
- CEF in nixpkgs is not ABI compatible with OBS and cause OBS to segfault when authenticating Twitch. Again, on my list of things to fix.
I have a long history of building a custom OBS Studio on Ubuntu, so decided to make this OBS Studio container with my friends in the Universal Blue project, to get myself a complete OBS setup I can use on NixOS while I continue to work on OBS related fixes in nixpkgs :-)
I stream to Twitch and also to an unlisted YouTube stream., using livepush.io. I do this so I have an archive of my live stream on YouTube that I can easily publish after 24 hours :-)
- I do this using livepush.io. So one stream out to livepush and they push to multiple services.
- However you could run multiple instances of this container and have each stream to a different service. For example one container being the main streaming setup that streams to Twitch but also has NDI or Teleport output that can then be ingested via a second instance of this container that streams to YouTube.
Using this is KVM is technically possible but you'd lose a load of the benefits of running in a container, such as hardware acceleration and seamless integration with your host.
Can ChromeOS running Podman and Distrobox? If so, it should work fine.
> Using this is KVM is technically possible but you'd lose a load of the benefits of running in a container
Not understanding why this would hold true, kvm and containers are both virtualization like tools, just at different levels. I think the main hold up would be the lack of many typical OS features. Like not sure how you'd go about setting up GStreamer for this OBS setup
> Can ChromeOS running Podman and Distrobox? If so, it should work fine.
Pretty much any container, and more than one at a time. Better than WSL imho
Passing through a GPU to a kernel in a VM requires fiddling with SR-IOV and IOMMU, which also requires your hardware is compatible. Often hardware is not compatible, either by design because these features are artificially reserved for "enterprise" models or due to accidental IOMMU group conflicts on lower priced motherboards.
As containers share the host kernel, these issues do not arise and hardware acceleration is trivial.
> The Open Container Initiative (OCI) is a Linux Foundation project, started in June 2015 by Docker, CoreOS, and the maintainers of appc to design open standards for operating-system-level virtualization (software containers). At launch, OCI was focused on Linux containers and subsequent work has extended it to other operating systems.[1]
Is there a build of something like this for Windows? Would be nice to just get a plugin pre-configured build of OBS. Esp. if you are confident they are all compatible and on latest versions.
I have an interest in Linux, so making a Windows build is not something I'm interested in but I see no reason why it couldn't be done.
But you raise a good point about compatibility, everything in this container is built from source so everything is API/ABI compatible since the same toolchain is used throughout.
I might start up my livecoding again based on this -- thank you