strip_track_except: copy to tempfile, then overwrite

This commit is contained in:
Lukáš Kucharczyk 2022-10-08 01:11:44 +02:00
parent 69255ee577
commit c33104c552
Signed by: lukas
SSH Key Fingerprint: SHA256:vMuSwvwAvcT6htVAioMP7rzzwMQNi3roESyhv+nAxeg
1 changed files with 6 additions and 2 deletions

View File

@ -19,6 +19,10 @@ TRACK_COUNT=$(echo "$JSON_OUTPUT" | jq length)
# check if tracks other than the one to keep are present # 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=$(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 [[ $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..." 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"