Why does this FFMPEG command when called from Powershell generate white noise?
Resolução de problemas Mais
- Tente testar com um arquivo de um PowerShell elevado executado como
administrador e depois canalizar para o outro comando.
- Verifique este arquivo quando for executado no PowerShell para confirmar que a execução com o PowerShell contra apenas um arquivo se tiver o mesmo efeito.
Pode ser a outra lógica ou como ela funciona, fazendo com que ela seja impressa dessa forma, então você pode precisar dividir a lógica, testar, etc. para determinar em que nível há um problema com a lógica.
Comece com
Eu começaria executando o seguinte:
-
ffmpeg -i $path -f caf - | fdkaac -p5 -b64 - -o $outfolder\$outname.m4a
mas use arquivos estáticos, caminhos, etc., em vez de ter as variáveis dinâmicas de PS, preencha essas partes dos comandos para ver se os resultados estão bem assim. Se ainda não o fez, pode ser uma maneira fácil de confirmar que é a lógica dinâmica que apenas causa o problema.
Editar por OP
Após a resolução de problemas com caminhos estáticos, verifica-se que o Powershell não canalizou a saída do FFMPEG como eu esperava.
Observando novos processos no Gerenciador de Tarefas, parecia que o Powershell estava executando cada programa sequencialmente enquanto executava o mesmo comando em um prompt de comando que mostrava fdkaac.exe e ffmpeg.exe ambos foram executados simultaneamente.
Enquanto pesquisava o comportamento, encontrei esta resposta que sugere que o redirecionamento funciona de maneira diferente no Powershell, então alterei & $command
to cmd /c $command
para permitir que o CMD manipule a execução do comando em vez do Powershell que resolveu o problema.