Я не знаю как у вас, а у меня домашняя сеть гетерогенная, что я считаю скорее ее достоинством. Это ставит передо мной интересные вопросы. Например, мне полюбилась программа AirVideo, которой мы пользуемся на iPad-ах и реже, — на iPhone. Появление недавно в семье медиа-приемников Apple TV дало новый толчок к использованию программы — я теперь могу перенаправлять видео на телевизор, не охваченный существующей уже кабельной сетью. Схема кажется немного странной: с сервера видео отправляется на iPhone, который, в свою очередь, отправляет все на Apple TV и подключенный к нему телевизор. Но все это сделано удобно и просто, так что сложности нет, есть магия.
Своими руками: устанавливаем AirVideo server в Linux
Но в качестве основного сервера в моей сети выступает небольшой бокс, на котором крутится одна из последних версий Ubuntu. Это поставило передо мной вопрос, как его использовать для целей стриминга, ведь официальные версии AirVideo server есть только под Mac и Windows.

Но оказалось, что есть вполне рабочая, но неподдерживаемая версия под Linux. Но для того, чтобы ее запустить, нужно немного пошаманить. Количество шагов невелико, так что я предлагаю не опасаться: это не сложно.

  • Скачайте AirVideoServer for Linux. Подразумевается, что java на вашем linux-боксе есть.
  • Выложите его в каталог, из которого будет производиться запуск. Скажем /home/%username%/AirVideo
  • Скачайте исходный код измененного (это важно) ffmpeg.
  • Распакуйте его в подходящую папку, я предлагаю — в подпапку вашего AirVideo Server, так вы точно не разрушите основную версию, которую используют многие программы в Linux, по моей логике — /home/username/AirVideo/ffmpeg. Пуристы от Linux могут выбрать более подходящее место, но я не решаюсь переносить что-то в альфа-стадии в основной «репозиторий» программ.
  • Постройте бинарники.:
  • Откройте консоль
  • Скачайте все необходимые библитотеки (выполните команду sudo apt-get install для следующих библиотек: libmp3lame-dev, libfaad-dev, libx264-dev, mpeg4ip-server, git-core, pkg-config
  • Перейдите в каталог с нашим ffmpeg. В консоли это будет выглядеть так: cd /home/username/AirVideo/ffmpeg
  • Запустите команду ./configure —enable-pthreads —disable-shared —enable-static —enable-gpl —enable-libx264 —enable-libmp3lame —enable-libfaad —disable-decoder=aac чтобы создать правильную конфигурацию и
  • Запустите процедуру командой make
  • Создайте файл настроек. Предлагаю положить его в каталог с AirVideo Server. Назвать его логичнее AirVideoServer.properties, но это неприципиально.
    Содержание у него нехитрое:
    path.ffmpeg = /home/alex/AirVideo/ffmpeg/ffmpeg
    path.mp4creator = /usr/bin/mp4creator
    path.faac = /usr/bin/faac
    password =
    subtitles.encoding = windows-1251
    subtitles.font = Verdana
    folders = Movies:/media/Movies, Series:/media/Series

    Разберемся со строчками.
    path.ffmpeg должен указывать на ffmpeg, который вы построили в предыдущем шаге. Две следующие строчки показываются, где находятся стандартные программы, для моей версии Ubuntu пути правильны, но могут отличаться в вашем случае. Мы не задаем пароль, зато задаем как кодировать субтитры (если они вам нужны). Затем задаем шрифт субтитров и в последней строчке — список папок с вашими видео-коллекциями.
  • Осталось запустить ваш сервер и убедиться, что он работает.
    java -jar /home/alex/AirVideo/AirVideoServerLinux.jar /home/alex/AirVideo/AirVideoServer.properties
  • Из-за отсутствия Bonjour (которое тоже лечится, но это уже не в тему) вам придется добавить ip вашего сервера вручную.

Вуаля — iPhone видит списки файлов, более того — проигрывает их. А сервер «на ходу» превращает практически любое видео в формат, понятный для iOS устройств.

Своими руками: устанавливаем AirVideo server в Linux

Я оставляю на ваше усмотрение игры с настройкой размера и качества видео в самой программе AirVideo. Еще один момент, который я для себя не решил — как лучше организовать авто-запуск и авто-остановку сервиса при загрузке и выключении системы. Поэтому попрошу описать лучший метод в комментариях к этой заметке для всеобщего блага.

Если у вас возникнут вопросы, я постараюсь ответить на них по мере сил.