Android - записанный аудио файл отличается по размеру при смене устройства
Я пытаюсь записать аудиофайл в Android, я устанавливаю битрейт выходного файла и частоту дискретизации, все работает правильно, но всякий раз, когда я записываю что-либо в другое устройство, размер файла сильно отличается.
Я провел несколько тестов с Z2 и Moto G, меняющими битрейт и частоту дискретизации, получая очень разные размеры файлов в одно и то же время записи. Я заметил, что файл больше всего зависит от скорости передачи данных, а не частоты дискретизации.
Проблема в том, что я ожидал бы, что файлы должны быть как можно меньше, но даже когда с Moto G я получаю файлы размером от 38 до 254 КБ, файлы с той же конфигурацией на Z2 имеют размер 437 - 653 КБ.
Я не знаю, что делать, чтобы получить файлы на Z2 (и любом другом устройстве) почти такого же размера, как Moto G, любая помощь будет принята с благодарностью.
Извините за мой английский, это не мой естественный язык.
PD: Используя MediaInfo, я понимаю, что единственная разница в файлах - "Общая скорость передачи". При установке битрейта на 16000, файл Moto G на MediaInfo показывает 19,4 кбит / с, а файл Z2 показывает 226 кбит / с, но оба показывают "битрейт" = 16,8 кбит / с.
1 ответ
Причину разных размеров на разных устройствах можно объяснить двумя факторами: разрешением звука (качеством микрофона) и типом битрейта, если у вас действительно хороший микрофон для захвата высоких звуковых частот, у вас будет более сложный звук для сжатия, но если вы у вас есть микрофон низкого качества, способный записывать звук, используя только средние частоты, в вашем аудио не будет деталей, и его будет проще сжать. Другим фактом является битрейт, VBR против CBR, если вы используете переменную битрейт и аудио для кодирования не имеет много деталей, это снизит битрейт, но если вдруг у вас, например, звучит тарелка, детализация звука выше, и для кодирования требуется более высокая скорость передачи битов, с другой стороны, если вы кодируете аудио с использованием постоянной скорости передачи битов, ваш выходной сигнал всегда будет одинаковым... скажем, что вы записываете 1 мин звука с использованием 128 Кбит / с (почти наверняка вам не нужно больше этого) у вас будет 60 с * 128 Кбит / с = 7680 Кбит... 7680 Кбит / с 8 Б = 960 КБ / мин.