Tanto quanto eu sei isso não pode ser feito a partir da linha de comando ou programa em lotes no Windows. Isso ocorre porque você não pode controlar a partir da linha de comando que núcleo é atribuído a um determinado trabalho. Você só pode fazer isso quando o aplicativo já estiver em execução . A maneira "certa" de usar núcleos diferentes é pelo aplicativo ou programa que faz o trabalho (intensivo do processador). Aplicativos usam multithreading para usar diferentes núcleos ao mesmo tempo. Como o multithreading torna o código mais complexo, nem todos os aplicativos implementam o multithreading.
Para codificação de áudio / vídeo, o multithreading realmente vale a pena. Em seu cenário, a maneira "certa" de acelerar é usar todos os núcleos para cada arquivo usando multithreading em vez de usar vários threads / núcleos para instâncias do programa, codificando arquivos diferentes .
A solução adequada é usar um codificador que faça uso de todos os núcleos para cada arquivo que ele codifica . Por exemplo, o Libav ou o Handbrake seriam ferramentas adequadas por esta.