Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Теперь я в скайпе!

Наконец-то приобрел-таки веб-камеру и гарнитуру. За пару-тройку часов мучений настроил. Сегодня даже поболтал с другом. Мой логин: edward.emelianoff.

Итак, происходило все следующим образом.

Для начала я решил настроить гарнитуру. Т.к. на компьютере у меня два звуковых устройства: встроенная недозвуковушка от интеля и креативовская звуковая карта (используемая, естественно, как основная — к ней подключена система 5.1), я решил использовать отключенную за ненадобностью встроенную для гарнитуры. Когда-то давно я уже забавлялся с выводом на два звуковых устройства, вот и начал вспоминать.

Включил в биосе недозвуковушку и загрузился. Опаньки: отвалилась основная карточка. Но это и понятно: ведь у меня не было указаний для alsa работать с двумя картами. Я заглянул в файл /etc/modprobe.d/sound.conf, там было закомментировано все, кроме указания звуковушке использовать 512МБ кэша оперативки (чтобы большие звуковые банки влезали). Раскомментирование ничего не дало: rmmod snd_hda_intel с последующими вызовами modprobe snd_emu10k1 "к жизни" мою карточку не вернули. В файлике я заметил, что вместо snd_hda_intel стоит другой интеловский модуль. Подправил, загрузил, указывая параметры, вручную — заработало!

Итак, теперь у меня в /etc/modprobe.d/sound.conf следующее:


alias char-major-116 snd
options snd cards_limit=2 slots=,snd-hda-intel
# LHB6.mOmgEN0gox0:SBLive! 5.1 Digital Model SB0220
alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-emu10k1
# W60f.x8s5HMdIibD:82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller
alias snd-card-1 snd-hda-intel
alias sound-slot-1 snd-hda-intel
options snd-emu10k1 enable=1 index=0 max_buffer_size=512
options snd-hda-intel enable=1 index=1
Первая опция, по идее, уже не нужна, но я на всякий случай и ее добавил (ассоциация устройств с major number == 116 со звуковыми картами).
Вторая опция говорит, что звуковых карт две (на самом деле их у меня три: есть еще и встроенная в видеокарту, а т.к. монитор у меня подключен по HDMI, я могу, в принципе, и ее задействовать, но пока не вижу в этом необходимости), и что интелевская будет второй.
Далее идет ассоциация нулевой звуковой карты с модулем snd-emu10k1, а первой - с модулем snd-hda-intel.
Ну и напоследок - опции выделения буфера в 512МБ для Creative SB Live, а также («на всякий пожарный») — назначение им номеров.

После перезагрузки все работало. Значит, звуковая карта настроена правильно.

Далее я представлял себе тяжелый процесс борьбы с веб-камерой Logitech webcam C100. Однако, как только я ее подключил, появилось устройство /dev/video0, а mplayer tv:// отобразил на экране мою довольную морду.

Следующим шагом были мытарства со скайпом, т.к. эта скотина для арча (в репозиториях) была лишь 32-битной, а у меня система 64-битная. Пришлось сносить gcc, glibc и прочие нужные библиотеки и устанавливать вместо них соответствующие multilib-пакеты. Скайп установился yaourt'ом без проблем. Я зарегистрировался и проверил через обратную связь скайпа работу микрофона. Все ОК.

Ну, а вечером состоялся почти двухчасовой сеанс болтовни с другом.

P.S. Помимо этого я еще потратил довольно-таки приличное количество времени, чтобы научиться писать видео+звук при помощи ffmpeg и/или mencoder. Первые попытки дали следующее: у mencoder'а была хорошая картинка, но жуткое рассогласование со звуком; ffmpeg же давал ужасное качество видео, но более-менее прилично согласованный звук (правда, с небольшим запаздыванием). mencoder'ом я писал так:


mencoder tv:// -tv driver=v4l2:device=/dev/video0:width=640:height=480:fps=5:alsa:forceaudio:amode=0:adevice=hw.1,0 -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -lameopts vbr=3:br=32:mode=3 -af volnorm -o file.avi
Потом я посмотрел, как у меня пишется экранное видео (когда-то сделал я такой alias):

alias recdesktop='ffmpeg -f x11grab -s 1920x1080 -r 8 -i :0.0 -sameq '
Ага: нужная опция (возможно) — -sameq, добавив ее я действительно получил желаемое. Правда, осталось небольшое рассогласование начала звука и начала видеозаписи (видимо, звук начинал писаться сразу, а камера еще некоторое время инициализировалась), поэтому я добавил еще и временной сдвиг. В результате получилось следующее:

ffmpeg -itsoffset -0.4 -f video4linux2 -s 640x480 -i /dev/video0 -sameq -f alsa -i hw:1,0 -f avi file.avi
(задержку я пока точно не установил: поэкспериментирую позже) и соответствующим же образом я оформил еще один alias.

Так что, теперь можно еще и повыкаблучиваться: например, подключить к недозвуковушке выход комбика и поиграть, а потом посмотреть со стороны, как получается (может, тогда пойму, почему жена в ужасе убегает, когда я достаю электрогитару ☺).

Да, можно еще и так сделать: сразу писать в файл и смотреть его. Для этого нужно либо запустить mplayer с этим файлом в соседней консоли, либо отправить первый процесс в фон, сразу же запуская mplayer, либо дублируя вывод при помощи tee:


ffmpeg -itsoffset -0.4 -f video4linux2 -s 640x480 -i /dev/video0 -sameq -f alsa -i hw:1,0 -f avi - | tee file.avi | mplayer -
Tags: велосипедостроение
Subscribe

  • Хеши строковых команд для МК

    Долго я к этому шел, но, похоже, пора уже: однобуквенные команды сложно запоминать (особенно если команд толпа, и большая часть с этими буквами…

  • OBS studio

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

  • M$ teams…

    Начал с сегодняшнего дня студентам ЮФУ удаленно лекции читать. У них все завязано на различные корпорации зла. И базовая работа - через teams. ОК,…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments