g* auto git commands added, some encoding stuff as well
This commit is contained in:
44
bin/extract_audio
Executable file
44
bin/extract_audio
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
err_file="/tmp/getaudio_$$"
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
printf 'Need a filename of a video\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
input_file="$1"
|
||||
if [[ ! -f "$input_file" ]]; then
|
||||
printf "Can't read %s\n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
base_path="$(dirname "$input_file" 2>"$err_file")"
|
||||
err="$(<"$err_file")"
|
||||
|
||||
if [[ -n "$err" ]]; then
|
||||
printf '%s\n' "$err" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# audio_ext="$(ffprobe "$input_file" 2>&1 | sed -nr 's/.*Audio: (...).*/\1/p')"
|
||||
|
||||
mediainfo_json="$(mediainfo --Output=JSON "$input_file")"
|
||||
audio_codec="$(jq -r '.media.track[] | select(."@type"=="Audio") | .Format' <<< "$mediainfo_json")"
|
||||
audio_ext="$(tr [:upper:] [:lower:] <<< "$audio_codec")"
|
||||
|
||||
if [[ -n "$2" ]]; then
|
||||
if [[ "$2" == *.* ]]; then
|
||||
audio_out="$2"
|
||||
else
|
||||
audio_out="${2}.${audio_ext}"
|
||||
fi
|
||||
else
|
||||
out_file="$(basename ${input_file%%.*})"
|
||||
audio_out="${base_path}/${out_file}.${audio_ext}"
|
||||
fi
|
||||
|
||||
echo ffmpeg -i "$input_file" -vn -acodec copy "$audio_out"
|
||||
ffmpeg -i "$input_file" -vn -acodec copy "$audio_out"
|
||||
|
Reference in New Issue
Block a user