audio, video, and graphics (avg). This repository contains assets and guides for generating videos and graphics used in relation to octetz.com. All graphics are created using free and open-source software inkscape and gimp.
Media uses the Lacquer-Font/Lacquer.
The .ttf
file is available in the font directory. To install on Linux, do the
following.
sudo cp -rv font/lacquer /usr/share/font &&\
sudo chmod 644 /usr/share/font/Lacquer-Regular.ttf
Thumbnails are used for YouTube and [sometime] re-used as website summary cards. They are created using inkscape. This assumes you have setup fonts.
-
Create a new thumbnail from
svg/yt_thumbnail.svg
.cp -v svg/yt_thumbnail.svg ~/Documents/new_thumbnail.svg
-
Edit the new thumbnail.
inkscape ~/Documents/new_thumbnail.svg
-
Select the
bg
layer. -
Select the image object.
-
Right click and choose
Release Clip
. -
Examine the two objects.
The red rectangle represents the 1280x720 space which an image can be clipped inside of. The image (triangle) represent what will become the content of that clip.
-
Delete the existing image (triangle).
-
Add a new image.
Be sure to respect licensing.
-
Hit
PgDn
to move the object to the bottom of the layer.To see object order in a layer, open
Object > Objects..
from the menu bar. -
Position the image within the red rectangle based on your preferences.
-
Select the red rectangle and image.
-
Right click and choose
Set Clip
. -
Make needed changes and upload.
-
Download obs-studio-git.
cd $(mktemp -d) &&\ git clone https://aur.archlinux.org/obs-studio-git.git &&\ cd obs-studio-git
-
Ensure correct version of cef is set in the depends block of the
PKGBUILD
.see https://aur.archlinux.org/packages/obs-studio-git/#comment-737390
as of 08/30/2020, it appears the correct cef version is being used.
-
Resolve missing dependencies not resolvable in arch repos.
==> ERROR: 'pacman' failed to install missing dependencies. ==> Missing dependencies: -> libfdk-aac -> swig -> cef-minimal-3770
In the above, only
cef-minimal-3770
requires downloading and installing from AUR. However, all dependencies report missing. You only need to explicitly installcef-minimal-3770
in the above case. All other dependencies, found in official repos, will download themselves. -
Compile and install obs.
makepkg -si
The octetz.com OBS configuration is a simple 1920x1080
screen with a 400px
gutter to the right containing the webcam and other assets. The remainder space
is filled with an application, with expected window sizes of 1520x1080
.
To install this configuration, run the following command. It assumes you've got all font(s) installed from the font section.
cp -rv obs/* ~/.config/obs-studio/
Images will break, you'll need to replace them or change the paths they're pointing to in the configuration.
grep -rF "file" ./obs/basic/
./obs/basic/scenes/octetz.json: "file": "/home/josh/.config/obs-studio/basic/webcam-bg.jpeg"
./obs/basic/scenes/octetz.json: "file": "/home/josh/.config/obs-studio/basic/octetz-logo-white.png"
Rather than sharing my desktop with OBS, I share applications windows. Each window gets its own scene.
This means each application windows being shared should be sized to 1520x1080
.
This is accomplished using wmctrl. To resize the active window, run:
wmctrl -r :ACTIVE: -e 0,0,0,1520,1080
To speed this up, I've bound the above command to Super+Shift+1
. My
~/.bindkeysrc is as follows.
#resize-obs
"wmctrl -r :ACTIVE: -e 0,0,0,1520,1080"
m:0x41 + c:10
Shift+Mod4 + 1
It's important your webcam settings are correct to ensure video comes through at a good quality and frame rate. A common mistake is to not use an (Emulated) video format, causing terrible framerates. Per the obs forums:
The v4l2 userspace utilities additionally provide the option of transcoding some formats devices may offer but obs is not able to use directly. The formats listed as "Emulated" are transcoded from a different input format. On webcams the emulated formats are MJPEG internally most of the time, which is a compressed format. Using those formats can help reduce the needed bandwidth for USB devices and might allow for higher resolutions/framerate.
The key settings to consider are:
- Video Format:
YV12 (Emulated)
- Resolution:
1280x720
- My webcam supports
1080
, but at30fps
- My webcam supports
- Frame Rate:
60.00
For slides, I use zathura.
While stream decks are really
cool, they're very unnecessary. Additionally their support for Linux is not
native. Simply bind scenes to a key sequence via File > Settings > Hotkeys
.
If you run a compositor such as compton or picom you may experience issues with tearing and strange artifacts. Experiments have shown this behavior may have something to do with my graphics card and vsync, but I'm not entirely sure.
Killing the compositor (pkill picom
) may solve this problem altogether.
In File > Settings > Video
I always ensure base resolution and output resolution match,
or else there can be unintended scaling after recording. For all my recordings,
both are set to 1920x1080
.
In File > Settings > Output
, the Output Mode is set to Advanced
. This
enables me to ensure I'm using an encoder with my GPU. Additionally, you can
specify the Bitrate
, which if streaming may be important for how much data you
can push.
Settings in the recording tab are the same as streaming.
I rarely edit videos, when I do, I use kdenlive.