[lang_en]Flash Video (FLV) Streaming With Nginx[/lang_en][lang_ru]Стриминг Flash Video при помощи Nginx[/lang_ru]
14 Oct2006

[lang_en]

I was looking forward for this feature for last 3 months! And at last, it is there! Now, nginx works on our streaming servers perfectly and flv streaming will not be Lighttpd’s unique feature anymore. 🙂 This post is about how to use new Nginx module http_flv_module introduced in 0.4.7 (but there was a bug in its implementation, that can be fixed with my patch) and made completely perfect in 0.4.8.

[/lang_en]

[lang_ru]

Я ждал этой возможности в Nginx на протяжении последних 3 месяцев! И вот, наконец-то, она реализована! Теперь, nginx прекрасно работает на наших стриминг серверах, а возможность стриминга flv-файлов больше не является уникальной фичей Lighttpd. 🙂 Этот пост расскажет вам о том, как использовать новый модуль Nginx под названием http_flv_module, впервые реализованный в версии 0.4.7 (но там была досадная ошибка в реализации стриминга, которая исправляется моим патчем) и доведенный до идеала в 0.4.8.

[/lang_ru]

[lang_en]

First of all, to use new module, you should (re)complile nginx with –with-http_flv_module option:

# ./configure --with-http_flv_module ...SOME-OTHER-OPTS...

Next your action should be activation of flv streaming module for your flv files in nginx.conf:

1
2
3
4
5
6
7
8
9
10
11
12
...
http {
    ...
    server {
        ...
        location ~ \.flv$ {
            flv;
        }
        ...
    }
    ...
}

This option will instruct nginx to add special “header” information to data stream if user asked for some flv file and passed parameter “?start=XXX”, which means “give me that flv file from byte XXX to the end of file” (this is the idea of flv streaming).

Last your action, if it was not done before, should be conversion of your video files to FLV format and adding meta info to your created flv files. You can read how to do it in my previous post.

As always, I want to ask you, if you like this post, support it on Digg.com

[/lang_en]

[lang_ru]

Во-первых, для использования этого модуля, Вы должны перекомпилировать nginx с опцией –with-http_flv_module:

# ./configure --with-http_flv_module ...SOME-OTHER-OPTS...

Следующим действием является активация стриминга для Ваших flv-файлов в nginx.conf:

1
2
3
4
5
6
7
8
9
10
11
12
...
http {
    ...
    server {
        ...
        location ~ \.flv$ {
            flv;
        }
        ...
    }
    ...
}

Эта опция требует от Nginx добавлять специальный “заголовок” в поток данных, запрошенный из определенного flv-файла передачей параметра “?start=XXX”, обозначающего “отдай мне файл flv с байта XXX до конца файла” (такова идея стриминга видео во флеше).

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

Как всегда, хочу попросить Вас, если Вам понравится этот пост, поддержите его на Digg.com

[/lang_ru]