Batch de arquivos: extrair .rar e converter MKV em lote
Batch de arquivos: extrair .rar e converter MKV em lote
Quando você tem uma pasta cheia de arquivos pra processar, um loop bash resolve sem precisar abrir nenhuma GUI.
Extrair todos os .rar de um diretório
1
for f in *.rar; do unrar e "$f"; done
O unrar e extrai os arquivos sem preservar a estrutura de diretórios (tudo vai para a pasta atual). Se quiser preservar a estrutura de pastas, use unrar x em vez de unrar e.
Se os .rar são partes de um único arquivo (.part1.rar, .part2.rar, etc.), basta rodar no primeiro:
1
unrar e arquivo.part1.rar
O unrar encontra as outras partes automaticamente.
Converter todos os .mkv para .mp4
1
for f in *.mkv; do ffmpeg -hide_banner -i "$f" -c:v libx264 -c:a copy "$f.mp4"; done
-hide_banner→ suprime o cabeçalho longo do ffmpeg-c:v libx264→ re-encoda o vídeo em H.264 (compatível com praticamente tudo)-c:a copy→ copia o áudio sem re-encodar (mais rápido e sem perda)"$f.mp4"→ o nome de saída ficavideo.mkv.mp4— se quiservideo.mp4, use"${f%.mkv}.mp4"
Versão com o nome limpo:
1
for f in *.mkv; do ffmpeg -hide_banner -i "$f" -c:v libx264 -c:a copy "${f%.mkv}.mp4"; done
Considerações de performance
A conversão de vídeo é CPU-intensiva. Se tiver uma GPU NVIDIA e o ffmpeg compilado com suporte a NVENC, dá pra acelerar muito:
1
ffmpeg -i "$f" -c:v h264_nvenc -c:a copy "${f%.mkv}.mp4"
Para Intel com Quick Sync:
1
ffmpeg -i "$f" -c:v h264_qsv -c:a copy "${f%.mkv}.mp4"
Mas para uso geral, o libx264 com -preset fast já é um bom equilíbrio:
1
ffmpeg -i "$f" -c:v libx264 -preset fast -c:a copy "${f%.mkv}.mp4"
Esta postagem está licenciada sob
CC BY 4.0
pelo autor.