Если компакт-диск поврежден (например, если его вставить в проигрыватель компакт-дисков, он будет воспроизводиться с запинками и т. д.), то как будут звучать поврежденные данные, если вы скопируете его на свой компьютер и создадите MP3?
Будет ли это просто "пустой" звук в середине трека? Или вы услышите искаженный звук/статические помехи и т. д.?
Для ясности этот вопрос относится к чтению аудио с CD и кодированию в MP3, а не к чтению CD с данными, на котором есть MP3.
решение1
Хорошее программное обеспечение для риппинга CD, например, cdparanoia
делает все возможное для исправления плохих считываний CD и многократно проходит по поврежденной части; иногда в течение нескольких минут, пока данные не будут восстановлены. Это возможно, поскольку CD содержат контрольные суммы для исправления ошибок и должны сразу обнаруживать неправильное считывание.
Благодаря этой стратегии программное обеспечение для копирования компакт-дисков имеет гораздо больше шансов восстановить правильные данные, чем типичное устройство воспроизведения компакт-дисков, предназначенное для воспроизведения в реальном времени.
В редких случаях, когда часть данных (в вашем примере это аудио) остается нечитаемой, риппер обычно просто пропускает этот сегмент. Так, в случае с закодированным файлом MP3 он пропускает плохой раздел (который может быть либо интерполирован, либо пропущен на слух в результирующем аудиофайле).
решение2
Формат файла MP3 состоит из кадров. Каждый кадр начинается с одиннадцати битов "1", а также пары байтов метаданных, контролирующих битрейт и определяющих некоторые другие атрибуты. Каждый кадр независим, он был разработан таким образом для поддержки потоковой передачи.
Кадры могут иметь CRC - проверку на ошибки. Это необязательно.
Операционная система, скорее всего, повторит попытку чтения, если обнаружит плохие сектора на CD (аппаратное обеспечение CD имеет собственный механизм проверки ошибок, прежде чем MP3-кодер вообще что-либо увидит). Если предположить, что декодер не работает с буфером, декодер не получит новые данные во время этого процесса и должен будет остановиться. Если операционная система не может прочитать данные, она может сообщить об ошибке операционной системе, которая в конечном итоге будет сообщена процессу, в котором размещен MP3-кодер. Что именно здесь происходит, зависит от программного обеспечения.
Если данные с компакт-диска считываются неправильно и все равно попадают на декодер, может произойти несколько вещей (на ПК этого, скорее всего, не произойдет, но в автомобильной стереосистеме или другом устройстве, отличном от ПК, это может произойти):
Декодер MP3 ищет эти одиннадцать единичных битов, чтобы найти начало кадра. Если он их не находит, то, скорее всего, прекратит декодирование до следующего кадра.
Если данные заголовка неверны, кадр может воспроизводиться с неправильным битрейтом, поскольку байт, указывающий битрейт, может быть неверным.
Если бит заголовка CRC установлен, а CRC не совпадает, декодер, скорее всего, выбросит кадр и не воспроизведет его. Большинство файлов MP3 не имеют установленного бита CRC.
Если полезная нагрузка (данные после заголовка) неверны, декодер MP3 попытается их воспроизвести.
Работа декодера заключается в том, чтобы взять сжатые данные и сгенерировать несжатые данные для передачи на "верхний" уровень. Этот верхний уровень фактически использует несжатые данные для управления аудиоустройством. Я рискну предположить, что большинство настроек кодеров/аудиодрайверов имеют буфер - с настраиваемым размером - где декодер MP3 может накапливать некоторые данные для аудиодрайвера и разрешать повторные попытки чтения.
Итак, в любом случае, если декодер остановился из-за того, что не получает данные, верхний уровень, фактически управляющий звуком, может выполнить любое из следующих действий:
- Верхний уровень выводит тишину. Вы услышите прерывание звука.
- Декодер прекращает заполнять аудиобуфер данными, но верхний уровень продолжает воспроизводить то, что там есть. Аудиобуферы обычно "кольцевые", что означает, что они не обнуляются, а постоянно перезаписываются новыми данными. Вы услышите пропуск, который является частью предыдущего воспроизведения звука.
- Верхний уровень умён и пытается интерполировать то, что "должно" быть там. Я не думаю, что это очень распространено.
Если декодер выводит неверные данные, вы услышите статические помехи или щелчки в звуке.
решение3
В лучшем случае рипперу удается извлечь достаточно данных, чтобы трек воспроизводился нормально. Во втором лучшем случае он сдается и не создает звуковую дорожку, потому что не может. В худшем случае вы получаете аудиофайл, который звучит так же, как при попытке воспроизвести трек на обычном CD-плеере или даже хуже (паузы, повторы, заикания, всплески и т. д.).
Мой опыт работы с рипперами на основе cdparanoia в основном был благоприятным, но я сталкивался со всеми тремя сценариями.
решение4
У меня никогда не было помех. Не то чтобы "искаженных" - но они могут проигрывать одни и те же полсекунды несколько раз. Обычно это происходит прямо перед тем, как они пропускают несколько минут, чтобы повторить цикл, или пропускают вперед и звучат так, будто вы удерживаете кнопку FF на мгновение. Любые "пробелы" - это, вероятно, воспроизведение начала трека, поскольку они пропускают или снова зацикливаются.