![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как продолжить запись MP3 файла без потери качества при использовании BASSenc и LAMEDelphi , Мультимедиа , Запись звука
Приложение, записывающее аудио с микрофона и использующее BASSenc для кодирования записи в MP3 с помощью LAME, может продолжать сессию записи при перезапуске. Однако, как правильно продолжить поток записи/кодирования? Текущий подход заключается в открытии старого файла с помощью BASS_StreamCreateFile, запуске записи и кодировщика, а затем чтении всего файла с помощью BASS_ChannelGetData и BASS_Encode_Write для «переноса» предыдущих данных. Но этот шаг может занимать больше времени по мере увеличения записи, и он, возможно, является с потерями, поскольку загружается сжатый MP3 и перекодируется, теряя еще больше информации. Можно ли просто сказать BASSenc/LAME использовать существующий файл и добавлять в него данные напрямую? Или уже используется правильный подход? Подтвержденный ответ: К сожалению, нельзя напрямую добавлять новые, несжатые данные в сжатый поток без предварительного декомпрессирования. Таким образом, текущий подход кажется разумным. Размер действительно может стать проблемой в зависимости от максимальной запланированной длины записей. Однако на современных настольных машинах обработка несжатых и сжатых потоков до 1 ГБ, как правило, не вызывает серьезных задержек. Чтобы оптимизировать процесс, не загружайте данные старой сессии перед записью новых данных, а вместо этого читайте их перед сохранением новой сессии на диск. Таким образом, запись можно начать немедленно, не выделяя все больше и больше ОЗУ для процесса каждый раз. «Правильный» и «неправильный» становятся очевидными по результатам. Лучший метод всегда тот, который дает наилучшие результаты с наименьшими усилиями. Многократное перекодирование, по моему мнению, не должно влиять на качество, если вы не использовали сжатый кодек. Если вам нужен исходный код в поддержку этого, дайте знать. Пример кода на Object Pascal (Delphi):
В этом примере кода старые данные из старого файла записываются в новый файл, а затем старый файл закрывается. После этого можно начать новую запись в новый файл. Как продолжать запись MP3 файла без потери качества при использовании BASSenc и LAME. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Запись звука ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |