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;
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