Table of Contents

Tracker Cutting Howto

When we talk about “cutting a video”, we mean a highly automated process how the intro and outro get added to a recorded lecture using the CRS Ticket Tracker. Cutting in our case bascially only consists of setting the actual start and end of the lecture. Everything else is an automated process.

This page is meant to describe the steps involved when everything else is already prepared. See Intro-Outro-Generator for a way to generate intros based on a talk schedule and Project setup for the steps to set up a new tracker project (which is usually done by the “VOC event lead/ resposible person”).

Cutting with FUSE

There are two main ways of cutting a video: Using the KDEnlive or Shotcut open source video editors or by manually writing frame numbers to obtained from a video player like mpv the in- and outframe files.

General preconditions:

General Workflow

Note: The following commands will use storage.lan.c3voc.de as a placeholder for the machine with the FUSE mounts. Small events may use encoderX.lan.c3voc.de or minionX.lan.c3voc.de as storage share.

We use three different file share mounts, due to different read/write permissions. $USER is already set by your OS.

First of all, you need to mount the storage device's SMB file share to access the files:

If you can see files in fuse/<EVENT>/<ROOM>/<Talk-ID>, you're ready to go.

To cut a lecture:

Notes on Using KDEnlive

Open the project.kdenlive project file to start cutting:

If you have a poor connection to the storage, deactivate the video and audio thumbnails using the buttons on the right side of the lower window border.

Notes on Using Shotcut

Open the project_shotcut.mlt project file to start cutting:

More shortcuts:

Possible issues at installation:

Notes on Using mpv

mpv is a command line media player, which can also be used in our cutting workflow. nicoo wrote an mpv script which automates our cutting workflow.

See the ''mpv'' manual for the default keybinds.

Setup

Install the script, typically by copying c3voc-cutter.lua to ~/.config/mpv/scripts/. If using a mountpoint other than /video, it needs to be set in ~/.config/mpv/script-opts/c3voc.conf.

The script does not add keybindings by default, and those must be configured in ~/.config/mpv/input.conf like so:

% script-binding c3voc-cutter-jump-in
^ script-binding c3voc-cutter-jump-out
Ctrl+5 script-binding c3voc-cutter-set-in
Ctrl+6 script-binding c3voc-cutter-set-out

mpv can also be configured to show frame numbers by adding these settings in ~/.config/mpv/mpv.conf:

osd-level=3
osd-status-msg=${playback-time/full} / ${duration} (${percent-pos}%)\nframe: ${estimated-frame-number} / ${estimated-frame-count}

If using nix / home-manager, the script repository is a flake providing the necessary configuration as NixOS and HM modules; just add the following to your (NixOS) imports, replacing nicoo with your local username:

{
  imports = [ c3voc-scripts.nixosModules.default ];
  home-manager.users.nicoo.imports = [ c3voc-scripts.homeModules.default ];
  c3voc.user = "nicoo";
}

Usage (with script)

Usage (manual)

Open the uncut.ts in mpv to start cutting:

Using echo works best since some text editors like to create temporary lock files which isn't allowed on the FUSE file system.

Tips

For nix users: those are all packaged, and can be added with

programs.mpv.scripts = with pkgs.mpvScripts; [
  evafast
  quack
  thumbfast # NOTE: useless on its own, combine with its builtin osc.lua, or with alt. OSCs like uosc
];

Known Issues and Solutions

Remote Cutting using a Proxy File

The uncut.ts can get quite large as we're still recording using the MPEG2 codec. If you need to cut via the VPN, it may be useful to generate smaller low-resolution “proxy” files and cut based on that: