2009-10-29

Организация потокового видео при помощи ffserver

Показать видео на сайте довольно просто. Простейший вариант это выложить на сервер avi, mp4 или flv файл и придумать как этот файл будет воспроизводиться на стороне клиента.

Самым универсальным способом является использование Adobe Flash всилу того, что это технология доступна практически на всех широко распространенных платформах. Можно воспользоваться либо одним из доступных плееров либо сделать свой - благо это можно сделать парой щелчков мыши... Ну или чуть больше чем парой щелчков...

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

Обычный веб сервер, например Apache, для вывода потокового видео не годится. Требуется специальный потоковый сервер. Существует большой выбор как платных так и бесплатных потоковых серверов.

Для того чтобы организовать вывод видео в реальном времени можно воспользоваться утилитой ffserver который устанавливается всместе с ffmpeg. Программка довольно простая в использовании, хотя у меня сложилось впечатление, что довольно капризная и нестабильная. Для серьезных задач ее использовать довольно затруднительно а для простых - когда нужно вывести часовой ролик раз в день вполне подойдет.

Настройка сервера довольно проста. Конфигурационный файл должен быть сохранен как /etc/ffserver.conf. В процессе установки командой make install он не создается, поэтому его нужно создать. Пример файла можно взять с сервера. Здесь выложен мой вариант

Видео в нашем случае будет доступно по адресу http://site.com:8080/file.flv - это адрес указывается для Flash - плеера.

Чтобы видео выводилось стабильно, нужно чтобы частота кадров была такая же как и у выходного потока.

Для того чтобы видео начало раздаваться пользователям его нужно сначала скормить серверу. Как только видео серверу начало скармливаться в тот же самый момент оно начинает раздаваться клиентам.

Для пуска видео можно воспользоваться вот таким файлом.
 

#!/bin/sh
#стартуем сервер
/usr/local/bin/ffserver &
#подождем две секунды чтобы стартовал
sleep 2
#скармливаем видео
/usr/local/bin/ffmpeg -i /root/evergreen800.flv http://localhost:8080/feed1.ffm

Замечено что у ffserver в момент скармливания видео сервер сохраняет его во временный файл прописанный в файле конфигурации. Если максимальный размер видео больше максимального размера прописанного в конфиге, то сервер вылетает с ошибкой. Чтобы такого не происходило во первых нужно чтобы размер файла был всегда больше, во вторых нужно этот файл периодически удалять. Для этого я написал вот такой файлик.

#!/bin/sh

PID=`ps -ea -o "pid fname" | grep ffserver | sed -e 's/^ *//' -e 's/ .*//'`

if [ "${PID}" != "" ]
then
  kill -9 ${PID}
fi

rm /tmp/feed1.ffm

ffserver

Несколько вопросов для меня так и остались открытыми - после длительного бездействия процесс сервера вываливается, хотя сервер прописан в конфиге как демон.

Почему не удаляется временный файл автоматически тоже не понятно.

В общем, если у кого есть какие мысли на этот счет - милости прошу оставляйте свои комментарии.

 

Оставить комментарий

 
  2009-10-28

Список Линуксовых команд

Обнаружил довольно неплохой список команд. Много знакомых но попадаются полно тех которые не знал но которые весьма полезны.

 

Оставить комментарий

 
  2009-10-26

Аяксовые комментарии

Комментарии теперь добавляются посредством Аякс. Брррр. Красота.

 

Коментариев: 10

 
  2009-10-26

говорят SVN это дырка...

На Хабрахабре интересная статейка про то как люди часто пренебрегают элементарными средствами безопастности, выставляя служебные папочки .svn на всеобщее оборзение.

http://habrahabr.ru/blogs/infosecurity/70330/

Upd:
чтобы запретить это безобразие просто добавьте в .htaccess или в httpd.conf:

<IfModule mod_rewrite.c>
  RewriteRule ^(.*/)?\.svn/ - [F,L]
  ErrorDocument 403 "Access Forbidden"
</IfModule>
 

Причем как то странно на одном сервере это не сработало, сработало вот это:

<DirectoryMatch "^/.*/(\.svn|CVS)/">
  Order deny,allow
  Deny from all 
</DirectoryMatch>
 

Коментариев: 2

 
  2009-10-23

Особенности энергопотребления в Aser Aspire 4810TG

Оказывается буква G в наименовании означает наличие на борту дополнительного видеодаптера на чипсете ATI Radeon. Основной видеоадаптер идет на Intel чипсете - который как раз и поставлен там для уменьшения энергопотребления. Однако, Линукс с двумя видеоадаптерами одновременно работать не умеет, или умеет но не хочет, поэтому одной из возможных стратегий является отключение видеоадаптера на Intel чипсете (это можно сделать в биосе - если поставить свежую версию) и установка в качестве драйвера видеоадаптера ATI Radeon проприетарного драйвера FGLRX.

Однако видеоадаптер на базе ATI Radeon сделан специально для работы от сети, поэтому более логичным кажется, наоборот, отключить его и поставить в качестве основного  видеоадаптер Intel, ведь он как раз установлен там для снижения энергопотребления.

