Exemplo único
Usando ffmpeg
para recodificar o (s) fluxo (s) de vídeo e copiar o fluxo todo o resto:
ffmpeg -i original.mkv -map 0 -c copy -c:v libx264 output.mkv
-
Veja um dos vários guias de codificação para informações sobre qualquer formato que você queira.
-
Todos os fluxos da primeira entrada, rotulados
0
e a única entrada nesse caso, são mapeados com-map 0
. Caso contrário, a seleção de fluxo padrão só mapeará um fluxo por tipo. Por exemplo, se sua entrada tiver vários fluxos de áudio, usar-map 0
mapeará todos eles em vez de apenas um.
BASH " loop "
Para fazer o mesmo acima para todos os arquivos MKV no diretório atual e enviá-los para um diretório chamado outputdir
:
mkdir outputdir
for i in *.mkv; do ffmpeg -i "$i" -map 0 -c copy -c:v libx264 outputdir/"${i%.mkv}.mkv"; done
- O estranho
"${i%.mkv}.mkv"
está usando expansão de parâmetro . No seu caso, você poderia simplesmente usar"$i"
, mas é útil se os formatos do contêiner de entrada forem diferentes dos formatos do contêiner de saída. Por exemplo, sem a expansão de parâmetro, e se suas entradas são MKV e as saídas são MP4, a saída acabaria sendo nomeada algo comooutput.mkv.mp4
.