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-05-05

Словарик английского

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

aka - also knows as... также известный как...
brb - be right back - скоро вернусь
cu - see you (later) - до свиданья
ic - I see - я вижу, ясно
nm - never mind - забудь чувак
np - no problem - без проблем
ttyl - talk to you later - до связи
ty - thank you - спасибо
k - OK
lol - laughing out loud - ха ха
asap - as soon as possible так скоро как только возможно
o_O - Confused, stunned, or weirded out. типа о'O
btw - By the way - между тем; да, кстати
idk - I don't know - я не знаю
wtf - What the fuck? - что за хуйня?
fyi - for your information - к сведенью
YHBT - You Have Been Trolled - над тобой прикололись
IMHO - In My Humble Opinion - по моему скромному мнению.
AFAIK: As Far As I Know - насколько мне известно.
u2 - you too - и тебе тоже

iykyk - if you know, you know - если ты знаешь, ты знаешь.

 

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

 
  2009-05-05

Словарик латыни

etc. et cetera, - и так далее
e.g. exempli gratia - например
i.e. id est - то есть, другими словами
vs. versus - против
am ante meridiem - до полудня
pm post meridiem - после полудня

 

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

 
  2009-04-21

WinSCP

Потребовалось зайти на сервер через SFTP - попробовал для этих целей WinSCP - нет слов - отличная штука. Кроме того что пользовательский интерфейс повторяет многим полюбившийся WinComander, есть плагин к Far Manager любымый лично мной. Кроме того, штука распространяется бесплатно и в исходных кодах.

 

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

 
  2009-03-11

Несвоевременная прописка ребенка

Как то раз случилось мне прописывать ребенка - нужно было встать в очередь в садик и в РОНО требовали чтобы ребенок был прописан. Ребенку к тому времени исполнилось полтора года, о том чтобы раньше прописать не было даже и мысли - а нафига?.

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

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

Статья 19.15. Проживание гражданина Российской Федерации без удостоверения личности гражданина (паспорта) или без регистрации

1. Проживание по месту жительства или по месту пребывания гражданина Российской Федерации, обязанного иметь удостоверение личности гражданина (паспорт), без удостоверения личности гражданина (паспорта) или по недействительному удостоверению личности гражданина (паспорту) либо без регистрации по месту пребывания или по месту жительства -
(в ред. Федерального закона от 08.12.2003 N 161-ФЗ)
влечет наложение административного штрафа в размере от одной тысячи пятисот до двух тысяч пятисот рублей.
(в ред. Федеральных законов от 25.10.2004 N 126-ФЗ, от 22.06.2007 N 116-ФЗ)
2. Допущение лицом, ответственным за соблюдение правил регистрационного учета, проживания гражданина Российской Федерации без удостоверения личности гражданина (паспорта) или по недействительному удостоверению личности гражданина (паспорту) либо без регистрации по месту пребывания или по месту жительства, а равно допущение гражданином проживания в занимаемом им или в принадлежащем ему на праве собственности жилом помещении лиц без удостоверения личности гражданина (паспорта) либо без регистрации по месту пребывания или по месту жительства -
влечет наложение административного штрафа в размере от двух тысяч до двух тысяч пятисот рублей.
(в ред. Федеральных законов от 25.10.2004 N 126-ФЗ, от 22.06.2007 N 116-ФЗ)


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

Более детальный поиск в интернет дал следующий документ: ПЛЕНУМ ВЕРХОВНОГО СУДА РОССИЙСКОЙ ФЕДЕРАЦИИ ПОСТАНОВЛЕНИЕ
от 24 марта 2005 г. N 5 О НЕКОТОРЫХ ВОПРОСАХ, ВОЗНИКАЮЩИХ
У СУДОВ ПРИ ПРИМЕНЕНИИ КОДЕКСА РОССИЙСКОЙ ФЕДЕРАЦИИ
ОБ АДМИНИСТРАТИВНЫХ ПРАВОНАРУШЕНИЯХ

 

А именно параграф 14: Согласно части 2 статьи 4.5 КоАП РФ при длящемся административном правонарушении сроки, предусмотренные частью первой этой статьи, начинают исчисляться со дня обнаружения административного правонарушения. При применении данной нормы судьям необходимо исходить из того, что длящимся является такое административное правонарушение (действие или бездействие), которое выражается в длительном непрекращающемся невыполнении или ненадлежащем выполнении обязанностей, возложенных на нарушителя законом. Невыполнение предусмотренной нормативным правовым актом обязанности к установленному в нем сроку не является длящимся административным правонарушением. При этом необходимо иметь в виду, что днем обнаружения длящегося административного правонарушения считается день, когда должностное лицо, уполномоченное составлять протокол об административном правонарушении, выявило факт его совершения.

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

Распечатав листочек с выдержкой из этого документа, на следующий день пошел к начальнику паспортного стола. Выстояв очередь из десятка таких же лохов горемык попал в кабинет к инспектору которым оказалась миловидная девушка с погонами лейтенанта. Объяснив ей ситуацию и показав нормативный акт на основании которого она не может меня оштрафовать она согласно кивнула, уточнив только номер документа - оказывается она была в курсе. Так же она согласилась, что ОТКАЗ ПЛАТИТЬ ШТРАФ НЕ ЯВЛЯЕТСЯ ПОВОДОМ ДЛЯ ОТКАЗА В ПРОПИСКЕ.