Вот здесь нашел иструкцию как это сделать. У меня сработало без проблем. Powertop говорит что компьютер потребляет примерно 14 Ватт, что хватит примерно на четыре часа работы - столько же он примерно потребляет в режиме с FGLRX, но - на минимальной яркости дисплея. По каким то таинственны причинам Ubuntu 9.10 не умеет регулировать яркость дисплея, и она остается максимальной при работе от батареи - а это значит, что энергопотребление все таки уменьшилось - при работе ATI Radeon с открытым драйвером компьютер потреблял около 30 Ватт и грелся как утюг.

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

Upd: компьютер проработал 4 часа 17 минут.

 

Оставить комментарий

 
  2009-10-22

Ubuntu 9.10

Обновил на своем Aser Aspire 4810T Ubuntu 9.04 на 9.10. Честно говоря, версия эта еще не вышла -  до выхода осталось совсем ничего но  уже доступна бета. Я надеялся, что они наконец исправят поддержку моей видеокарты и ноутбук наконец можно будет запускать с непроприетарным драйвером. Также очень хвалили новое ядро - мол потреблять должно гораздо меньше энергии.

Как и в старой версии проприетарный драйвер (FGLRX) в гибридном режиме не доступен. В dDPU работает нормально. Powertop показывает что энергии новый Линукс жрет не меньше - около 14 ватт, по крайней мере визуально улучшений не заметно. Под Вистой машинка работает восемь часов - под Убунтой только четыре а это означает, что можно сократить энергопотребление до семи Ватт. Ну что же - есть перспектива роста....

 

Коментариев: 1

 
  2009-10-22

Лохотроны

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

Это оказывается разводка на студентов и пенсионеров же рассчитанная.

линка

еще линка.

 

Оставить комментарий

 
  2009-10-21

Сверим ваши часы

Краткая инструкция как настроить синхронизацию времени компьютера с сервером в Интернет по протоколу NTP.

Предполагается что компрьтер работает под Linux (я тестировал на centos)

1. инсталлируем пакет ntp

> yum install ntp

2. редактируем /etc/ntp.conf если есть такое желание NTP сервера нужно брать по возможности ближе к вашему реальному расположению список ntp-серверов можно взять здесь pool.ntp.org

3. ставим ntpd демона в автозапуск

> chkconfig ntpd on

4. запускаем демона

> /etc/init.d/ntpd start

Все, теперь можно не думать о секундах свысока...

 

Оставить комментарий

 
  2009-10-21

Пиратство в сети

Интересно насколько популярна сейчас эта тема сетевого пиратства. Вообще это здорово, что люди стали задумываться над такими вещами. Возможно, этому способствует то что сеть стала очень простой средой которая очень сильно упростила обмен информацией между людьми, как в свое время упростили торговлю морские перевозки, которые и по сей день остаются одним из самых дешевых видов транспорта. Примечательно что люди, занимающиеся разбоем на морских путях называются пиратами, так же и те кто занимается воровством в сети.

Однако сейчас под термин пиратство попадает практически любая человеческая деятельность. Давайте посмотрим на мир через призму законо об авторском праве: Чем занимается человек всю свою жизнь? Сначала он учится - суть незаконное копирование информации в головной мозг. Нет такого закона который бы регламентировал порядок копирования образов из окружающего мира в кору головного мозга, а ведь туда подают и логотипы компаний, и кино и видеоматериалы охраняемые авторским правом.

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

И о каком копирайте тут может идти речь? Любые законы об авторских правах противоречат человеческой природе.

По этой причине я категорически против любых копирайтов - человек не имеет своего ничего - все его мысли, дела, идеи, творенья - все они не его, они были заложены в нас родителями, друзьями, книгами фильмами.

Представьте ситуацию, класс, учительница объясняет детям предмет. Например математику. Кое кто из ребят усвоил материал, сделал соответствующие выводы, вырос стал крутым предпринимателем и используя идею заложенную в детстве той учительницей заработал миллионы. Должна ли учительница получить свой процент с прибыли? В принципе было бы не плохо, но никто в здравом уме не сделает это обязательным условием.

Просто Интернет это среда где такие причинно следственные связи легко отследить техническими средствами и всегда найдутся люди готовые защитить интересы учительницы, отобрать бабки у предпринимателя за соответствующий процент. Ничего не надо - путать такие организации не борются за справедливость, они борются за свой процент. Ярким примером является Российское Авторское Общество (РАО). Редкие авторы поддерживают работы Российского Авторского Общества. Вроде бы все здорово РАО борется за права авторов музыкальных произведений, однако на практике ситуация доходит до абсурда - РАО борется с исполнителями авторов когда те исполняют и не делятся с РАО, с самими авторами - если автор сам является исполнителям. Все это наглядно показывает истинную направленность деятельности этих замечательных людей. К тому же  РАО как правило только только отнимает деньги у исполнителей, до авторов они как правило не доходят.

 

Оставить комментарий

 
  2009-10-21

Лампочки накаливания

Каганов написал замечательную оду прощания с лампочкой. Подпишусь под каждым словом. И хотя сам я уже давно перешел на ртутные лампочки как то все равно тянет на конфронтацию - как так запретят лампочки накаливания, а я все равно назло буду пользоваться. Интересно это у нас в крови сидит да?

 

Оставить комментарий