From e0f4fcf6c9c35f8ac7490c8d12a39846ce902191 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Tue, 17 May 2022 21:45:10 +0200 Subject: [PATCH] Add quickcut ffmpeg wrapper Signed-off-by: Knut Ahlers --- bin/quickcut | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 bin/quickcut diff --git a/bin/quickcut b/bin/quickcut new file mode 100755 index 0000000..724b8d3 --- /dev/null +++ b/bin/quickcut @@ -0,0 +1,25 @@ +#!/bin/zsh +set -euo pipefail + +source ~/bin/script_framework.sh + +function usage() { + fail "Usage: $0 " +} + +chapters_file="${1:-}" +[[ -n $chapters_file ]] || usage + +source_video="${2:-}" +[[ -n $source_video ]] || usage + +IFS=$'\n' + +for line in $(grep -vE "^(|#.*)$" ${chapters_file}); do + start_ts=$(echo "${line}" | cut -d ' ' -f 1) + end_ts=$(echo "${line}" | cut -d ' ' -f 2) + name=$(echo "${line}" | cut -d ' ' -f 3-) + + step "Copying segment between ${start_ts}s and ${end_ts}s into file ${name}.${source_video##*.}" + ffmpeg -ss ${start_ts} -i "${source_video}" -c copy -t $((end_ts - start_ts)) "${name}.${source_video##*.}" +done