From 290eda09bd03c8b369ca59ca2f01dfe63fd4fca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20=27Kubat=27=20MARTIN?= <mael.martin31@gmail.com> Date: Sun, 11 Aug 2019 11:26:37 +0200 Subject: [PATCH] Added extractAss.sh and update permissions of script files --- extractAss.sh | 34 ++++++++++++++++++++++++++++++++++ extractWav.sh | 14 +++++++------- 2 files changed, 41 insertions(+), 7 deletions(-) create mode 100755 extractAss.sh mode change 100644 => 100755 extractWav.sh diff --git a/extractAss.sh b/extractAss.sh new file mode 100755 index 0000000..cf5dcdd --- /dev/null +++ b/extractAss.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +########################################################################################################## +# +# COMMAND : extractAss.sh +# +# AUTHOR : Kubat +# +# DESCRIPTION : CLI tool to extract subtitles from .mkv files +# +# USE : ./extractAss.sh fileInput.mkv fileOutput.ass +# +# REQUIREMENTS : Have FFMPEG and SoX installed (for audio/video decoding) +# +# +########################################################################################################## + +USAGE_MESSAGE="usage : $0 fileInput.mkv fileOutput.ass" +if [ $# != 2 ] +then + echo $USAGE_MESSAGE + exit 1 +fi + +if ! [[ "$1" =~ .mkv$ ]] || ! [[ "$2" =~ .ass$ ]] +then + echo $USAGE_MESSAGE + exit 1 +fi + +# get the subtitles track id +ID=$(mkvmerge --identify "$1" | sed -n 's/Track ID \([[:digit:]]*\).*subtitles.*/\1/p') + +mkvextract tracks "$1" "$ID":"$2" diff --git a/extractWav.sh b/extractWav.sh old mode 100644 new mode 100755 index 17d6688..838fe29 --- a/extractWav.sh +++ b/extractWav.sh @@ -32,14 +32,14 @@ for filename in "$1"/*.mkv; do [ -e "$filename" ] || continue name=${filename##*/} base=${name%.mkv} - + codecLine=$(mkvinfo "$filename" | grep " A_") regex=".*A_([A-Z0-9]+).*" - + [[ $codecLine =~ $regex ]] codec=${BASH_REMATCH[1]} - + case $codec in "AAC") @@ -57,7 +57,7 @@ for filename in "$1"/*.mkv; do "MPEG") extension="mp3" ;; - + "AC3") extension="ac3" ;; @@ -72,8 +72,8 @@ for filename in "$1"/*.mkv; do *) extension="" - ;; - + ;; + esac @@ -81,7 +81,7 @@ for filename in "$1"/*.mkv; do ffmpeg -i "$filename" -acodec copy -vn "$2/$base.$extension" && \ ffmpeg -i "$2/$base.$extension" "$2/$base.stereo.wav" && \ sox "$2/$base.stereo.wav" "$2/$base.wav" remix - && \ - rm "$2/$base.stereo.wav" && \ + rm "$2/$base.stereo.wav" && \ rm "$2/$base.$extension" done -- GitLab