См здесь для больше контекста на мой вопрос: https://gamedev.stackexchange.com/questions/136817/how-to-get-sdl2-to-play-32bit-wav-filesКак конвертировать 24bit WAV файл в 32-битном, сохраняя формат аудио PCM = 1 (линейное квантование)
У меня есть файл WAV 24bit, который имеет формат PCM аудио 1 приведен здесь: http://soundfile.sapp.org/doc/WaveFormat/ к AudioFormat
При преобразовании моего файла WAV (24bit) до 16 бит с помощью: ffmpeg -i input.wav -ar 48000 -ac 2 -acodec pcm_s16le output.wav
он сохраняет аудио форматов PCM = 0x001.
При использовании ffmpeg -i input.wav -ar 48000 -ac 2 -acodec pcm_s32le output.wav
Аудиоформат PCM = 0xfffe.
SDL2 (как показано в родительском вопрос) позволяет только файлы играть с Linear PCM Audio Format (1), и я не уверен, как с помощью sox
или ffmpeg
как конвертировать мои 24-битные файлы WAV вверх в 32-х (как SDL2 только играет 32bit и 16bit).
Является ли то, что я прошу, возможно? Было бы очень полезно получить дополнительную информацию о файлах WAV и о том, почему ffmpeg изменяет номер заголовка.
Я попробую вручную отредактировать шестнадцатеричный файл и посмотреть, позволяет ли это играть обычным способом. Я замечаю некоторые сообщения об ошибках в ffmpeg относительно некоторых подобных проблем с расширением формата. Особенно с этой линией (> 2 канала = false, sample_rate> 48k = false, av_get_bits_per_sample> 16 = true (возможно, мне придется изучить эту функцию/макрос)), поэтому я буду играть с ней и получить назад. Благодарим вас за это. – jake
Использование Vim для редактирования шестнадцатеричного байта 20 и 21 заголовка WAV с 'fe ff' (0xfffe) до' 01 00' (0x0001) позволяет SDL2 (родительский пост) отлично воспроизводить подписанный 32-битный малоконечный звук. Не знаете, как сообщить об этом как об ошибке, но, возможно, есть причина для «расширяемого формата волны», хотя я никогда не слышал об этом. – jake
Я считаю, что это SDL2. Исходная спецификация WAVE допускала только 8 и 16 бит. Более новая спецификация позволяет увеличить глубину и скорость выборки. Отчет об ошибке должен быть подан в проект SDL. – Mulvya