Mercurial > hg > nginx-site
changeset 1104:028f6a4d8046
Corrected punctuation, grammar, style, rephrased some sentences.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 04 Mar 2014 13:02:21 +0000 |
parents | 1fcf8c840dbe |
children | eb3713019359 |
files | xml/en/docs/http/ngx_http_mp4_module.xml xml/ru/docs/http/ngx_http_mp4_module.xml |
diffstat | 2 files changed, 32 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_mp4_module.xml +++ b/xml/en/docs/http/ngx_http_mp4_module.xml @@ -9,7 +9,7 @@ <module name="Module ngx_http_mp4_module" link="/en/docs/http/ngx_http_mp4_module.html" lang="en" - rev="3"> + rev="4"> <section id="summary"> @@ -21,8 +21,8 @@ or <path>.m4a</path> filename extensions </para> <para> -The pseudo-streaming works in alliance with a compatible Flash players. -A player sends an HTTP request to the server with a start time +Pseudo-streaming works in alliance with a compatible Flash player. +The player sends an HTTP request to the server with the start time specified in the query string argument (named simply <literal>start</literal> and specified in seconds), and the server responds with the stream @@ -36,31 +36,30 @@ in the middle of the timeline. </para> <para> -To support seeking, H.264-based formats store the metadata -in the so-called “moov atom.” +To support seeking, H.264-based formats store metadata +in a so-called “moov atom”. It is a part of the file that holds the index information for the whole file. </para> <para> -To start playback, a player first needs to read metadata. +To start playback, the player first needs to read metadata. This is done by sending a special request with the <literal>start=0</literal> argument. -Much of encoding software will insert the metadata at +A lot of encoding software insert the metadata at the end of the file. -This is bad for pseudo-streaming: -the metadata should be located at the beginning of the file, -or else the entire file will have to be downloaded to -start playing. -If a file is well-formed (with metadata at the -beginning of a file), nginx just sends back the file contents. -Otherwise, it has to read the file and prepare a new stream so that -the metadata comes before the media data. +This is suboptimal for pseudo-streaming, because the player +has to download the entire file before starting playback. +If the metadata are located at the beginning of the file, +it is enough for nginx to simply start sending back the file contents. +If the metadata are located at the end of the file, +nginx must read the entire file and prepare a new stream so that +the metadata come before the media data. This involves some CPU, memory, and disk I/O overhead, so it is a good idea to <link url="http://flowplayer.org/plugins/streaming/pseudostreaming.html#prepare"> -prepare an original file for pseudo-streaming</link>, +prepare an original file for pseudo-streaming</link> in advance, rather than having nginx do this on every such request. </para> @@ -68,16 +67,17 @@ rather than having nginx do this on ever For a matching request with a non-zero <literal>start</literal> argument, nginx will read the metadata from the file, prepare the -stream starting from the requested offset, and send it to a client. +stream starting from the requested offset, and send it to the client. This has the same overhead as described above. </para> <para> If a matching request does not include the <literal>start</literal> -argument, there is no overhead, and the file is just sent as a static resource. +argument, there is no overhead, and the file is sent simply as a static +resource. Some players also support byte-range requests, and thus do not require -this module at all. +this module. </para> <para>
--- a/xml/ru/docs/http/ngx_http_mp4_module.xml +++ b/xml/ru/docs/http/ngx_http_mp4_module.xml @@ -9,7 +9,7 @@ <module name="Модуль ngx_http_mp4_module" link="/ru/docs/http/ngx_http_mp4_module.html" lang="ru" - rev="3"> + rev="4"> <section id="summary"> @@ -38,7 +38,7 @@ http://example.com/elephants_dream.mp4?s <para> В форматах, основанных на H.264, метаданные, необходимые для поддержки -позиционирования, хранятся в так называемом “moov атоме.” +позиционирования, хранятся в так называемом “moov-атоме”. Это часть файла, которая содержит индексную информацию для всего файла. </para> @@ -47,39 +47,37 @@ http://example.com/elephants_dream.mp4?s Для этого он отсылает специальный запрос с аргументом <literal>start=0</literal>. Многие кодирующие программы добавляют метаданные в конец файла. -Для псевдо-стриминга это плохо: метаданные должны быть расположены -в начале файла, иначе потребуется загрузить файл целиком, прежде -чем начать воспроизведение. -Если файл отформатирован хорошо, с метаданными в начале файла, -nginx просто посылает в ответ -содержимое файла. -В противном случае, он вынужден будет прочитать +Это неоптимально для псевдо-стриминга, поскольку плееру +потребуется загрузить файл целиком прежде чем начать воспроизведение. +Если метаданные находятся в начале файла, +nginx’у достаточно начать отправлять в ответ содержимое файла. +Если же метаданные находятся в конце файла, +потребуется прочитать весь файл и подготовить новый поток, в котором метаданные предшествуют медийным данным. Это требует дополнительного процессорного времени, памяти и дискового ввода/вывода, поэтому лучше -<link +заранее <link url="http://flowplayer.org/plugins/streaming/pseudostreaming.html#prepare"> подготовить исходный файл для псевдо-стриминга</link>, -нежели чем заставлять nginx делать это для каждого запроса. +нежели делать это для каждого запроса. </para> <para> Для запроса с ненулевым аргументом <literal>start</literal> nginx считывает из файла метаданные, готовит поток с запрошенного -смещения, и отправляет его клиенту. +смещения и отправляет его клиенту. Это тоже требует дополнительных ресурсов, как указано выше. </para> <para> Если запрос, обрабатываемый этим модулем, не содержит аргумента <literal>start</literal>, -дополнительные ресурсы не тратятся, а файл отсылается просто как +дополнительные ресурсы не тратятся, а файл отсылается непосредственно как статический ресурс. Некоторые плееры также поддерживают запросы с указанием диапазона -запрашиваемых байт (byte-range requests), для них вообще не -требуется этот модуль. +запрашиваемых байт (byte-range requests), для них этот модуль не требуется. </para> <para>