Substituição em lote de .m4v por uma faixa de áudio diferente

Substituição em lote de .m4v por uma faixa de áudio diferente

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

informação relacionada