Merge branch 'master' of https://git.101010.fr/gardouille-dotfiles/scripts
This commit is contained in:
commit
f2528c963f
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# From :
|
||||||
|
# https://gist.github.com/kowalcj0/ae0bdc43018e2718fb75290079b8839a
|
||||||
|
|
||||||
|
# Can be improve to call ffmpeg only one time :
|
||||||
|
# https://gist.github.com/kowalcj0/ae0bdc43018e2718fb75290079b8839a?permalink_comment_id=4187491#gistcomment-4187491
|
||||||
|
|
||||||
|
function subs() {
|
||||||
|
movie="${1}"
|
||||||
|
filename="${1%.*}"
|
||||||
|
mappings=`ffprobe -loglevel error -select_streams s -show_entries stream=index:stream_tags=language -of csv=p=0 "${movie}"`
|
||||||
|
OLDIFS=$IFS
|
||||||
|
IFS=,
|
||||||
|
( while read -r idx lang
|
||||||
|
do
|
||||||
|
echo "Exctracting ${lang} subtitle #${idx} from ${movie}"
|
||||||
|
ffmpeg -nostdin -hide_banner -loglevel quiet -i "${movie}" -map 0:"$idx" "${filename}_${lang}_${idx}.srt"
|
||||||
|
done <<< "${mappings}" )
|
||||||
|
IFS=$OLDIFS
|
||||||
|
}
|
||||||
|
|
||||||
|
subs "${1}"
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Convert input file to x265 :
|
||||||
|
# * Keep only the first audio track (-map 0:a:0)
|
||||||
|
# * Keep all subtitles (-map 0:s)
|
||||||
|
# * Use fast preset for encoding
|
||||||
|
# * Simply add "x265" at the end of the file (before the extension)
|
||||||
|
# * Only print progression
|
||||||
|
|
||||||
|
# Colors {{{
|
||||||
|
readonly RED='\033[0;31m'
|
||||||
|
readonly RESET='\033[0m'
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
x265_convert() {
|
||||||
|
orig_file="${1}"
|
||||||
|
file_name=$(echo "${orig_file}" | sed -e 's/\.[^.]*$//') # without extension
|
||||||
|
#file_name="${1%.*}" # bash only
|
||||||
|
file_ext=$(echo "${orig_file}" | sed -e 's/.*\.//') # without extension
|
||||||
|
dest_file="${file_name}.x265.${file_ext}"
|
||||||
|
|
||||||
|
## If subtitles are available
|
||||||
|
if [ $(ffprobe -loglevel error -select_streams s -show_entries stream=index:stream_tags=language -of csv=p=0 "${orig_file}" | wc --lines) -eq "0" ]; then
|
||||||
|
printf "%b\n" "Try to convert original file (${orig_file}) with ffmpeg… without subtitles."
|
||||||
|
ffmpeg -loglevel quiet -stats -i "${orig_file}" -codec:v libx265 -preset fast -crf 28 -codec:a copy -map 0:v -map 0:a:0 "${dest_file}"
|
||||||
|
else
|
||||||
|
printf "%b\n" "Try to convert original file (${orig_file}) with ffmpeg… with subtitles."
|
||||||
|
ffmpeg -loglevel quiet -stats -i "${orig_file}" -codec:v libx265 -preset fast -crf 28 -codec:a copy -codec:s copy -map 0:v -map 0:a:0 -map 0:s "${dest_file}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "%b\n" "New x265 file is available ( ${RED}${dest_file}${RESET} )."
|
||||||
|
}
|
||||||
|
|
||||||
|
x265_convert "${1}"
|
Loading…
Reference in New Issue