Lote substituindo .m4v por uma faixa de áudio diferente

1

Eu tenho uma lista de arquivos .m4v. Eu tenho uma lista de arquivos .mp3 (que são o mesmo nome de arquivo que os arquivos correspondentes .m4v).

Os arquivos .m4v contêm áudio de qualidade inferior. Os arquivos .mp3 contêm um áudio de melhor qualidade.

Eu gostaria de substituir o áudio nos arquivos .m4v, com o áudio correspondente nos arquivos .mp3.

Eu não gostaria de fazer isso individualmente para mais de 10.000 arquivos, seja no mkvmerge ou no 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}"

pause

Assim 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"

pause

Até agora, não foram bem sucedidos (só encontrei erros). Não sei como consertar isso.

Alguém poderia indicar como posso processar em lote o que eu quero acima? Existe uma maneira melhor de fazer isso do que estou aqui?

Muito obrigado.

    
por 151SoBad 21.06.2017 / 04:47

1 resposta

0

Use

FOR %%a IN ("*.m4v") DO ffmpeg -i "%%a" -i "%%~na.mp3" -map 0:v -map 1:a -c copy "newpath\%%~na.mp4"

pause
    
por 21.06.2017 / 06:50