comparison xml/ru/docs/http/ngx_http_mp4_module.xml @ 87:f5539fb36bbb

Russian translation of ngx_http_mp4_module.
author Ruslan Ermilov <ru@nginx.com>
date Fri, 14 Oct 2011 08:45:37 +0000
parents
children c76a257f3fd4
comparison
equal deleted inserted replaced
86:341dc6392e8a 87:f5539fb36bbb
1 <?xml version="1.0"?>
2
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
4
5 <module name="Модуль ngx_http_mp4_module"
6 link="/ru/docs/http/ngx_http_mp4_module.html"
7 lang="ru">
8
9 <section name="Обзор">
10
11 <para>
12 Модуль <code>ngx_http_mp4_module</code> обеспечивает серверную поддержку
13 псевдо-стриминга для файлов в формате H.264/AAC. Такие файлы обычно
14 имеют расширения
15 <pathname>.mp4</pathname>, <pathname>.m4v</pathname>
16 и <pathname>.m4a</pathname>.
17 </para>
18
19 <para>
20 Псевдо-стриминг работает в паре с совместимым Flash-плеером.
21 Плеер посылает серверу HTTP-запрос с указанием точки времени старта
22 в аргументе
23 <parameter>start</parameter>
24 строки запроса (время задаётся в секундах), а сервер в
25 ответ посылает поток, у которого начальная позиция соответствует
26 запрошенному времени, например:
27 <example>
28 http://example.com/elephants_dream.mp4?start=238.88
29 </example>
30 Это позволяет в любой момент времени выполнить произвольное
31 позиционирование, а также начать воспроизведение с середины
32 временной шкалы.
33 </para>
34
35 <para>
36 В форматах, основанных на H.264, метаданные, необходимые для поддержки
37 позиционирования, хранятся в так называемом “moov атоме.”
38 Это часть файла, которая содержит индексную информацию для всего файла.
39 </para>
40
41 <para>
42 До начала воспроизведения плееру необходимо прочитать метаданные.
43 Для этого он отсылает специальный запрос с аргументом
44 <parameter>start=0</parameter>.
45 Многие кодирующие программы добавляют метаданные в конец файла.
46 Для псевдо-стриминга это плохо: метаданные должны быть расположены
47 в начале файла, иначе потребуется загрузить файл целиком, прежде
48 чем начать воспроизведение. Если файл отформатирован хорошо,
49 с метаданными в начале файла, nginx просто посылает в ответ
50 содержимое файла. В противном случае, он вынужден будет прочитать
51 файл и подготовить новый поток, в котором метаданные предшествуют
52 медийным данным. Это требует дополнительного процессорного
53 времени, памяти и дискового ввода/вывода, поэтому лучше
54 <link
55 url="http://flowplayer.org/plugins/streaming/pseudostreaming.html#prepare">
56 подготовить исходный файл для псевдо-стриминга</link>,
57 нежели чем заставлять nginx делать это для каждого запроса.
58 </para>
59
60 <para>
61 Для запроса с ненулевым аргументом
62 <parameter>start</parameter>
63 nginx считывает из файла метаданные, готовит поток с запрошенного
64 смещения, и отправляет его клиенту.
65 Это тоже требует дополнительных ресурсов, как указано выше.
66 </para>
67
68 <para>
69 Если запрос, обрабатываемый этим модулем, не содержит аргумента
70 <parameter>start</parameter>,
71 дополнительные ресурсы не тратятся, а файл отсылается просто как
72 статический ресурс.
73 Некоторые плееры также поддерживают запросы с указанием диапазона
74 запрашиваемых байт (byte-range requests), для них вообще не
75 требуется этот модуль.
76 </para>
77
78 <para>
79 По умолчанию этот модуль не собирается, его сборку необходимо
80 разрешить с помощью конфигурационного параметра
81 <code>--with-http_mp4_module</code>.
82 <note>
83 Если вы ранее использовали сторонний модуль mp4, не забудьте его отключить.
84 </note>
85 </para>
86
87 <para>
88 Схожая поддержка псевдо-стриминга для FLV-файлов обеспечивается модулем
89 <link doc="ngx_http_flv_module.xml">ngx_http_flv_module</link>.
90 </para>
91
92 </section>
93
94
95 <section id="example" name="Пример конфигурации">
96
97 <para>
98 <example>
99 location /video/ {
100 mp4;
101 mp4_buffer_size 1m;
102 mp4_max_buffer_size 5m;
103 }
104 </example>
105 </para>
106
107 </section>
108
109
110 <section id="directives" name="Директивы">
111
112 <directive name="mp4">
113 <syntax>mp4</syntax>
114 <default/>
115 <context>location</context>
116
117 <para>
118 Включает в содержащем location обработку этим модулем.
119 </para>
120
121 </directive>
122
123
124 <directive name="mp4_buffer_size">
125 <syntax>mp4_buffer_size <argument>размер</argument></syntax>
126 <default>mp4_buffer_size 512K</default>
127 <context>http</context>
128 <context>server</context>
129 <context>location</context>
130
131 <para>
132 Задаёт начальный размер буфера памяти, используемого при обработке MP4 файлов.
133 </para>
134
135 </directive>
136
137
138 <directive name="mp4_max_buffer_size">
139 <syntax>mp4_max_buffer_size <argument>размер</argument></syntax>
140 <default>mp4_max_buffer_size 10M</default>
141 <context>http</context>
142 <context>server</context>
143 <context>location</context>
144
145 <para>
146 В процессе обработки метаданных может понадобиться буфер большего размера.
147 Его размер не может превышать указанного,
148 иначе nginx возвращает серверную ошибку
149 <http-status code="500" text="Internal Server Error"/>
150 и протоколирует следующее:
151 <example>
152 "/some/movie/file.mp4" mp4 moov atom is too large:
153 12583268, you may want to increase mp4_max_buffer_size
154 </example>
155 </para>
156
157 </directive>
158
159 </section>
160
161 </module>