Linux — Video streaming и iPad 2
Получив в своё распоряжение сей девайс и чуток поигравшись с ним захотелось чего-то бо́льшего нежели просто игры - например просмотр любого видео из домашней коллекции без необходимости синхронизироваться с iTunes. Программ такого рода оказалось довольно много - на любой вкус и цвет но, они все работают только под Windows или Mac OS X, печально - мне нужно чтобы работало в Ubuntu. Поискав ещё, удалось найти варианты с заявленной поддержкой Linux, «из коробки» они конечно же не запускаются.
В итоге получился интересный мануальчик (для (K)Ubuntu) по установке серверной части для программ Air Video и VLC Streamer.
Свой выбор я остановил на платной версии Air Video (есть и бесплатная но показывает в списке к просмотру не все файлы на компьютере) т.к. у неё более дружественный интерфейс и имеется одна немаловажная особенность - перемотка видео на любую точку (как ролики на YouTube), в VLC же видео можно смотреть и перематывать только в пределах обработанного участка. Собственно вот небольшая табличка сравнения:
| Air Video | VLC Streamer | |
|---|---|---|
| Цена | $2.99 | $1.99 |
| Ограничения бесплатной версии | Есть - отображает не все файлы на ПК | Нет, поддерживается за счёт рекламы iAd |
| Кодирование на лету | Есть, вывод сразу в поток | Есть, вывод в файл + передача в поток |
| Перемотка | Есть | Есть, только в пределах перекодированного фрагмента |
| Очередь перекодирования | Есть, вывод в отдельный файл m4v (можно скопировать или перенести в iTunes) | Есть, только подготовка для дальнейшего просмотра. |
| Предпросмотр кодируемого видео | Есть | Нет |
| Изменение масштаба, усиление звука | Есть | Нет |
| Управление субтитрами | Есть | Вкл/Выкл |
| Выбор звуковой дорожки | Есть | Нет |
| GUI | Нет | Есть |
Установка общих компонентов
Для работы обеих программ нужно следующее:
- mp4creator (входит в пакет mpeg4ip-server)
- x264 (соберём из git)
- ffmeg (нужна )
Для начала удалим то что уже может быть установлено:
И установим библиотеки для компиляции:
sudo apt-get install mpeg4ip-server build-essential git-core checkinstall yasm texi2html \
libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev faac \
libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \
libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev libopenjpeg-dev libxvidcore-dev
Установка x264
Скачаем исходники, скомпилируем их и установим:
git clone git://git.videolan.org/x264
cd x264
./configure --enable-pic
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
--fstrans=no --default
Установка FFmpeg
Качаем исходники, какую версию для Linux нужно скачать смотрим в . На данный момент актуальная версия сервера - Alpha6, для неё нужно скачать
wget "http://www.inmethod.com/air-video/download/ffmpeg-for-2.4.5-beta6.tar.bz2"
tar xjf ffmpeg-for-2.4.5-beta6.tar.bz2
cd ffmpeg
./configure.orig.fixed --enable-gpl --enable-nonfree --enable-postproc \
--enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libx264 \
--enable-libxvid --enable-x11grab --disable-shared --enable-static \
--disable-decoder=aac --enable-libvorbis --enable-libopenjpeg \
--enable-libtheora --enable-libfreetype --enable-version3
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-av" --backup=no \
--deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe
Если конфигурация прервётся с сообщением об отсутствующей библиотеке - просто доустановите её запустите кофигурацию повторно, во время тестов я устанавливал много различных/ненужных библиотек и не уверен что перечислил все необходимые.
Установка Air Video
Далее копируем сервера Air Video и :
sudo mkdir AirVideoServer && cd AirVideoServer
sudo wget "http://inmethod.com/air-video/download/linux/alpha6/AirVideoServerLinux.jar" -O AirVideoServerLinux.jar
sudo wget "http://inmethod.com/air-video/download/linux/alpha1/test.properties" -O test.properties
настройки по-умолчанию, измените их на свои значения:
path.mp4creator = /usr/local/bin/mp4creator
path.faac = /usr/local/bin/faac
password =
subtitles.encoding = windows-1250
subtitles.font = Verdana
folders = Movies:/Volumes/Data/Movies,Series:/Volumes/Data/Series
Добавляем сервер Air Video в автозагрузку с помощью , для этого создадим файл /etc/init/airvideo.conf со следующим содержимым:
stop on shutdown
respawn
exec sudo -H -n -u USERNAME /usr/bin/java -jar /opt/AirVideoServer/AirVideoServerLinux.jar /opt/AirVideoServer/test.properties
USERNAME - пользователь который имеет доступ к медиа-файлам.
Теперь им можно управлять:
sudo stop airvideo
Также airvideo можно добавить в Avahi/Bonjour сервис чтобы устройства сами его обнаруживали. О том как настраивать Avahi можно почитать , улучшенная версия - .
Просто добавьте следующую конфигурацию к настройкам (у меня они например в /etc/avahi/services/multi.service):
<type>_airvideoserver._tcp</type>
<port>45631</port>
</service>
Установка VLC Streamer
Для VLC Streamer необходимо наличие плеера VLC с модулем access_output_livehttp, модуль есть пока что только в исходных кодах но возможно скоро появится и в новой версии, так что если Ваш вывод похож, то скорее всего шаг со сборкой VLC можно пропустить:
VLC media player 1.2.0-git Twoflower (revision 18dc994)
access_output_livehttp HTTP Live streaming output
Установка VLC
Удалим текущую, есть есть:
Также нужно обновить x264 и ffmpeg - версия для Air Video тоже подходит (одним выстрелом двух зайцев).
Установим свежую версию VLC, т.к. флаги для конфигурации я решил позаимствовать из родной (ubuntu) версии, то и зависимости для сборки тоже можно взять из неё:
cd
git clone git://git.videolan.org/vlc.git --depth 1
cd git
bootstrap
./configure \
--config-cache \
--disable-maintainer-mode \
--disable-silent-rules \
--disable-update-check \
--enable-fast-install \
--prefix=/usr \
--docdir=/usr/share/doc/vlc-nox \
--sysconfdir=/etc \
--enable-faad \
--enable-flac \
--enable-fluidsynth \
--enable-freetype \
--enable-fribidi \
--enable-ggi \
--enable-gnutls \
--enable-jack \
--enable-kate \
--enable-libass \
--enable-libmpeg2 \
--enable-libproxy \
--enable-libxml2 \
--enable-lirc \
--enable-live555 \
--enable-mad \
--enable-mkv \
--enable-mod \
--enable-mozilla \
--enable-mpc \
--enable-mtp \
--enable-mux_ogg \
--enable-ncurses \
--enable-notify \
--enable-ogg \
--enable-pulse \
--enable-qt4 \
--enable-realrtsp \
--enable-schroedinger \
--enable-sdl \
--enable-shout \
--enable-skins2 \
--enable-smb \
--enable-speex \
--enable-svg \
--enable-taglib \
--enable-theora \
--enable-twolame \
--enable-upnp \
--enable-vcd \
--enable-vcdx \
--enable-vorbis \
--enable-x264 \
--enable-zvbi \
--with-mozilla-pkg=libxul \
--enable-a52 \
--enable-aa \
--enable-bonjour \
--enable-caca \
--enable-dca \
--enable-dirac \
--enable-dvb \
--enable-dvbpsi \
--enable-dvdnav \
--disable-dxva2 \
--disable-gnomevfs \
--disable-goom \
--disable-osso_screensaver \
--disable-portaudio \
--disable-projectm \
--disable-sqlite \
--disable-telx \
--enable-alsa \
--enable-atmo \
--enable-dc1394 \
--enable-dv \
--enable-libva \
--enable-pvr \
--enable-udev \
--enable-v4l2 \
--enable-svgalib
make
checkinstall --fstrans=no --install=yes --pkgname=vlc --pkgversion "1.2.0:$(date +%Y%m%d)-git" --default
Теперь можно скопировать последнюю рабочую версию для Linux из и запустить:
wget "http://download.hobbyistsoftware.com/Download/desktop?file=VLCStreamer/VLCStreamer_0.1.3.tar.gz" -O VLCStreamer_0.1.3.tar.gz
tar xzf VLCStreamer_0.1.3.tar.gz
./VLCStreamerClient
После чего запускаем клиента на iPad и радуемся 🙂



