3

Я использую mencoder для захвата звука с устройства захвата видео Encore ENLTV-FM3 . Недавно я заметил, что, поскольку неделю назад, когда аппарат был принудительно перезапущен из-за отключения электроэнергии, все записи слегка передаются, они воспроизводятся медленнее, чем должны.

Я сузил проблему до следующей командной строки:

$ time mencoder -really-quiet -tv driver=v4l2:device=/dev/video1:chanlist=us-cable:audiorate=32000:alsa:adevice=hw.1:input=0:amode=1:normid=11 -endpos 00:10:00 -ovc copy -oac pcm -of rawaudio -o test-32000.wav  tv://69

real    9m54.886s
user    0m5.536s
sys    0m1.740s

$ ls -l test-32000.wav 
-rw-r--r--@ 1 martin  martin  76800000 Mar 15 17:20 test-32000.wav

Каким-то образом mencode удалось собрать ровно 10 минут необработанного звука за 9 м 55 с. Это физически невозможно, если только аналого-цифровые преобразователи устройства захвата не "разогнаны". Я не могу придумать другого объяснения, кроме аппаратного сбоя. Это может быть? Может быть, что-то сгорело во время отключения электричества, и теперь внутренние часы устройства захвата сошли с ума?

После перезагрузки машины я также заметил, что dmesg такими записями:

CE: hpet increased min_delta_ns to XXX nsec

Что, кажется, указывает на то, что высокоточный таймер событий компьютера как-то не синхронизирован. Это связано с аудио проблемой? Может ли быть так, что частота дискретизации аудиоконвертера связана с HPET? Я полностью потерян здесь. Кто-нибудь сталкивался с чем-то подобным?

2 ответа2

2

Вы предоставляете минимальную информацию. Это не очень полезно. Вы должны предоставить:

  1. Версия ядра
  2. Есть ли настройки? что такое .mplayer/config
  3. что такое min_delta_ns?
  4. что выводит cat /proc /timer_list

Вот мои предположения, основанные на этой ограниченной информации:

Один из приведенных ниже или комбинация:

  1. Обновления были применены на вашем компьютере
  2. mplayer использует RTC вместо hpet.
  3. min_delta_ns больше 3.000.000 нс

Я думаю, что mplayer с использованием RTC является наиболее вероятным случаем. Попробуйте добавить ваши настройки во время кодирования и воспроизведения:

-rtc-device /dev/hpet

Попробуйте форсировать как во время кодирования, так и при воспроизведении.

Если это по-прежнему не решает проблему, попробуйте использовать

-rtc-device /dev/rtc

но это не совсем соответствует моему взгляду на вашу проблему.

1

Вы установили audiorate = 32000, вы уверены, что это работает правильно? Карта фактически переключается на частоту дискретизации 32 кГц? Выходной файл 32 кГц? Что произойдет, если вы попробуете audiorate = 33075 (что является следующим логическим шагом между 22050 и 44100).

Возможно, это проблема микропрограммы или что-то странное в оборудовании, которое не инициализировалось правильно, но исправное выключение + выключение питания, а затем перезапуск должны исправить это.

В противном случае вам, вероятно, придется удалить -really-quiet и посмотреть, есть ли какие-либо полезные предупреждения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .