Skip to content

Instantly share code, notes, and snippets.

@Macht59
Created January 3, 2024 19:31
Show Gist options
  • Select an option

  • Save Macht59/cd21eced8808aa7492d3d167384e6b53 to your computer and use it in GitHub Desktop.

Select an option

Save Macht59/cd21eced8808aa7492d3d167384e6b53 to your computer and use it in GitHub Desktop.
mass mkvmerge script
#!/bin/bash
SOUND_DIR="./sound"
VIDEO_DIR="./video"
SEASON="01"
REMOVE_SOURCE_FILES="false"
AUDIO_OFFSET="0"
if [ $# -lt 2 ]; then
echo "Specify episodes range like ./merge.sh from-episode to-episode [audio-offset]"
exit 1
fi
echo "Merge episodes from $1 to $2"
if [ $# -eq 3 ]; then
echo "Using audio offset of $3 ms"
AUDIO_OFFSET=$3
fi
for ((i = $1; i <= $2; i++)); do
EPISODE=$(printf "%03d" $i)
echo Work with episode $EPISODE
AUDIO_FILE=$(find "$SOUND_DIR" -type f -name "*$EPISODE*")
if [ -z "$AUDIO_FILE" ]; then
echo "No file found in $SOUND_DIR with $EPISODE in the name"
exit 1
fi
echo "Found audio file: $AUDIO_FILE"
VIDEO_FILE=$(find "$VIDEO_DIR" -type f -name "*$EPISODE*")
if [ -z "$VIDEO_FILE" ]; then
echo "No file found in $VIDEO_DIR with $EPISODE in the name"
exit 1
fi
echo "Found video file: $VIDEO_FILE"
mkvmerge -A -o s${SEASON}e$EPISODE.mkv -y 1:$AUDIO_OFFSET "$VIDEO_FILE" --language 0:rus "$AUDIO_FILE"
echo Result code $?
if [ $? -ne 0 ]; then
echo "Error while merging episode $EPISODE"
exit 1
fi
if [ "$REMOVE_SOURCE_FILES" = "true" ]; then
echo "Removing source files"
rm $VIDEO_FILE
rm $AUDIO_FILE
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment