Update documentation since people might try and run this soon

This commit is contained in:
Gabe Kangas 2020-06-28 16:19:26 -07:00
parent ae2e98877b
commit 46177b8163
6 changed files with 71 additions and 64 deletions

View file

@ -25,9 +25,8 @@
* [About the Project](#about-the-project)
* [Getting Started](#getting-started)
* [Prerequisites](#prerequisites)
* [Installation](#installation)
* [Usage](#usage)
* [Docker](#docker)
* [Getting Started](#getting-started)
* [Configuration](#configuration)
* [Use with your software](#use-with-your-desktop-software)
* [OBS & Streamlabs](#usage-with-obs)
* [Restream](#usage-with-restream)
@ -42,10 +41,6 @@
<!-- ABOUT THE PROJECT -->
## About The Project
<!-- <img src="https://placeimg.com/640/480/tech"> -->
### This is a work in progress. The web UI is being worked on and functionality is still being tested and iterated on. Feel free to test and give feedback, but it's not ready for production.
In 2020 the world changed when everyone become stuck in their homes, looking for creative outlets to share their art, skills and themselves from inside their bedroom.
This created an explosion of live streaming on Facebook Live, YouTube Live, Instagram, and Twitch. These services provided everything they needed, an easy way to live stream to the world, and a chat for users to be a part of their community.
@ -63,45 +58,24 @@ I figured you can install Wordpress and self-host your blog, or install Megento
---
<!-- GETTING STARTED -->
## Getting Started
The goal is to have a single service that you can run and it works out of the box, but there are some things you need to have, and some choices you might want to make.
### Prerequisites
* **A computer that's on the public internet to run it on.** While crunching through video and serving it to viewers can be intensive from the computing side, you can get away with pretty meager resources. If you don't already have a server to run it on you can get a [Linode](https://www.linode.com/products/nanodes/) instance for $5/mo that runs it fine. If you worry that you'll be maxing out the bandwidth or transfer limits allotted to you, then utilize [S3 Storage](https://github.com/gabek/owncast/blob/master/doc/S3.md) very cheaply (or even free for a certain amount) to serve the files instead.
* **A computer that's on the public internet to run it on.** While crunching through video and serving it to viewers can be intensive from the computing side, you can get away with pretty meager resources on a simple setup. If you don't already have a server to run it on you can get a [Linode](https://www.linode.com/products/nanodes/) instance for $5/mo that runs it fine. If you worry that you'll be maxing out the bandwidth or transfer limits allotted to you, then utilize [S3 Storage](https://github.com/gabek/owncast/blob/master/doc/S3.md) very cheaply (or even free for a certain amount) to serve the files instead.
* [ffmpeg](https://ffmpeg.org/) is required to function. [Install it](https://ffmpeg.org/download.html) first.
* These instructions are assuming you're using [OBS](https://obsproject.com/) on your personal computer to stream from. It's not required, but it's a great free piece of software.
## Getting Started
### Installation
1. **TODO: Once it's installable add directions here.**
1. Copy config-example.yaml to config.yaml.
1. Edit the config file and point it to `ffmpeg`
1. Set a custom streaming key by editing `streamingKey` in your config.
The goal is to have a single service that you can run and it works out of the box. **Visit the [Quickstart](doc/quickstart.md) to get up and running.**
## Configuration
### Usage
1. Run `./owncloud` from the directory you unzipped it.
1. Open your web browser and visit http://yourserver:8080/. If you changed the port in the config file, then change the URL accordingly. If you are testing this on your own personal computer then you can visit http://localhost:8080.
### Docker
If you want a simpler way to run an instance of owncast you can run it in a container with the supplied Dockerfile.
1. Copy `config-example.yaml` to `config.yaml`
1. Edit `config.yaml` and change the path of ffmpeg to `/usr/bin/ffmpeg`
1. Make any other config changes.
1. Run `docker build -t owncast .` and wait. It may take a few minutes to build.
1. Run `docker run -p 8080:8080 -p 1935:1935 -it owncast`
1. If you ever make any future config file changes you must rerun the `docker build` step otherwise you can just run the `docker run` step to run the service going forward.
Many aspects can be adjusted and customized to your preferences. [Read more about Configuration](/doc/configuration.md) to update the web UI and video easily.
## Use with your desktop software
### Usage with OBS
OBS isn't required, but it's a pretty good piece of free software that will get you streaming from your own computer right away.
1. Install [OBS](https://obsproject.com/) or [Streamlabs OBS](https://streamlabs.com/) and get it working with your local setup.
1. Open OBS Settings and go to "Stream".
2. Select "Custom..." as the service.
@ -169,12 +143,8 @@ Here's a list of some things you can do to increase performance and make things
The following is a list of things, as long as there's some traction, I'd like to focus on.
* Real web layout and chat UI is being worked on by [gingervitis](https://github.com/gingervitis).
* Document more non-Amazon owned, but still S3 compatible storage. There's so many services out there that are S3 compatible such as [Backblaze](https://www.backblaze.com/b2/cloud-storage-pricing.html), [Google Storage](https://cloud.google.com/storage/), [DreamHost DreamObjects](https://www.dreamhost.com/cloud/storage/), or you can [even run your own](https://min.io/). So it's good to have options.
* Refactor chat so it's more controlled by the server and doesn't accept just anything from clients and relay it back to everyone.
* Add more functionality to chat UI such as moderation (deleting messages), emojis/gif search, etc. You know, the stuff other services have and people are used to.
* Collect viewer stats so you know how many people tuned into a stream. People seem to care about that kind of thing.

View file

@ -4,6 +4,5 @@
## Table of Contents
* [Quickstart](quickstart.md)
* [Installing](installing.md)
* [Configuration](configuration.md)
* [S3 Storage](S3.md)

View file

@ -1,15 +1,20 @@
# Configuration
## Video Quality
Owncast supports HLS [Adaptive bitrate streaming](https://en.wikipedia.org/wiki/Adaptive_bitrate_streaming), or in other words, different video qualities that can be used for different network conditions.
You can edit the `config/config.yaml` file and add as many stream _variants_ as you like under the `videoSettings` block, like so:
You can edit the `config.yaml` file and add as many stream _variants_ as you like under the `videoSettings` block, like so:
```
streamQualities:
- bitrate: 2000k
- bitrate: 6000k
- low:
bitrate: 700
scaledWidth: 600
encoderPreset: superfast
- medium:
bitrate: 900
```
You must have at least one bitrate specified.
@ -24,3 +29,27 @@ Each bitrate variant adds significant CPU usage and slows down the overall gener
More stream quality variants requires more disk space, since it's another copy of the video on disk. If you're serving video locally and you have enough disk space then it's probably no big deal and files will rather quickly get rotated and cleaned up. If you're using something like [S3 for storage](S3.md) then files won't get cleaned up until some point in the future, so you'll have more remote storage use in play.
## Customization
Editing `config.yaml` allows you to change the name, description, logo and links to external sites.
`socialHandles` currently supports the following services by name:
* `facebook`
* `twitter`
* `instagram`
* `snapchat`
* `tiktok`
* `soundcloud`
* `bandcamp`
* `patreon`
* `youtube`
* `spotify`
* `twitch`
* `paypal`
* `github`
* `linkedin`
* `discord`
* `mastadon`
Update your `tags` in the config to display the topics type of content you want to call attention to.

View file

@ -1,4 +0,0 @@
Transcoding is done with ffmpeg and that is the one dependency this project requires. So make sure it exists.
* Download from https://www.johnvansickle.com/ffmpeg/ and point your config file at it if needed.
* You will need a somewhat recent version of ffmpeg (TODO: figure out what exact version).

View file

@ -1,27 +1,40 @@
## Quickstart
These steps will utilize Docker, as going from a brand new sever to running the service is easiest done within a container.
There are two quick ways to get up and running, depending on your preference. One is to simply download the service and run it, and the other is through Docker, if Docker is your thing.
1. Create or login to an existing server somewhere.
### Download
1. [Install Docker](https://docs.docker.com/get-docker/). If it's a Debian based linux machine `sudo apt-get install docker.io`.
1. [Install git](https://git-scm.com/downloads) `sudo apt-get install git`.
## Download and run
1. Install [`ffmpeg`](https://ffmpeg.org/download.html) if you haven't.
1. Make a directory to run the service from, and download a release from https://github.com/gabek/owncast/releases into that directory.
1. Unzip the release's archive: `unzip owncast-linux-x.x.x.zip`.
1. [Edit `config.yaml` as detailed below](#configure). Specifically your stream key and `ffmpeg` location.
1. Run `./owncast` to start the service.
---
or.....
## Through docker
1. Download the code. `git clone https://github.com/gabek/owncast`
### Configure
1. Copy `config/config-example.yaml` to `config/config.yaml`
1. Edit `config/config.yaml` and change the path of ffmpeg to `/usr/bin/ffmpeg`.
1. Copy `config-example.yaml` to `config/config.yaml`
1. [Edit `config.yaml`](#configure) and change the path of ffmpeg to `/usr/bin/ffmpeg`.
1. Edit your stream key to whatever you'd like it to be in the config.
1. Make any other config changes.
1. If you ever make any future config file changes you must rerun the `docker build` step otherwise you can just run the `docker run` step to run the service going forward.
1. Run `docker build -t owncast .` and wait. It may take a few minutes to build depending on the speed of your server.
### Run!
1. Run `docker run -p 8080:8080 -p 1935:1935 -it owncast` to start the service.
## That's it!
---
### Configure
1. Edit `config.yaml` and change the path of ffmpeg to where your copy is.
1. In this default configuration there will be a single video quality available, simply whatever is being sent to the server is being distributed to the viewers. The video is also going to be distributed from the server running the service in this case.
1. Continue to edit the config file and customize with your own details, links and info. See [More Configuration](configuration.md) to find additional ways to configure video quality.
### Test
1. Point your broadcasting software at your new server using `rtmp://yourserver/live` and the stream key you set above and start your stream.
1. Access your server in your web browser by visiting `http://yourserver:8080`.
1. If you ever make any future config file changes you must rerun the `docker build` step otherwise you can just run the `docker run` step to run the service going forward.
### That's it!

View file

@ -20,7 +20,7 @@ const SOCIAL_PLATFORMS_URLS = {
urlPrefix: "http://www.instagram.com/",
imgPos: [0,3],
},
instagram: {
snapchat: {
name: "Snapchat",
urlPrefix: "http://www.snapchat.com/",
imgPos: [0,4],
@ -35,8 +35,8 @@ const SOCIAL_PLATFORMS_URLS = {
urlPrefix: "http://www.soundcloud.com/",
imgPos: [0,6],
},
basecamp: {
name: "Base Camp",
bandcamp: {
name: "Bandcamp",
urlPrefix: "http://www.basecamp.com/",
imgPos: [0,7],
},