eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2012-01-15 12:16 am

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

Наконец-то приобрел-таки веб-камеру и гарнитуру. За пару-тройку часов мучений настроил. Сегодня даже поболтал с другом. Мой логин: 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 -


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org