
Para adicionar legendas a um único arquivo eu uso o seguinte comando:
mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt
Onde:
movie01.mkv
é o nome de um arquivo de vídeo
movie01.srt
é o nome de um arquivo de legenda (é sempre igual ao arquivo de vídeo)
g:\movie01.mkv
é o arquivo de saída
Como executo o comando mencionado acima para cada arquivo em um diretório?
Responder1
Este comando percorrerá todos os arquivos mkv e executará o comando para cada um deles (sugiro colocá-lo em um .bat
arquivo). O comando deve ser executado no diretório que contém seus arquivos mkv.
for %%A in (*.mkv) do if /i "%%~XA"==".mkv" (
c:\<path to mkvmerge>\mkvmerge.exe -o g:\"%%A" --default-track 0 --language 0:pl "%%A" "%%~nA.srt"
)
%%A
é igual ao nome exato do arquivo.
%%~nA
é igual ao nome do arquivo sem tipo de arquivo.
Responder2
Desde que todos os arquivos tenham a extensão .mkv, que tal isto:
for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt
%%video
é a variável que identifica cada arquivo na pasta atual com a extensão especificada. Depois de do
executar o comando em cada arquivo, uso a mesma variável para chamar o arquivo srt.