Wiki β†’ Videos

We have a YouTube channel at

If you’ve given talks in our events, you can find your talk videos published on our channel.

Help us grow our channel

Livestream archives

Livestream archives can be found on the Creatorsgarten Facebook page as well as on the Garten Streams playlist on YouTube.

Common audio/video issues

When livestreaming

  • Audio too quiet. Check in OBS that when speaking, the sound level is in the yellow color zone between -20 and -9 dB

  • Audio output works in one channel only. Check in OBS and make sure that there are 2 volume bars (left and right channel). If the problem from the source signal cannot be fixed, go to Advanced Audio Settings and make it mono.

When casting remote talks

  • Sound echos. Mute yourself as much as possible when not speaking, so that sound flows in one way.

When preparing VODs

  • Video and audio not synchronizing. In a video editor software, detach the audio from video, so that they can be moved independently.

  • Issues that interrupt the presentation. For example, connectivity problems, technical issues. They might be safe to cut out from the VOD.

  • Audio output works in one channel only. To fix in post, convert the audio to mono.

  • Microphone feedback loop and noise. To fix in post, if you have Final Cut Pro you can use the Voice Isolation feature.

  • Missing presentation slides. They can be added in post.


To keep convention of streaming for many events to be streamlined (for the sake of editing as well). We would like to encourage to do following steps.

  1. Use LiveKit to create overlay for events, then adding into OBS by using browser capture.

    CleanShot 2023-05-09 at 03 40 17

  2. Use h264 hardware encoder with the maximum bitrate of 18000Kbps for streaming. On avarage, we will output stream to the internet at 9000Kbps anyway.

    CleanShot 2023-05-09 at 03 44 01

  3. For recording, use HEVC (h265) hardware encoder for the best file efficiency with the same maximum bitrate of 18000Kbps and record at the format of mp4.

    CleanShot 2023-05-09 at 03 48 57

    I have a lower-end machine (@rayriffy has an M1 Max while I have a normal M1 machine), so my recording quality is set to β€œSame as stream.” This makes OBS use 2x less load because only a single video encoder is used for both streaming and recording (instead of using separate encoders, consuming twice the resource).
    On file format, there is a caveat of MP4 file format. I have once lost an entire recording due to a system crash (MP4 files are unrecoverable if it is not finalized), so nowadays I record as MKV instead, and then use the Remux recording feature to remux it into MP4.
  4. Audio sample rate is set to 48kHz, and video output resolution set to 1920x1080 with common FPS values of 60

  5. We would like to recommend using Audio Hijack with Loopback to the mix sound instead of using OBS’s mixer. This is for the best for streamer to only control audio levels in just one place. Additionally, Audio Hijack lets you separately record each audio source for future editing. Each venue will have different setup, so please plan ahead.

    CleanShot 2023-05-09 at 03 50 09

  6. Main video feed that is either output from ATEM Pro Mini or directly from Speaker Screen must be extend to 3:2 ratio by height is counted from the top of the canvas to the top of overlay navbar. The rest of the space will be given to the camera itself. This convention is being made to make video thumbnail in each video to be consistant as well.

    2023-05-03 20-36-16-0001

    Actual canvas that being output from ATEM is actually 3:2, but basically put ATEM canvas to full without cropping, the rest of available space goes to camera

Preparing videos

Work on preparing VODs for some events are coordinated on Airtable.

Each talk goes through several stages before they are uploaded to the YouTube channel.

  1. Source β€” Obtain the source material, either recorded in OBS, or downloaded back from Facebook Live. Re-upload it to YouTube (unlisted) for easy viewing, and also upload it to OneDrive for easy downloading by teammates.

  2. Timestamp β€” Determine the time range within the source material that contains the talk.

    • It does not need to be precise, just a hint for other teammates on where to find the talk.
  3. Slice β€” Cut the source video around the time range and put it in its own file. This results in a smaller file that’s easier to work with.

    • This step can be automated. The cut script can be used to cut the video in a lossless manner using ffmpeg. It generates a .source.mp4 file. One minute of padding is added to the video to account for imprecise timestamps in step 2.
  4. Fix β€” Perhaps the most resource-consuming part of this process. Watch the talk to identify the issues in the video, and fix them if possible.

    • Examples: Cut out the part where the talk is interrupted by a technical issue. Cut out the part where people are just passing the mic around. Apply noise reduction. Fix audio channel issues. Boost the audio level if source file is extremely quiet.

    • In simple cases, this can be done via a simple video editing software like iMovie.

    • There are some commonly-used FFmpeg snippets.

  5. Upload β€” The video is uploaded to YouTube as unlisted.

Publishing videos

  1. Import into GitHub β€” After the video is uploaded, import it into the creatorsgarten/videos repository. This will create the metadata files.

  2. Prepare the metadata β€” Update the metadata files. When the files are updated, they will automatically be reflected in YouTube.

  3. Publish β€” When the published property is set to true, then the video becomes Public on YouTube. (Otherwise it’s Unlisted.)



EDIT 11 June 2023 / @rayriffy