Use um loop for. Este exemplo é para bash
e usa a manipulação da variável bash
, mas ela pode ser adaptada para outros shells do tipo unix / linux.
Nota : presume-se que você esteja no diretório dos arquivos e que os arquivos de vídeo e áudio estejam presentes com o mesmo nome, diferindo apenas por extensão ( .m4v - video, .m4a - audio).
for v in *.m4v; do ffmpeg -i "${v}" -i "${v//.m4v/.m4a}" -acodec copy -vcodec copy "${v//.m4v/.mp4}"; done
Explicação
for v in *.m4v
Execute as seguintes ações em todos os arquivos terminados em '.m4v'. v
é um nome de variável que será atribuído a cada arquivo de vídeo no diretório atual, um por vez, por bash
. bash
converterá automaticamente o *.m4v
em uma lista de arquivos .m4v no diretório atual e os alimentará no loop for. Você não precisa inserir nomes de arquivos manualmente.
Variável v
contém um nome de arquivo de vídeo diferente em cada iteração de loop, por exemplo, "video_file_1.m4v"
, depois "video_file_2.m4v"
etc. O ${v//pattern/replacement}
informa bash
para localizar ocorrências de pattern
e substituí-las por %código%. Por exemplo, replacement
converterá o nome do arquivo ${v//.m4v/.mp4}
para "video_file_1.m4v"
.