6
ffmpeg
nunks edited this page 2026-03-13 11:36:57 -03:00
Oneliners (e afins) uteis de FFMPEG pra lembrar
- Splittar FLAC. Sei que nao eh ffmpeg mas vou acabar procurando auqi q eu to ligado
for i in *flac; do shnsplit -f "${i%.*}.cue" -o flac -t "%n - %p - %t" "$i"; done
- Converter SSA pra SRT
for f in *.ssa; do ffmpeg -i "$f" "${f%.ssa}.srt"; done
- Extrair legendas embarcadas no container de video (sem ocr, só funciona com formatos de texto)
EXT=mkv;
for F in *${EXT}; do
while read L FI SI LN SF; do
[[ -z $LN ]] && continue;
L=$(( L - 1 ));
FN=${F%.$EXT}.$LN.srt;
ffmpeg -i "$F" -map $FI:s:$L -c:s srt tmp.srt;
sed -e 's/<[^>]*>//g' -e 's/{[^}]*}//g' tmp.srt > "$FN";
rm tmp.srt;
read FI SI LN SF <<< '';
done < <(ffprobe "$F" 2>&1 | sed -nr '/Subtitle:/s/^.*Stream #([0-9]):([0-9])\(([a-z-]+)\).*Subtitle: ([a-z]+) .*$/\1 \2 \3 \4/p' | cat -n);
done;
- Exportar legenda PGS
- o OCR tem que ser feito em outro canto. O Gemini sugere usar o "Subtitle Edit", eu preferi o site https://pgs-to-srt.com/ (https://github.com/wydengyre/pgs-to-srt)
FILE=input_file.mkv;
ffprobe "$FILE" 2>&1 | sed -nr 's/^ +Stream.*([0-9]):([0-9])\(([a-z]{3})\):.*Subtitle.*/\1 \2 \3/p' |
while read INPUT SUB LANG; do
SUBFILE="${FILE%.*}".$LANG.sup;
ffmpeg -i "$FILE" -map "$INPUT:$SUB" -c copy "$SUBFILE" </dev/null;
done