No momento, tenho um arquivo em lote para remover todos os metadados e, em seguida, aplicar meus metadados preferidos e necessários, ele remove todos e torna o nome do título o nome do arquivo.
Mas eu quero manter os metadados do idioma das faixas de áudio.
mkdir output
for %%a in (*.mp4) do ffmpeg -i "%%a" -map 0:v -map 0:a? -metadata:s:a:0 language=jpn -metadata:s:a:1 language=eng -c copy -map_metadata -1 -metadata title="%%~na" "output\%%~a"
Isto é para este arquivo:
Eu adoraria descobrir como automatizar a cópia de todos os metadados de fluxo de áudio presentes e aplicá-los ao novo bastão, porque a partir de agora tenho que definir os idiomas manualmente e isso não é divertido para grandes lotes de arquivos.
Eu tentei isso:
mkdir output
for %%a in (*.mp4) do ffmpeg -i "%%a" -map 0:v -map 0:a? -map_metadata:s:a 0:s:a -c copy -map_metadata -1 -metadata title="%%~na" "output\%%~a"
pause
Mas isso faz com que ambos os fluxos de áudio sejam definidos como japoneses.
Em vez de ser corretamente o fluxo de áudio, o número 1 é japonês e o segundo é inglês.
A ordem das opções é importante. Quando há várias instâncias da mesma opção (com ou sem os mesmos especificadores), os da esquerda são aplicados primeiro.
ffmpeg -i "%%a" -map 0:v -map 0:a? -map_metadata:g -1 -c copy -metadata title="%%~na" "output\%%~a"