
Eu tenho uma lista de arquivos .m4v. Eu tenho uma lista de arquivos .mp3 (que têm o mesmo nome de arquivo docorrespondentearquivos .m4v).
Os arquivos .m4v contêm áudio de qualidade inferior. Os arquivos .mp3 contêm áudio de melhor qualidade.
Gostaria de substituir o áudio dos arquivos .m4v pelocorrespondenteáudio nos arquivos .mp3.
Eu não gostaria de fazer isso individualmente para mais de 10.000 arquivos, em mkvmerge ou ffmpeg.
Eu tentei um script em lote com algo assim, mas sem sucesso:
FOR %%a IN ("*.m4v") DO ffmpeg -i "${%%a}" -i "${%%a//.m4v/.mp3}" -vcodec copy -acodec copy "${ %%a//.m4v/.mp4}"
pausa
Bem como (como eu queria a saída em um diretório diferente):
FOR %%a IN ("*.m4v") DO ffmpeg -i "%%a" -i "%%a" -vcodec copy -acodec copy "outputDirFoo123\%%~na.mp4"
pausa
Até agora, eles não tiveram sucesso (apenas encontraram erros). Não tenho certeza de como consertar isso.
Alguém poderia indicar como posso processar em lote o que desejo acima? Existe uma maneira melhor de fazer isso do que eu aqui?
Muito obrigado.
Responder1
Usar
FOR %%a IN ("*.m4v") DO ffmpeg -i "%%a" -i "%%~na.mp3" -map 0:v -map 1:a -c copy "newpath\%%~na.mp4"
pause