Проблема с аудиофайлом 24 кГц: неподдерживаемый битрейт 64000

Я использую alexa аудио много тегов. Я знаю, что теперь аудиотеги поддерживают аудиофайлы 24 кГц, поэтому попытался преобразовать мои аудиофайлы из 16 кГц. Я использовал предоставленную команду в документах для этого:

ffmpeg -i <input-file> -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 <output-file.mp3>

Но когда я пытаюсь воспроизвести этот файл, я получаю сообщение об ошибке неверного ответа: Error: The audio is of an unsupported bitrate 64000. Изучив детали файла, я ясно вижу, что битрейт составляет 48 кбит/с, а частота дискретизации — 24 кГц. Я не вижу никакого значения, где было бы указано 64 или что-то близкое к этому.

Если я закодирую свой файл обратно в 16 кГц, он снова будет воспроизводиться нормально.

Кажется, с этой командой проблема, потому что если я кодирую свои файлы с помощью Audacity, они работают с частотой 24 кГц. Я все же предпочел бы использовать ffmpeg, потому что мне нужно кодировать много файлов.

Я спрашиваю не о формате файла, формат правильный. Мне нужны файлы с частотой дискретизации 24 кГц, и это вызывает проблемы. Я видел еще один вопрос о похожей проблеме, и другие обсуждали там частоту дискретизации, но никто не смог закодировать файл на 24 кГц с помощью ffmpeg.

Удалось ли кому-нибудь кодировать файлы до 24 кГц с помощью ffmpeg?


person R. Vait    schedule 26.11.2018    source источник
comment
Этот вопрос касается формата MPEG. Я спрашиваю о битрейте, это два разных вопроса, хотя я вижу, что некоторые пользователи обсуждали это там, но все же вопрос был о другом, и по битрейту не было ответа.   -  person R. Vait    schedule 26.11.2018
comment
Я не совсем уверен, почему вы хотите передискретизировать источник 16 кГц до 24 кГц. В любом случае, попробуйте добавить параметр вывода -abr 1. Для таких низких битрейтов рекомендуется использовать режим среднего битрейта LAME в соответствии с hydrogenaud.io. . Если это не сработает, попробуйте использовать сам lame.   -  person llogan    schedule 26.11.2018
comment
Спасибо, lame сработало. Как я не додумалась попробовать.   -  person R. Vait    schedule 27.11.2018
comment
@R.Vait Также попробуйте параметр вывода -write_xing 0 в ffmpeg, хотя я сомневаюсь, что в этом случае он поможет.   -  person llogan    schedule 27.11.2018
comment
Спасибо. Когда я добавил эту команду, она начала работать и с ffmpeg. Не могли бы вы кратко объяснить, что он делает?   -  person R. Vait    schedule 28.11.2018
comment
Если вы используете @LordNeckbeard, я буду получать уведомления о ваших ответах (это не обязательно во всех ситуациях, поэтому обратитесь к справочному центру для получения дополнительной информации) . Я не уверен в технических причинах такого поведения: у меня никогда не было мотивации изучать это, но есть некоторые связанные отчеты об ошибках: #2697, #3599, #4214.   -  person llogan    schedule 28.11.2018


Ответы (1)


Спасибо LordNeckbeard за предложение использовать lame вместо ffmpeg. Итак, чтобы закодировать файлы и получить их в формате 24 кГц, вы можете использовать эту команду:

lame -b48 --resample 24 input.mp3 output.mp3

Alexa не жалуется на файлы, закодированные таким образом. Также, как упоминалось в вопросе, вы все равно можете использовать смелость, но я предпочитаю использовать CLI, потому что мне всегда приходится кодировать пакет файлов.

Тем не менее, если кто-нибудь знает, как это сделать с ffmpeg, пожалуйста, поделитесь им.

РЕДАКТИРОВАТЬ:

Еще раз спасибо LordNeckbeard за предложение добавить флаг -write_xing 0 в команду ffmpeg, теперь это тоже работает.

Команда для получения аудиофайлов 24 кГц с ffmpeg:

ffmpeg -i input.mp3 -codec:a libmp3lame -ac 2 -ar 24000 -b:a 48k -write_xing 0 output.mp3
person R. Vait    schedule 27.11.2018