1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
alias subs=subs 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 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 } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 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" |
1 2 |
mappings=<span class="pl-s"><span class="pl-pds">`</span>ffprobe -loglevel error -select_streams s -show_entries stream=index:stream_tags=language -of csv=p=0 <span class="pl-pds">"</span>Movie-1080p.mkv<span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-c1">echo</span> <span class="pl-smi">${mappings}</span></span> |
It should show something like 3,eng
.
Then, substitute ${idx}
& ${lang}
with mapping values, e.g.:
1 |
ffmpeg -nostdin -hide_banner -loglevel quiet -i <span class="pl-s"><span class="pl-pds">"</span>Movie-1080p.mkv<span class="pl-pds">"</span></span> -map 0:<span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${idx}</span><span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span>Movie-1080p_<span class="pl-smi">${lang}</span>_<span class="pl-smi">${idx}</span>.srt<span class="pl-pds">"</span></span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/env bash 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 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}" |