Você pode usar ffmpeg
para converter formatos de vídeo. Se ainda não estiver instalado, use-o usando:
sudo apt install ffmpeg
Eu tentei com sucesso o seguinte comando para converter um vídeo de exemplo em um formato DivX 5.0 baseado em AVI:
ffmpeg -i sample.mp4 -f avi -vtag DX50 sample.divx
Primeiro, você especifica o arquivo de vídeo de entrada como, por exemplo, -i Videos/sample.mts
, então dizemos que queremos que o formato de saída seja AVI com uma tag DivX 5.0 usando -f avi -vtag: DX50
. O último argumento é o arquivo de saída para gerar, aqui Videos/sample.divx
.
Eu recomendo que você tente primeiro um pequeno vídeo e verifique se tudo funcionou como esperado e se o formato é reconhecido pelo seu player, bem como se a qualidade do vídeo e o tamanho do arquivo estão bem. Você pode ajustar o último com um argumento adicional -q:v N
, onde N
é um número e números menores significam maior qualidade e tamanho de arquivo. Bons valores estão provavelmente no intervalo 2-8, talvez tente 5:
ffmpeg -i sample.mp4 -f avi -vtag DX50 -q:v 5 sample.divx
Depois que o teste for bem-sucedido e o formato e a qualidade estiverem corretos, você poderá converter todos os seus arquivos de vídeo .mts em lote em um diretório de origem específico de forma recursiva com um script Bash como este:
#!/bin/bash
# Change the directories and quality level (lower=better) below accordingly:
inputfolder="/path/to/somewhere"
outputfolder="/path/to/elsewhere"
videoquality=5
shopt -s globstar nocaseglob nocasematch # enable ** and globs case-insensitivity
for inputfile in "$inputfolder"/**/*.mts ; do
outputfile="$outputfolder/$(basename "${inputfile%.mts}").divx"
ffmpeg -i "$inputfile" -f avi -vtag DX50 -q:v "$videoquality" "$outputfile"
done
Ou se você quiser os arquivos de saída no mesmo diretório da entrada, veja uma versão mais curta:
#!/bin/bash
# Change the directory and quality level (lower=better) below accordingly:
folder="/path/to/somewhere"
videoquality=5
shopt -s globstar nocaseglob nocasematch # enable ** and globs case-insensitivity
for inputfile in "$folder"/**/*.mts ; do
ffmpeg -i "$inputfile" -f avi -vtag DX50 -q:v "$videoquality" "${inputfile%.mts}.divx"
done