A place to share magic spells
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.4 KiB

4 years ago
# Homebrew Bioscoop Wiki
[TOC]
## File sharing with Dat
4 years ago
Dat is a peer-to-peer file sharing technology. It means we can share our files
4 years ago
directly between our computers without using services like WeTransfer and
Google Drive as an intermediate step. It is still an experimental technology
but it's getting there.
We're still waiting on the newer more reliable version of [Dat desktop](https://github.com/datproject/dat-desktop/pull/649)
to be released. Until that day comes, we have to use the command-line interface. Luckily,
it's very easy to install.
To get started, just download and unzip this file for your operating system:
[GNU/Linux](https://github.com/datproject/dat/releases/download/v14.0.2/dat-14.0.2-linux-x64.zip),
[MacOS](https://github.com/datproject/dat/releases/download/v14.0.2/dat-14.0.2-macos-x64.zip)
or [Windows](https://github.com/datproject/dat/releases/download/v14.0.2/dat-14.0.2-win-x64.zip).
Then you can run the `dat` binary in the unzipped folder. On GNU/Linux, that
might look like the following commands.
```bash
$ curl -sOL https://github.com/datproject/dat/releases/download/v14.0.2/dat-14.0.2-linux-x64.zip
$ unzip dat-14.0.2-linux-x64.zip
$ cd dat-14.0.2-linux-x64
$ ./dat --version # just testing...
```
Then, creating a new Dat is as easy as the following.
```bash
$ dat create myfolder
```
Where `myfolder` is the folder you want to share with friends.
See the [Dat usage documentation](https://github.com/datproject/dat#usage) for more.
## Video streaming with Icecast
Video streaming is hard. It seems to be more about how many data centers you
have hardware in and what deals you've struck with ISPs for larger bandwidth.
We don't have any of that.
The aim is to stream visual media between small numbers of friends on regular
household laptops and old computers. We aim to explore what are the limits for
the homebrew setup.
### The Architecture
Most people seem to recommend [Icecast](https://icecast.org/) and
[OBS](https://obsproject.com/). It also seems to be possible to use plain old
[ffmpeg](https://www.ffmpeg.org/).
### Requirements
What are the CPU requirements? What are the bandwidth requirements? What kind
of RAM do we need? What are the other things we need to take into account and
how can we reason about the requirements for video streaming between friends?
We hope to document all this as we find out.
4 years ago
### Icecast Format
> What is Icecast, the program?
>
> Icecast is a streaming server, which can stream audio (and video) to
> listeners/viewers. It supports Ogg (Vorbis, Theora), Opus, FLAC and WebM
> (VP8/VP9), nonfree codecs/formats like MP4 (H.264, MPEG4), M4A, NSV, AAC and
> MP3 might work, but we do not officially support those.
So, we aim for [WebM](https://www.webmproject.org/).
### Setting up Icecast
TODO.
### Tweaking Icecast
- [Configuring Icecast](https://epir.at/2018/03/08/obs-icecast-streaming/)
### Converting Film File Formats
Trying the following so far.
```
$ ffmpeg -i myfilm.format myfilm.otherformat
```
4 years ago
However, that seems to take 10 years to convert anything. There is an epic
looking ffmpeg [documetation page](https://trac.ffmpeg.org/wiki/Encode/VP9) all
about convert to webm which we are looking into.
Some notes from IRC chat:
- If your film was recorded with 25 FPS and you're encoding with 100 FPS (see
status line at the bottom from ffmpeg conversion) then it will be done in 4
times faster than real time. If encoding at less than 25 FPS, then it will go
slower than real time.
- The FPS that you can encode is determined by your CPU power. GPUs can be used
but a random person on IRC tells me that better results are seen whilst using
CPUs.
4 years ago
- Amazing human from IRC says: "I use an i9-9900K with 16 threads at 5ghz per
thread and things still take long... whatever you have it will never be fast
enough"
4 years ago
- Someone on the Icecast IRC said that we can stream any format we like but
some might just break (and then don't even bother asking haha). So it might
be possible to skip the conversion step.
4 years ago
It also seems to be possible to use [HandBrake](https://handbrake.fr/) although
it's unclear where the options in the menu are for doing the conversion.
### Streaming to Icecast
- [support.mayfirst.org/wiki/StreamDesktop](https://support.mayfirst.org/wiki/StreamDesktop)
- [wiki.xiph.org/index.php?title=Icecast_Server/Streaming_WebM_to_Icecast_with_FFmpeg](https://wiki.xiph.org/index.php?title=Icecast_Server/Streaming_WebM_to_Icecast_with_FFmpeg&mobileaction=toggle_view_desktop)