Conversão de vídeo escalonada ( batch ) em diferentes formatos
Dica publicada em Shell Script / Miscelânea
Conversão de vídeo escalonada ( batch ) em diferentes formatos
Dia deste estava com vários arquivos de vídeo no formato .MOV (um formato de vídeo gerado pelo iOS que se tem uma
compactação é a pior que eu já vi :p ).
Daí que resolvi converter estes enormes arquivos em algo mais compacto como, por exemplo xvid, mp4 etc.
Utilizei uma pequena rotina em shell script que me facilitou o trabalho de evitar fazer a conversão um a um, permitindo que todos os arquivos .MOV de um diretório fossem automaticamente convertidos.
Comando (a ser digitado no terminal):
for f in *.MOV; do ffmpeg -i "$f" -s 960x540 -qscale 0 -vcodec msmpeg4v2 -acodec libmp3lame "${f%.avi}.avi"; done
Lógica de funcionamento:
"Debulhando" o comando:
* Inicia o loop se condição for verdadeira
for f in *.MOV
Onde:
* Processa a tarefa
do ffmpeg -i "$f" -s 960x540 -qscale 0 -vcodec msmpeg4v2 -acodec libmp3lame "${f%.avi}.avi"
Sendo:
* Volta ao início
done
Daí que resolvi converter estes enormes arquivos em algo mais compacto como, por exemplo xvid, mp4 etc.
Utilizei uma pequena rotina em shell script que me facilitou o trabalho de evitar fazer a conversão um a um, permitindo que todos os arquivos .MOV de um diretório fossem automaticamente convertidos.
Comando (a ser digitado no terminal):
for f in *.MOV; do ffmpeg -i "$f" -s 960x540 -qscale 0 -vcodec msmpeg4v2 -acodec libmp3lame "${f%.avi}.avi"; done
Lógica de funcionamento:
- Execute enquanto a condição for verdadeira (inicia o loop se condição = verdadeiro)
- Processe a tarefa
- Volta ao início (fecha o loop e volta ao início)
"Debulhando" o comando:
* Inicia o loop se condição for verdadeira
for f in *.MOV
Onde:
- Verifica cada arquivo da pasta;
- Se POSSUIR a extensão MOV, grava o nome do arquivo na variável f e prossegue para a etapa seguinte;
- Se NÃO POSSUIR a extensão MOV, ignora o arquivo e passa para a mesma verificação no arquivo seguinte.
* Processa a tarefa
do ffmpeg -i "$f" -s 960x540 -qscale 0 -vcodec msmpeg4v2 -acodec libmp3lame "${f%.avi}.avi"
Sendo:
- do ffmpeg --> comando de conversão;
- -i "$f" --> Substitui esta parte pelo nome do arquivo;
- -s 960x540 -qscale 0 -vcodec msmpeg4v2 -acodec libmp3lame --> Configurações de conversão do ffmpeg. Estas configurações podem variar dependendo do formato de video desejado, codec utlizado etc;
- "${f%.avi}.avi" --> Cria o nome do arquivo convertido aproveitando o nome original guardado na variável f e incluindo a extensão avi (que pode ser outra dependendo do tipo de formato de arquivo gerado - mp4, ogv etc).
* Volta ao início
done