У нас есть машинка

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
cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
stepping        : 7
cpu MHz         : 3292.599
cache size      : 6144 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes xsave avx lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips        : 6585.19
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
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
cat /proc/meminfo
MemTotal:        3972728 kB
MemFree:         3476552 kB
Buffers:           55384 kB
Cached:           159520 kB
SwapCached:            0 kB
Active:           221832 kB
Inactive:         138400 kB
Active(anon):     145340 kB
Inactive(anon):      128 kB
Active(file):      76492 kB
Inactive(file):   138272 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       7756792 kB
SwapFree:        7756792 kB
Dirty:                12 kB
Writeback:             0 kB
AnonPages:        145176 kB
Mapped:            16812 kB
Shmem:               140 kB
Slab:              29016 kB
SReclaimable:      22156 kB
SUnreclaim:         6860 kB
KernelStack:        2632 kB
PageTables:         2408 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9743156 kB
Committed_AS:     435904 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      151336 kB
VmallocChunk:   34359584376 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8192 kB
DirectMap2M:     4102144 kB

с дебианом на борту

подключим репозитарий http://www.deb-multimedia.org/ и установим следующие пакеты

1
apt-get install zlib1g-dev libfaac0 libfaac-dev libmp3lame0 libmp3lame-dev libxvidcore4 libxvidcore4-dev libpopt-dev libbz2-dev libncurses5-dev libpcap0.8-dev cmake libreadline-dev subversion vim g++ yasm libssl-dev libjpeg-dev libtheora-dev build-essential git-core autoconf libtool libhal-dev libmad0-dev libpostproc-dev libgcrypt11-dev gettext liba52-0.7.4-dev libdvbpsi-dev lua5.1 liblua5.1-0-dev libfaad-dev libasound2-dev

подключим ещё один репозитарий http://backports-master.debian.org/Instructions/
и установим пакет

1
apt-get -t squeeze-backports install yasm

Для удобства создадим директорию и перейдём в неё

1
2
mkdir /usr/src/build
cd /usr/src/build

скачиваем туда пакет DeckLink_SDK он нам нужен для сращивания с vlc
и Blackmagic_Desktop_Video_Linux в этом пакете содержится модуль ядра.

1
2
wget http://www.blackmagicdesign.com/media/3914076/Blackmagic_DeckLink_SDK_9.5.zip
wget http://www.blackmagicdesign.com/media/4631288/Blackmagic_Desktop_Video_Linux_9.5.3.tar.gz

распаковываем и переносим директорию с заголовками в /usr/include/blacmagic

1
2
 unzip Blackmagic_DeckLink_SDK_9.5.zip
cp Blackmagic\ DeckLink\ SDK\ 9.5/Linux/include/ /usr/include/blackmagic -r

установим модуль ядра

1
2
tar xvfz Blackmagic_Desktop_Video_Linux_9.5.3.tar.gz
dpkg -i desktopvideo-9.5.3-amd64.deb

далее пойдёт ругань что не установлены пакеты, просто доставляем их.
далее подгружаем модуль и смотрим dmesg

1
2
3
modprobe blackmagic
dmesg
[350955.900826] blackmagic: Successfully loaded device "blackmagic0" [pci@0000:01:00.0]

Это сообщение говорит что вы пуська и всё сделали верно!
далее скачиваем необходимые сырцы для сборки vlc

1
2
3
git clone git://git.videolan.org/x264.git
git clone git://source.ffmpeg.org/ffmpeg.git
git clone git://git.videolan.org/vlc.git

приступаем к сборке и установке всего хозяйства

1
cd x264/ && ./configure --enable-shared && make && make install && cd ../ffmpeg/ && ./configure --enable-s --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-pthreads --enable-encoder=mpeg4 --enable-encoder=aac --enable-encoder=ac3 --enable-pic && make && make install && cd ../vlc/ && ./bootstrap && ./configure  --enable-faad --enable-merge-ffmpeg --disable-xcb --disable-qt --disable-skins2 --enable-dvbpsi --with-decklink-sdk=/usr/include/blackmagic/ --with-pic && make && make install

поскольку я не люблю указывать префиксы при конфигурировании все либы встали в /usr/local/lib но система об этом не знает надо ей об этом сообщить

1
2
echo '/usr/local' >> /etc/ld.so.conf
ldconfig

всё можем захватывать изображение с карты blackmagic и кодировать

1
/usr/local/bin/vlc -I dummy decklink:// --decklink-video-connection=hdmi --decklink-card-index=0 --decklink-mode=Hi50 --decklink-aspect-ratio=16:9 --sout '#transcode{venc=x264{me=hex,aq-mode=0,cabac=no,mbtree=no,mixed-refs=no,subme=1,level=,keyint=300,crf=25,ref=1,b-adapt=0,lookahead=0,bpyramid=none,bframes=3,weightp=0,merange=24,partitions=none,qpmin=26,qpmax=40,trellis=0,vbv-bufsize=2500,vbv-maxrate=5000,threads=0},vcodec=h264,vb=2500,fps=autodetected,width=720,acodec=mpga,ab=64,sfilter=marq:logo,audio-sync}:std{access=udp{ttl=10},mux=ts,dst=224.4.5.1:9961}' -vvv

дополнительные опции захвата мы можем получить при помощи справки

1
2
3
4
5
6
7
8
vlc -H|grep decklink
      --decklink-card-index <целое [-2147483648 .. 2147483647]>
      --decklink-mode <строка>
      --decklink-audio-connection {embedded,aesebu,analog}
      --decklink-audio-rate <целое [-2147483648 .. 2147483647]>
      --decklink-audio-channels <целое [-2147483648 .. 2147483647]>
      --decklink-video-connection {sdi,hdmi,opticalsdi,component,composite,svideo}
      --decklink-aspect-ratio <строка>

я думаю эти параметры не нуждаються в разьяснениях.
на этом всё!
Вещайте и будте любимы!