Я обрабатываю множество аудиофайлов в связке разных форматов, и я хотел бы объединить их формат и конфигурацию с помощью FFMPEG и SoX.
Для моего процесса есть два шага:
ffmpeg -i input.wav -c:a pcm_s16le output.wav
sox input.wav output.flac channels 2 rate 44.1k
В идеале я хотел бы объединить эти две команды, чтобы избежать создания ненужного файла.
Тем не менее, у меня много проблем, и на самом деле формат работает нормально.
SoX жалуется, что ему нужно явно знать формат входящего звука, что я даже не знаю во время выполнения. Я знаю формат аудио PCM, но я не уверен в количестве каналов и частоте дискретизации входящего звука.
Есть ли способ объединить эти две команды или лучше, чтобы использовать только один инструмент для работы?
Причина, по которой я использовал два инструмента, а не просто пытаюсь сделать это с одним:
Я думаю, sox
должен искать свой вход, если он определяет формат ввода из заголовка файла, и это несовместимо с каналом.
Я думаю, ffmpeg может делать все, что угодно, хотя я не совсем уверен. Я незнаком с ним, и документация ясна как грязь.
ffmpeg -i "$input" -compression_level 9 -ac 2 -ab 44100 output.flac
В качестве альтернативы, mencoder должен иметь возможность выполнять аналогичную работу.
mencoder "$input" -oac lavc -lavcopts=acodec=flac:abitrate=44.1:o=compression_level=9 -af channels=2 output.flac