From c33104c552d41bb8eb674d25cc411a470fcf57e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Sat, 8 Oct 2022 01:11:44 +0200 Subject: [PATCH] strip_track_except: copy to tempfile, then overwrite --- strip_track_except.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/strip_track_except.sh b/strip_track_except.sh index 86705fd..a5b8a07 100755 --- a/strip_track_except.sh +++ b/strip_track_except.sh @@ -19,6 +19,10 @@ TRACK_COUNT=$(echo "$JSON_OUTPUT" | jq length) # check if tracks other than the one to keep are present UNDESIRED_TRACK_COUNT=$(echo "$JSON_OUTPUT" | jq '[.[] | select(.properties.language!="$LANGUAGE_TO_KEEP")] | length') [[ $UNDESIRED_TRACK_COUNT -lt 2 ]] && echo -e "\tFile has only '$LANGUAGE_TO_KEEP' tracks, skipping." && exit 1 -FILENAME_WITHOUT_EXT=${FILENAME%.*} +FILENAME_EXT=${FILENAME##*.} echo -e "\tRemoving all audio tracks except '$LANGUAGE_TO_KEEP' tracks..." -pv "$FILENAME" | ffmpeg -i pipe:0 -map 0:v -map 0:a:m:language:${LANGUAGE_TO_KEEP} -map 0:s -c copy -v warning "${FILENAME_WITHOUT_EXT}.converted.mkv" +TMPFILE=$(mktemp) +echo -e "\tOutputting to temporary file ${TMPFILE}.${FILENAME_EXT}..." +pv "$FILENAME" | ffmpeg -i pipe:0 -map 0:v -map 0:a:m:language:${LANGUAGE_TO_KEEP} -map 0:s -c copy -v error "${TMPFILE}.${FILENAME_EXT}" +echo -e "\tReplacing ${FILENAME} with ${TMPFILE}..." +mv "${TMPFILE}.${FILENAME_EXT}" "$FILENAME"