diff --git a/ffmpeg.md b/ffmpeg.md new file mode 100644 index 0000000..046eb2b --- /dev/null +++ b/ffmpeg.md @@ -0,0 +1,22 @@ +Oneliners (e afins) uteis de FFMPEG pra lembrar + +* 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; +``` \ No newline at end of file