mkvtomp4
Parece que mkvtomp4
é o que você quer?
Uses mpeg4ip or GPAC's MP4Box, mkvtoolnix and ffmpeg to convert troublesome mkv files to mp4. The conversion does not re-encode the video and only re-encodes the audio if it doesn't use AAC codec (one can override this behaviour using --audio-codec).
Você pode baixar versões do Windows e do Linux na página do Google Code. Você precisará de um software adicional.
Verifique os sites em busca de downloads para Windows ou Linux. No OS X, você precisa apenas de brew install mkvtoolnix mp4box
se tiver Homebrew .
Isso não copiará suas legendas. Você precisará de um passo adicional.
FFmpeg batch
Se o mkvtomp4 não funcionar para você, um simples arquivo batch FFmpeg também pode ser usado. Para o Windows, você pode fazer o download das compilações do Zeranoe . No Linux, verifique o FFmpeg a partir de fontes de pacotes. No OS X, use brew install ffmpeg
.
Então, basta ligar:
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
Isso criará um contêiner MP4 válido sem recodificação. Faça o loop sobre os arquivos, conforme necessário e disponível pelo sistema operacional. Este lote não copiará, no entanto, as legendas.
No * nix, você poderia fazer o seguinte. Basta criar um arquivo convert.sh
:
#!/bin/bash
find /path/to/input/folder -iname '*.mkv' -print0 | while read -d '' -r file; do
ffmpeg -i "$file" -c:v copy -c:a copy ${file%%.mkv}.mp4
done
Substitua o caminho para sua pasta de vídeos aqui. Torne-o executável com chmod +x convert.sh
e, em seguida, execute-o com ./convert.sh
.
No Windows, você provavelmente precisará de dois arquivos em lote ( plugue sem vergonha aqui ), sendo um deles startconvert.bat
:
for %%i IN (*.mkv) DO (convert-to-mp4.bat "%%i")
pause
E aquele que realiza a conversão:
IF EXIST "%1.mp4" GOTO exit
@echo Conversion for %1 started on %DATE% %TIME%
ffmpeg -i %1 -c:v copy -c:a copy %1.mp4
:exit
@echo %1.mp4 already exists
Salve ambos na pasta de vídeos. Basta executar startconvert.bat
da pasta da qual você deseja iniciar a conversão.
Legendas
Se você quiser adicionar as legendas, talvez seja necessário um procedimento manual, se o seguinte não funcionar para você:
ffmpeg -i input.mkv -c:a copy -c:v copy -map 0 output.mp4
Para extrair legendas, use:
mkvextract tracks input.mkv 3:subtitles.srt
Isto presume que o seu arquivo realmente contenha as legendas na ID 3 da faixa e elas podem ser exportadas para o formato SRT. Para verificar se um arquivo realmente contém legendas na faixa 3, use mkvmerge -i input.mkv
.
Em seguida, use o MP4Box para adicionar novamente as legendas ao arquivo MP4.
mp4box -add input.mp4 -add subtitles.srt -new output.mp4