Skip to content

Instantly share code, notes, and snippets.

@RobbieClarken
Last active January 11, 2017 15:38
Show Gist options
  • Save RobbieClarken/6419877 to your computer and use it in GitHub Desktop.
Save RobbieClarken/6419877 to your computer and use it in GitHub Desktop.
#!/bin/bash
mkvname=$1
base=$(basename -s .mkv "$mkvname")
outname="$base.remuxed.mkv"
trackinfo=$(mkvinfo -s $mkvname | head -100 | grep Track)
tids=$(echo "$trackinfo" | sed -E "s/Track ([0-9]+).*/\1/")
tracks=$(echo "$tids" | awk '{printf "%s:'$base'.track.%s ", $1, $1}')
trackfiles=$(echo "$tids" | awk '{printf "'$base'.track.%s ", $1}')
durations=$(echo "$trackinfo" \
| grep "default duration" \
| sed -E "s/Track ([0-9]+).*default duration: ([^ ]+).*/\1 \2/" \
| awk '{printf "--default-duration %s:%s ", $1-1, $2}')
extractcmd="mkvextract tracks $mkvname --raw $tracks"
mergecmd="mkvmerge $durations $trackfiles -o $outname"
echo "$extractcmd"
$extractcmd
echo "$mergecmd"
$mergecmd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment