Online video hd

Смотреть мамки видео

Официальный сайт rosregistr 24/7/365

Смотреть видео бесплатно

27.10.10 15:27 Uzix

Я рекомендую.Виртуальная веб-камера и микрофон.

Многим знаком софт для Windows, позволяющий накладывать в реальном времени эффекты на изображение с веб камеры, воспроизводить видео "как-бы" с нее и делать другие непотребности. Под Linux так же есть подобные решения - та же WebCam Studio, имеющая в своем арсенале множество нужных и ненужных функций.
Внимание! Под катом много мутного текста без картинок! :-)

В принципе, в видеоролике по ссылке все достаточно хорошо и красиво расписано, поэтому я хотел бы остановится на другом уровне - а именно ручная настройка веб-камеры, транслирующей видеофайл. Можно бы было повозится и с эффектами, но мне неизвестен ни один видеоредактор, позволяющий выполнять онлайн-обработку поступающего через stdin видео и выводить его на stdout. Сразу предупрежу - это _не_ законченное решение - в частности есть проблемы с синхронизацией видео и звука (обсуждение возможных решений проблемы приветствуется в комментариях ;))- это скорее обхор технической части :) Так что лучше не пытать метод копипаста - для этого как нельзя лучше подойдет вышеупомянутая WebCam Studio.

Что нам понадобится:
1) виртуальная веб-камера - тут есть два варианта - avld и vloopback. vloopback мне заставить работать не удалось, зато скомпилировался он без проблем. avld же потребовал патчей, но зато заработал практически сразу, поэтому ориентироваться я буду на него.
2) виртуальный микрофон - поставляется в составе alsa
Исходные данные - Debian Sid и ядро 2.6.31-zen3.
Итак, во-первых настроим микрофон т.к. это значительно проще. По странному стечению обстоятельств драйвер aloop не включают в ядро вместе с остальной алсой (по крайней мере я не нашел опции, включающей его). Поэтому придется ставить алсу из исходников. В Debian и основанных на нем дистрибутивах это не должно доставить много хлопот (тем более если компилятор и сопутствующие утилиты уже установлены). Для ускорения и упрощения процесса поставим module assistant, после чего даем такую команду:
m-a a-i alsa-source

После этого он сам скачает сорцы, скомпилирует их и установит - останется лишь перезагрузиться. После чего можно подгрузить драйвер нашего виртуального микрофона (можно прописать его в файл /etc/modules - будет загружаться сам):
modprobe snd-aloop

Теперь надо написать конфиг с его участием (на самом деле этого можно не делать если не собираетесь использовать флеш - по идее все должно подхватиться и так). Т.к. у алсы невероятная забывчивость и, прочитав конфиг из /etc/asound.conf, она забывает про устройства микширования dmix (необходимые чтобы несколько программ могли безболезненно выводить звук одновременно), то придется писать полный конфиг.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

## Software mixer
# rebinding default channels
ctl.mixer0 {
    type hw
    card 0
}
pcm.!default {
    type plug
    #slave.pcm "dmixer"
    slave {
        pcm {
                type asym
                playback.pcm "dmixer"
                capture.pcm "loopin"
        }
    }
}
pcm.dsp0 {
    type plug
    #slave.pcm "dmixer"
    slave {
        pcm {
                type asym
                playback.pcm "dmixer"
                capture.pcm "hw:0,0"
        }
    }
}
# dmixer device
ctl.dmixer {
    type hw
    card 0
}
pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_perm 0666
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}


## Loopback device
# output device
pcm.loopout {
    type dmix
    ipc_key 328211
    slave.pcm "hw:Loopback,0,0"
}

# input device
pcm.loopin {
    type dsnoop
    ipc_key 686592
    slave.pcm "hw:Loopback,1,0"
}
# duplex plug device
pcm.loop {
    type plug
    slave {
        pcm {
                type asym
                playback.pcm "loopout"
                capture.pcm "loopin"
        }
    }
}


Обратите внимание, что директива capture.pcm "loopin" в секции pcm.!default заставит все программы по умолчанию брать звук с виртуального микрофона! Но к сожалению для флеша других вариантов нет - он видит только один микрофон - default.
Теперь можно опробовать наш микрофон - для этого запустим mplayer, указа в качестве устройства вывод звука loop
mplayer begin.mp3 -ao alsa:device=loop

Чтобы услышать, что играет сейчас, сделаем запись с микрофона:
arecord -Dloop |aplay

Если все сделано правильно - услышите звук, отчасти похожий на оригинальный :-) Чтобы услышать звук в более хорошем качестве, запускаем с параметрами:
arecord -Dloop -fcd |aplay

и услышим звук в CD-качестве. В принципе наш микрофон готов к труду и обороне :-)


С веб камерой придется чуть повозиться. Дело в том, что официальная версия не собирается на новых ядрах. Уже пропатченую версию для ядра 2.6.31 можно скачать тут (патчи для новых ядер можно поискать на убунтуфоруме). Распаковываем и компилируем с помощью команды make и ставим - make install. Теперь можно загрузить наш модуль - modprobe avld. Он принимает параметры width, height и fps - ширина, высота и частота кадров соответственно. Увеличивать значения по умолчанию не рекомендую - даже при низких параметрах по умолчанию вместе с флешем сильно загружается процессор.
Итак, как воспользоваться виртуальной камерой? На самом деле это не так просто - сделать cat /myvideo.avi > /dev/video0 не получится :) Поэтому я написал небольшой скрипт, принимающий в качестве параметра имя видеофайла и выводящий видеопоток на устройство /dev/video0, а звук - на alsa-устройство loop. При этом должен быть установлен mplayer и один из кодеров - mencoder или ffmpeg. Однако использованный в скрипте подход не дает возможности хоть как-то синхронизировать звук и видео - т.к. ни для ffmpeg, ни для mencoder я не нашел возможность задать устройство вывода звука отдельно от видео (рад буду услышать предложения по этому поводу в комментариях).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh

while [ -n "$1" ]; do
        case "$1" in
                -f)
                        DECODER=ffmpeg
                        ;;
                -m)
                        DECODER=mencoder
                        ;;
                -mt)
                        DECODER=mencoder-mt
                        ;;
                -vo)
                        shift
                        VO=$1
                        ;;
                *)
                        FILE=$1
                        ;;
        esac
        shift
done
test -z "$VO" && VO=/dev/video0
test -z "$DECODER" && DECODER=ffmpeg

if [ ! -r "$FILE" ]; then echo "Can't read file $FILE"; exit 1; fi
if [ ! -w "$VO" ]; then echo "Can't open $VO for write"; exit 2; fi
if [ ! -x "$(which $DECODER)" ]; then echo "Please, install decoder: $DECODER"; exit 3; fi

( mplayer -ao alsa:device=loop -vo null "$FILE" ; echo "$0: W: Audio stopped..." ) &
pid_ao=$!

trap "kill $pid_ao" TERM

case "$DECODER" in
        ffmpeg)
                ffmpeg -an -i "$FILE" -f rawvideo -s 320x240 -pix_fmt bgr24 - | dd obs=$((320 * 240 * 3)) of="$VO"
                ;;
        mencoder|mencoder-mt)
                $DECODER "$FILE" -nosound -ovc raw -vf scale=320:240,format=bgr24 -of rawvideo -ofps 25 -o "$VO"
                ;;
esac
echo "$0: W: Video stopped..."
wait $pid_ao


Отмечу, что проигрыванием файлов дело не ограничивается - можно, например, пустить трансляцию рабочего стола или пучтить трансляцию с реальной камеры с наложением эффектов (если найдется утилита, обрабатывающая видео realtime) ну и т.д.
После всего этого во всяких чатрулетах, трансляциях майл-ру и прочих флешесодержащих местах надо выбрать вебкамеру Dummy и микрофон Linux default (других и не будет) и пускать вместо изображения суровой реальности то, что в голову взбредет :-)

PS. За поломанные ядра, упавшие линуксы, и разбитые мониторы я ответственности не несу :-)



mealsforall 27.10.10 22:51 # +0
Непонятно из статьи, почему всё-таки такой велосипед, а не WebCam Studio. У меня она замечательно скомпилялась на убунте без бубна, и там всё кристально понятно в интерфейсе. И плагины у неё офигенные -- говорить с собеседником сквозь пламя, например, или крутить ролики маньякам на chatroulette получается проще простого.
Uzix 27.10.10 23:21 # +1
WebCam Studio - это черный ящик. Нажимаем ярлык - получаем результат. Как - неизвестно (скрыто от пользователя). Подход Windows.
Описанное в статье - составление своей системы из маленьких кирпичей - полностью противоположный, но как мне кажется традиционный для никсов подход.
mealsforall 30.10.10 08:22 # +0
Ну, вообще-то оно всё опенсорсное с продуманной системой плагинов и API. Можно при желании написать свой плагин, например. Иными словами, WebCam Studio не более черный ящик, чем команда awk. :)
blackraven 28.10.10 10:54 # +1
              -vo)
                        shift
                        VO=$1
                        continue
                        ;;

Чей-то мне кажется здесь ошибка...
Или continue не надо, или shift еще раз надо позвать перед continue.
Или я чего-то не вижу?
Uzix 29.10.10 12:43 # +0
Списибо, поправил
Uzix 29.10.10 12:45 # +0
Не туда ответил. Ох уж этот GPRS...

Лучшие блоги (все 146)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 2930 из 219 городов)
Топ пользователей Топ блогов

Новенькие: s4f, malyshirma, Foxcool, dimz, narical
welinux.ru

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн