Sat 14 Oct 2006
Стриминг Flash Video при помощи Nginx
Posted by Scoundrel under Uncategorized ·
Я ждал этой возможности в Nginx на протяжении последних 3 месяцев! И вот, наконец-то, она реализована! Теперь, nginx прекрасно работает на наших стриминг серверах, а возможность стриминга flv-файлов больше не является уникальной фичей Lighttpd.
Этот пост расскажет вам о том, как использовать новый модуль Nginx под названием http_flv_module, впервые реализованный в версии 0.4.7 (но там была досадная ошибка в реализации стриминга, которая исправляется моим патчем) и доведенный до идеала в 0.4.8.
Во-первых, для использования этого модуля, Вы должны перекомпилировать nginx с опцией –with-http_flv_module:
# ./configure --with-http_flv_module ...SOME-OTHER-OPTS...
Следующим действием является активация стриминга для Ваших flv-файлов в nginx.conf:
http {
...
server {
...
location ~ \.flv$ {
flv;
}
...
}
...
}
Эта опция требует от Nginx добавлять специальный “заголовок” в поток данных, запрошенный из определенного flv-файла передачей параметра “?start=XXX”, обозначающего “отдай мне файл flv с байта XXX до конца файла” (такова идея стриминга видео во флеше).
Последнее действие, которое требуется, если вы его еще не сделали, - это конвертация Вашего видео в FLV формат и добавление meta-информации в созданные файлы. Детальнее об этом процессе вы можете прочесть в одном из моих предыдущих постов.
Как всегда, хочу попросить Вас, если Вам понравится этот пост, поддержите его на Digg.com
- Использование lighttpd, Mplayer/Mencoder и Flvtool2 для реализации потоковой раздачи Flash Video
- Русский Feed Восстановлен
- Образовательные семинары от Google (techtalks) и Сохранение Роликов из Google Video на Локальный Диск
- 1000 Great Technical Videos in BestTechVideos Library!
- Compiling nginx in RedHat Linux: PCRE library problem
October 14th, 2006 at 11:21 pm
[...] Notice: Read my new article about flash streaming “Flash Video (FLV) Streaming with Nginx” to learn, how to implement streaming server with nginx. [...]
October 17th, 2006 at 6:01 am
Hi there
when can we get aio enabled on nginx?
thanks
November 6th, 2006 at 1:01 am
Сделал все, как сказано в статье, но nginx выдает ошибку 404. В чем может быть проблема?
nginx/0.4.12
November 6th, 2006 at 2:02 am
Самый простой метод - поглядеть в error_log - там точно сказано
November 6th, 2006 at 9:55 am
Разобрался, спасибо.
January 21st, 2007 at 7:00 am
Impressive article. But I could not make nginx work with php, ruby etc in my debian 3.1 VPS with debian etch as HN with OpenVZ.
I followed a tutorial at http://concentrationstudios.com/2006/8/26/nginx-and-rimuhosting-a-grand-ol-time but it does not behave like it is stated after executing the php-spin script in the article.
Debian certainly has nginx binary package in their repositories but I am not sure whether they support all the nginx modules and scripting languages.
Here I have noticed wonderful experts in nginx and lighttpd. I wish experts here (particularly Scondrel) could advise me how to proceed?
Thank you! Spaciva bolshoi!
February 12th, 2007 at 8:31 pm
А как реализовать flv-стриминг в nginx вместе с его внутренним редиректом (X-Accel-Redirect)? $request_uri после редиректа уже не содержит первоначального параметра start..
February 12th, 2007 at 8:33 pm
2lhotski: А что мешает передавать этот параметр в редиректе? Скрипт получает его через GET и отдает назад в редиректе вместе с именем файла.
February 12th, 2007 at 9:06 pm
2Scoundrel: Насколько я понял, параметр для X-Accel-Redirect не парсится как URI, а воспринимается как путь к файлу, который приаттачивается еще к пути в root внутри location. и при отсутсвии файла “/path/some.flv?start=XXX” естественно выдает 404.
Может URI можно как то дополнительным заголовком сформировать? или я жестко туплю?
February 12th, 2007 at 9:14 pm
2Scoundrel: о, пардон, нашел
March 29th, 2007 at 11:51 am
[...] Последнее действие, которое требуется, если вы его еще не сделали, - это конвертация Вашего видео в FLV формат и добавление meta-информации в созданные файлы Стриминг Flash Video при помощи Nginx [...]
April 25th, 2007 at 3:11 pm
Is there any way to secure the streams so that users cannot download the flv directly?
July 11th, 2007 at 12:35 pm
немогу сообразить обязательно указывать file.flv?&start=123
а если без этой переменной то должно отдать файл с 0 байта, правильно я понимаю?
July 28th, 2007 at 2:17 pm
Hi,
how is the performance of nginx? can it support thousands of users at the sametime?
thanks
August 1st, 2007 at 12:22 am
Itam,
Nginx is famous for it’s blazing performance.
September 10th, 2007 at 1:04 pm
Hello,
how can I do live streaming video with Nginx ? It is possible ?
November 15th, 2007 at 8:04 pm
нашёл небольшой баг в nginx, если flv-директива стоит после защиты от хотлинка, то стриминг нихрена не работает - отдаёт весь файл целиком, если же до хотлинка - то работает.
вот пример правильной конфигурации:
location ~ \.flv$ {
flv;
}
location ~ \.(jpg|jpeg|gif|mpg|mpeg|wmv|avi|flv)$ {
access_log off;
valid_referers none blocked server_names *.site.com/;
if ($invalid_referer) {
return 403;
}
}
April 28th, 2008 at 9:36 am
YouTubeRobot.com today announces YouTube Robot 2.0, a tool that enables you to download video from YouTube.com onto your PC, convert it to various formats to watch it when you are on the road on mobile devices like mobile phone, iPod, iPhone, Pocket PC, PSP, or Zune
June 27th, 2008 at 12:41 pm
location ~ \.flv$ { - I had a problem with this line of code, it gave me and 404 error, but when removed the space before \.flv everything was ok