Sim, usando ffmpeg
.
Abra um terminal e direcione-o para o diretório que contém os arquivos codificados H.265, supondo que você tenha ffmpeg
e as bibliotecas apropriadas instaladas e supondo que estejam no formato MKV, copie e cole o seguinte na janela do terminal.
INPUT=""
for i in *.mkv ; do
ffmpeg -i "$i" -bsf:v h264_mp4toannexb -sn -map 0:0 -map 0:1 -vcodec libx264 "$i.ts"
mv "$i.ts" "$i.mpg"
sleep 3
done
Lá você tem. Isso irá converter para h.264 em um contêiner MPG no mesmo diretório.
Explicação das opções de comando:
-
for i in *.mkv ; do ... done
Isso configura todos os arquivos .mkv em um diretório para serem incluídos no processo em lote. Isso pode ser alterado para acomodar a extensão do contêiner dos arquivos que você deseja processar.
-
ffmpeg -i "$i"
Executa o programa ffmpeg e solicita que os arquivos sejam processados.-
-bsf:v
ativa o filtro de fluxo de bits de vídeo a ser usado. -
h264_mp4toannexb
- É o filtro de fluxo de bits que está ativado.Converta um fluxo de bits H.264 a partir do modo de comprimento prefixado para iniciar o modo de código prefixado (conforme definido no Anexo B da especificação ITU-T H.264).
Isso é exigido por alguns formatos de streaming, normalmente o formato de fluxo de transporte MPEG-2 (
mpegts
) processando MKV h.264 (atualmente) requer isso, se não estiver incluído, você receberá um erro na janela do terminal instruindo você para usá-lo. -
-sn
interrompe o fluxo de fluxo de legendas (para aqueles que não querem legendas no vídeo) Isso é opcional e pode ser removido. -
-map 0:0 -map 0:1
Informa ao ffmpeg para processar apenas os dois primeiros fluxos do arquivo (0:0
é o fluxo de vídeo,0:1
é o primeiro fluxo de áudio do arquivo). Isso faz duas coisas, retira o excesso de fluxos de áudio, geralmente o primeiro fluxo de áudio é inglês, mas nem sempre. Outros fluxos, como legendas incorporadas, são removidos reduzindo o tamanho do arquivo. Esta também é uma string opcional. Você pode usarffprobe
para visualizar os fluxos disponíveis no arquivo.-map
é opcional e pode ser descartado do comando. -
-vcodec libx264
Isso diz ao ffmpeg para codificar a saída para H.264 -
"$i.ts"
Salva a saída para o formato .ts, isso é útil para não sobrescrever seus arquivos de origem.
-
-
mv "$i.ts" "$i.mpg"
Converte a extensão do arquivo em MPG no mesmo diretório. Isso pode ser configurado para enviá-lo para qualquer diretório que você goste. -
sleep 3
- permite que o processo descanse, dando tempo ao ffmpeg para enfileirar o próximo arquivo