Gentoo Way Linux, Gentoo, Kubuntu, Ubuntu, Debian … компилируем всё!

12Май/11Off

Linux — Video streaming и iPad 2

Получив в своё распоряжение сей девайс и чуток поигравшись с ним захотелось чего-то бо́льшего нежели просто игры - например просмотр любого видео из домашней коллекции без необходимости синхронизироваться с iTunes. Программ такого рода оказалось довольно много - на любой вкус и цвет но, они все работают только под Windows или Mac OS X, печально - мне нужно чтобы работало в Ubuntu. Поискав ещё, удалось найти варианты с заявленной поддержкой Linux, «из коробки» они конечно же не запускаются.

В итоге получился интересный мануальчик (для (K)Ubuntu) по установке серверной части для программ Air Video и VLC Streamer.
Свой выбор я остановил на платной версии Air Video (есть и бесплатная но показывает в списке к просмотру не все файлы на компьютере) т.к. у неё более дружественный интерфейс и имеется одна немаловажная особенность - перемотка видео на любую точку (как ролики на YouTube), в VLC же видео можно смотреть и перематывать только в пределах обработанного участка. Собственно вот небольшая табличка сравнения:

Air VideoVLC Streamer
Цена$2.99$1.99
Ограничения бесплатной версииЕсть - отображает не все файлы на ПКНет, поддерживается за счёт рекламы iAd
Кодирование на летуЕсть, вывод сразу в потокЕсть, вывод в файл + передача в поток
ПеремоткаЕстьЕсть, только в пределах перекодированного фрагмента
Очередь перекодированияЕсть, вывод в отдельный файл m4v (можно скопировать или перенести в iTunes)Есть, только подготовка для дальнейшего просмотра.
Предпросмотр кодируемого видеоЕстьНет
Изменение масштаба, усиление звукаЕстьНет
Управление субтитрамиЕстьВкл/Выкл
Выбор звуковой дорожкиЕстьНет
GUIНетЕсть

Air Video

Air Video


VLC Streamer

VLC Streamer

Установка общих компонентов

Для работы обеих программ нужно следующее:

Для начала удалим то что уже может быть установлено:

sudo apt-get remove ffmpeg x264 libx264-dev

И установим библиотеки для компиляции:

sudo apt-get update
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

Скачаем исходники, скомпилируем их и установим:

cd
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, для неё нужно скачать соответствующую версию ffmpeg

cd
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 и настройки:

cd /opt
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.ffmpeg = /usr/local/bin/ffmpeg
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 в автозагрузку с помощью UpStart, для этого создадим файл /etc/init/airvideo.conf со следующим содержимым:

start on runlevel [2345]
stop on shutdown
respawn

exec sudo -H -n -u USERNAME /usr/bin/java -jar /opt/AirVideoServer/AirVideoServerLinux.jar /opt/AirVideoServer/test.properties

USERNAME - пользователь который имеет доступ к медиа-файлам.
Теперь им можно управлять:

sudo start airvideo
sudo stop airvideo

Также airvideo можно добавить в Avahi/Bonjour сервис чтобы устройства сами его обнаруживали. О том как настраивать Avahi можно почитать здесь, улучшенная версия - здесь.
Просто добавьте следующую конфигурацию к настройкам (у меня они например в /etc/avahi/services/multi.service):

<service>
    <type>_airvideoserver._tcp</type>
    <port>45631</port>
</service>

Установка VLC Streamer

Для VLC Streamer необходимо наличие плеера VLC с модулем access_output_livehttp, модуль есть пока что только в исходных кодах но возможно скоро появится и в новой версии, так что если Ваш вывод похож, то скорее всего шаг со сборкой VLC можно пропустить:

% vlc --list | grep livehttp
VLC media player 1.2.0-git Twoflower (revision 18dc994)
  access_output_livehttp HTTP Live streaming output

Установка VLC

Удалим текущую, есть есть:

sudo apt-get remove vlc vlc-nox

Также нужно обновить x264 и ffmpeg - версия для Air Video тоже подходит (одним выстрелом двух зайцев).
Установим свежую версию VLC, т.к. флаги для конфигурации я решил позаимствовать из родной (ubuntu) версии, то и зависимости для сборки тоже можно взять из неё:

sudo apt-get build-dep vlc
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 из этой темы и запустить:

cd
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
VLC Streamer Server

VLC Streamer Server

После чего запускаем клиента на iPad и радуемся 🙂

Share
Комментарии (0) Пинги (0)

Извините, комментировать здесь запрещено.

Trackbacks are disabled.