ixpict.com

small artificial life

Стримминг с карты видеозахвата Blackmagic Decklink

Наиболее дешевый способ для настройки лайв-стримминга точка-точка с SDI сигнала это компьютер под управлением Linux + VLC + карта видеозахвата Decklink.

После того как вы соберете железную часть убедитесь что на вход Decklink подается изображение в формате 720p/1080p (обычно проверяется специальным дата-видео монитором).

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

Во-вторых, нам потребуется SDK, чтобы собрать VLC c модулем decklink (проверить наличие этого модуля можно запустив vlc -l | grep decklink). Скачиваем sdk и распаковываем скажем в папку /home/user/decklink.

Конфигурируем, собираем и устанавливаем (эстеты могут использовать checkinstall вместо make install):

1
./configure '--enable-xvideo' '--enable-sdl' '--enable-avcodec' '--enable-avformat' '--enable-swscale' '--enable-mad' '--enable-a52' '--enable-libmpeg2' '--enable-dvdnav' '--enable-faad' '--enable-vorbis' '--enable-ogg' '--enable-theora' '--enable-mkv' '--enable-flac' '--enable-caca' '--enable-alsa' '--enable-qt4' '--enable-ncurses' '--enable-realrtsp' '--enable-twolame' '--enable-real' '--enable-x264' '--with-decklink-sdk=/home/user/decklink_sdk/Linux/include' --prefix=/usr/ && make && make install

После успешной установки, проверяем наличие модуля decklink (vlc -l | grep decklink). Если модуль есть - можно поднять простейший стримминг, например так:

1
vlc -vvv -I dummy decklink:// --decklink-aspect-ratio=16:9 --decklink-mode=hp50 --decklink-video-connection=sdi --decklink-audio-connection=embedded --decklink-audio-channels=2 --rt-priority --swscale-mode=0 --live-caching=3000  --sout-mux-caching=1500 --no-sout-transcode-hurry-up --sout-deinterlace-mode=linear  --sout '#transcode{vcodec=h264,vb=2000,fps=50,scale=0,acodec=mpga,ab=96}:standard{access=http,mux=ts,dst=127.0.0.1:8080}'  2>&1 | tee /var/log/vlc-encoding.log

Или отправить поток в wowza для дальнейшей раздачи:

1
vlc -vvv -I dummy decklink:// --decklink-aspect-ratio=16:9 --decklink-mode=hp50 --decklink-video-connection=sdi --decklink-audio-connection=embedded --decklink-audio-channels=2 --rt-priority --swscale-mode=0 --live-caching=3000  --sout-mux-caching=1500 --no-sout-transcode-hurry-up --sout-deinterlace-mode=linear --sout "transcode{venc=x264{keyint=60,profile=baseline,level=3.0,nocabac},vcodec=x264,vb=150,scale=0.5,acodec=mp4a,ab=96,channels=2,samplerate=48000}:rtp{dst=127.0.0.1,port=10000,mux=ts}"