Демоксер FFmpeg concat меняет битрейт

641
Ashley Guinan

Я использую демультиплексор concat для объединения некоторых файлов WAV.

ffmpeg -safe 0 concat -i files.txt -c copy output.wav 

files.txt хранит файлы как:

файл 'C: \ Users \ folderpath \ input1.wav'

файл 'C: \ Users \ folderpath \ input2.wav'

так далее

Как я могу добавить -b в эту команду, чтобы установить битрейт? Прямо сейчас без него файлы ускоряются - входные файлы имеют 256 Кбит / с, а вывод - 705 Кбит / с. Я пробовал несколько -b и -ab в разных частях команды, и не могу заставить это работать.

2
Каковы свойства двух файлов? `ffprobe file`. Битрейт для WAV-файлов - это простая фиксированная функция = `bitdepth x частота дискретизации x no. каналов Gyan 6 лет назад 0
Входные свойства: Метаданные: кодер: Lavf57.73.100 Длительность: 00: 00: 01.15, битрейт: 256 кбит / с Поток # 0: 0: Аудио: pcm_s16le ([1] [0] [0] [0] / 0x0001 ), 16000 Гц, 1 канал, s16, 256 кбит / с. Выходные свойства: Метаданные: кодировщик: Lavf58.2.103 Длительность: 00: 00: 13,82, битрейт: 705 кбит / с Поток # 0: 0: Аудио: pcm_s16le ([ 1] [0] [0] [0] / 0x0001), 44100 Гц, 1 канал, s16, 705 кбит / с Ashley Guinan 6 лет назад 0
Входные свойства одинаковы для обоих файлов? Gyan 6 лет назад 0
Нет, это была проблема. Спасибо! У меня было несколько файлов с 256k, которые были реальным звуком, и я пытался заполнить их пустым звуком, используя ffmpeg -y -f lavfi -i aevalsrc = 0: duration = 2 silence.wav aevalsrc по умолчанию 44100 Гц, я исправил его с помощью добавление частоты дискретизации: ffmpeg -y -f lavfi -i aevalsrc = 0: длительность = 2: sample_rate = 16000 -acodec pcm_s16le silence.wav Ashley Guinan 6 лет назад 0

1 ответ на вопрос

0
Ashley Guinan

Не все мои входные файлы были 256 КБ, некоторые были 705 КБ, поэтому демультиплексор concat использовал первый файл, который был 705 КБ.

Я исправил это, исправив мои входные файлы, созданные:

ffmpeg -f lavfi -i aevalsrc=0:duration=2:sample_rate=16000 silence.wav 

Ключом было добавление sample_rate в файл aevalsrc - эта часть была добавлена ​​после помощи Mulvya.

`concat demuxer использовал самый большой` -> он будет использовать свойства * first * input. Gyan 6 лет назад 1
Отредактировано, чтобы изменить это. Спасибо за помощь и исправление на ответ. Ashley Guinan 6 лет назад 0