Mercurial > hg > nginx-site
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> |