config.yaml has a handful of values you can change. However, more can be customized if you need them to be. Some common changes to the config are:
- Your site name, logo, description and external links.
- The stream key to gain access to broadcasting to your stream.
- The path to your specific
- Video quality settings.
- S3 file storage.
An example config file with additional features can be viewed below.
Video Quality #
Owncast supports HLS Adaptive bitrate streaming, or in other words, different video qualities will be used for different network conditions.
You can edit the
config.yaml file and add as many stream variants as you like under the
videoSettings block, like so:
streamQualities: - low: videoBitrate: 400 scaledWidth: 600 encoderPreset: superfast - medium: videoBitrate: 800
Please visit the Encoding document to learn about how the video pipeline with Owncast works and how you can tweak it for the best results with your specific hardware and video configurations.
Important caveats #
CPU Usage #
Each bitrate variant adds significant CPU usage and slows down the overall generation of video segments. If you have a slow server running Owncast you should probably only have one bitrate variant in play. If you add more and you notice that playback becomes choppy it’s likely that everything is running too slowly for consistent playback. Consider removing the additional variants and tweaking your single variant so it supports a wider variety of network conditions.
Disk Usage #
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 then files won’t get cleaned up until some point in the future, so you’ll have more remote storage use in play.
External links #
socialHandles currently supports the following services by name:
tags in the config to display the topics type of content you want to call attention to.
Full Example #
Below, you can see all config items:
publicHLSPath: webroot/hls privateHLSPath: hls ffmpegPath: /usr/local/bin/ffmpeg webServerPort: 8080 instanceDetails: name: Owncast title: Owncast Demo Server logo: small: /img/logo128.png large: /img/logo128.png summary: "This is brief summary of whom you are or what your stream is. demo server for Owncast. You can read more about it at owncast.online. You can edit this description in your web config file.\n\nBlathers is an owl with brown feathers. His face is white and he has a yellow beak. His arms are wing shaped and he has yellow talons. His eyes are very big with small black irises. He also has big pink cheek circles on his cheeks. His belly appears to be checkered in diamonds with light brown and white squares, similar to an argyle vest, which is traditionally associated with academia. His green bowtie further alludes to his academic nature." # This is relative to the webroot, not the project root. This is a markdown file that displays # extra content on below your video. Put whatever you want in here. extraUserInfoFileName: "/static/content.md" tags: - music - software - animal crossing # https://github.com/gabek/owncast/blob/master/doc/configuration.md#external-links # for full list of supported social links. All optional. socialHandles: - platform: github url: https://github.com/gabek/owncast - platform: instagram url: http://instagram.biz/owncast - platform: facebook url: http://facebook.gov/owncast - platform: tiktok url: http://tiktok.cn/owncast - platform: soundcloud url: http://soundcloud.com/owncast videoSettings: # The length of a single segment of video. chunkLengthInSeconds: 4 # Change this value and keep it secure. Treat it like a password to your live stream. streamingKey: abc123 # The "Stream is offline" content displayed when a stream ends. offlineContent: static/offline.m4v # Determine the bitrate of your stream variants. # See https://github.com/gabek/owncast/blob/master/doc/configuration.md#video-quality for details. streamQualities: - low: # Higher the bitrate, the better it looks, but it requires more bandwidth to consume. videoBitrate: 400 # Resize the width to something smaller. scaledHeight is also an option. Don't use both at once # unless you want to chang the aspect ratio of your video. scaledWidth: 600 # Don't re-encode the audio. audioPassthrough: true # The slower the preset the higher quality the video is. # Select a preset from https://trac.ffmpeg.org/wiki/Encode/H.264 # "superfast" and "ultrafast" are generally not recommended since they look bad. encoderPreset: veryfast - medium: videoBitrate: 800 encoderPreset: fast # Number of segments kept referenced in the HLS playlist files: maxNumberInPlaylist: 4 # Read https://github.com/gabek/owncast/blob/master/doc/S3.md for S3 config details. s3: enabled: false endpoint: https://s3.us-west-2.amazonaws.com servingEndpoint: https://yourcdn.example accessKey: ABC12342069 secret: lolomgqwtf49583949 region: us-west-2 bucket: myvideo