ffmpeg дает разные результаты при использовании в приложении - PullRequest
0 голосов
/ 05 мая 2020

Это меня сбивает с толку. Я использую ffmpeg для преобразования m4a в wav аудио. Когда я использую его с fluent-ffmpeg, выводимая mime будет audio/wave, а когда я использую терминал, я получаю audio/wav. Для точно таких же команд. Приложение, которое я пытаюсь воспроизвести в этих файлах, отклоняет мой файл audio/wave.

Использование узла (приводит к аудио / волне):

const ffmpegPath = require('@ffmpeg-installer/ffmpeg')
const ffmpeg = require('fluent-ffmpeg');
ffmpeg()
.setFfmpegPath(ffmpegPath)
.input('source.m4a')
.outputOptions(['-ac 1','-ar 16000'])
.save('out.wav')

Использование терминала (приводит к аудио / wav ):

/same/path/to/static-ffmpeg-as-in-node-program/ffmpeg -i source.m4a -ac 1 -ar 16000 out.wav

У меня обе их кодировки: PCM S16 LE (s16l), 16 бит / сэмпл, моно и 16 кГц аудиофайлы с дискретизацией. Я пробовал добавлять другие флаги и получил одинаковые результаты для обоих сценариев ios: -vn -acodec pcm_s16le -ar 16000 -ac 1 -f wav. Просто это не работает. И я понятия не имею, почему.

Я также пробовал не использовать fluent-ffmpeg, а использовать spawn и получил тот же файл audio/wave.

Любое понимание?

...