После этой милой беседы она послала меня опять к паспортистке сказав, что мол, можно прописывать — она разрешает. Паспортистка поморщилась но документы взяла. Так я прописал ребенка....

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

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

Граждане будьте бдительны - в нашей стране незнание закона не освобождает от ответственности. Знание закона - освобождает.
 

Дисклаймер: нет нет, я не юрист, образование у меня техническое а вышеприведённый пост есть просто пересказ неких реальных событий произошедших со мной. Надеюсь, этот пост поможет другим людям оказавшихся в подобной ситуации разрешить аналогичный вопрос. Хотя, может так случится, что со временем эта процедура действовать перестанет. Например, когда я пошел прописывать второго ребенка ритуал оказался в принципе другим. На просроченный срок давности уже никто не смотрел, зато потребовалось ЛИЧНОЕ присутствие ВСЕХ жильцов, прописанных в этой квартире.

Upd. Выложил еще один пост на эту тему.

 

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

 
  2009-03-10

Борьба со спамом

Чтобы упростить жизнь антиспам-фильтрам и увеличить вероятность что ваша почта ими не зарубится можно воспользоваться SPF (Sender Policy Framework) http://www.openspf.org/, правда решение годится только если у вас собственный домен и полный доступ к настройкам DNS сервера вашей зоны.

Если коротко то основная идея следующая - владелец домена, ну скажем maxistar.ru добавляет в зону следующую запись

maxistar.ru. IN TXT "v=spf1 a mx ~all"

данная запись означает что письма имеющие адреса типа xxx@maxistar.ru могут быть отправлены только с сервера IP которого соответствует серверу maxistar.ru или с сервера на который указывают MX записи этого сервера.

когда на какой-либо SMTP сервер поддерживающий механизм SPF приходит сообщение, то сервер проверят у сервера адрес которого указан в адресе письма наличие TXT записи, которая начинается с v=spf1, затем сравнивается эта запись с IP адресом откуда выполняется запрос, если IP удовлетворяет правилу прописанному в SPF записи - письмо проходит, если нет - письмо отклоняется.

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

Замечательная особенность этого механизма в том, что письмо может быть отклонено ДО его пересылки на сервер, что разгружает каналы и экономит машинное время.

 

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

 
  2008-11-07

OpenOffice и клавиши навигации

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

Скачал исправленную русскую версию с сайта OpenOffice.org - панельки управления появились, но вот беда, навигационные клавиши перестали работать - стрелка вверх, стрелка вниз, вправо, влево, Backspace, Home, PageDown, PageUp все эти клавиши перестали откликаться. Скачивание дистрибутива с сайта ИнфраРесурс тоже помогло мало.

Похоже, что помимо панелек исчезли ещё и назначения клавиш. В меню Настройки все назначения клавиш оказались пустыми! Попробовал расставить сочетания клавиш вручную, но это оказалось нелегким делом, так как русский перевод названий операций оказался довольно странным - Down - До верхней строки, Up - До нижней строки, Left - Символ слева, Right - перейти вправо. То есть, по названию операции вообще трудно определить что она делает.

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

Читать далее...

 

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

 
  2008-10-10

Русский hMailServer

Заметил что по словосочетанию Русский hMailserver ко мне на сайт заходят больше посетителей чем по другим словосочетаниям. Все потому что в этом посте я написал что установил эту программу.

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

Единственная проблема была при инсталляции - он вроде как русский, а вроде как и нет, т.е. файл локализации в /Program Files/hMailserver/Languages/russian.ini есть, а программа русские надписи в интерфейсе не показывает, поэтом сразу после установки берем и копируем english.ini в russian.ini - ну будет программа теперь по аглицки говорить, заодно подучим аглицкий :)). Как говорил небезызвестный товарищ Кант - все что меня не убивает делает меня сильнее :))))

 

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

 
  2008-10-10

Перекодировка docx в doc - странности от Microsoft

Как то странно ведет себя микросовтский перекодировщик, я уже писал с блоге, что для того чтобы перекодировать замечательный открытый формат - существует замечательное средство Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats. Однако поставив эту штуку себе на компьютер вместе с Word Viewer 2003 заметил что вместо того чтобы при открытии файла предложить его сохранить в формате doc она вместо этого открывает его во вьювере, вьювер мне конечно нравится, из него можно текст скопировать в буфер обмена, однако у него начисто отсутствуют функции сохранения того что он смотрит а при копировании в OpenOffice через буффер портятся картинки.

Снес Word Viewer, теперь просматривать вроде перестал, однако теперь в опциях сохранения только два формата - docx и docm.

Кажется нашел причину - кажется я поставил старую версию Word Viewer'а которая каким то образом поломала Compatibility Pack, снес обе программы и поставил заново - сначала Compatibility Pack, потом Word Viewer - теперь все работает правильно.

 

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