Преобразование и смешивание потоков
Протокол RTP позволяет смешивать (т.е. объединять в один поток или, как принято называть эту операцию, мультиплексировать) два или несколько потоков, а также преобразовывать поток (т.е. менять кодировку данных). Чтобы получатель имел возможность разделять (демультиплексировать) входящие пакеты, каждый источник обозначается уникальным 32-битовым целым числом. Идентификатор источника находится в поле идентификатора источника синхронизации. Если смешивание двух потоков для формирования нового потока выполняется в промежуточной системе (мультиплексоре), то источником нового потока становится промежуточная система. Спецификация RTP предусматривает возможность при обработке пакетов данных в мультиплексоре включить в них одно или несколько полей с идентификатором дополнительного источника для обозначения первоначальных отправителей. При мультиплексировании данных из нескольких источников для обозначения номера источника, участвующего в передаче, применяется четырехбитовое поле СС. Растительные экстракты сухие. . beyu
Отсроченное воспроизведение и флуктуационные буферы
Поскольку поток данных, передаваемых в реальном времени, является непрерывным, в программном обеспечении воспроизведения полученных данных должно быть учтено наличие непостоянной задержки (для ее обозначения применяется термин флуктуация), поэтому воспроизведение не может начинаться сразу после поступления данных. Чтобы лучше понять, с чем это связано, рассмотрим, что произойдет, если воспроизведение полученной аудиоинформации будет начинаться немедленно, без какой-либо паузы. Предположим, что программное обеспечение воспроизведения обрабатывает данные из текущего пакета. Если следующий пакет поступит точно в тот же момент, когда программное обеспечение закончит воспроизведение данных из текущего пакета, то воспроизведение продолжится без перерыва. Но если следующий пакет поступит с большей задержкой, воспроизведение должно быть приостановлено до поступления этого пакета. Еще более важно то, что после своего возобновления воспроизведение не может выполняться с самого начала пакета (так как в этом случае станет расти очередь невоспроизведенных данных). Вместо этого воспроизведение должно быть продолжено с того места в пакете, которое соответствует текущему времени. Поэтому слушатель пропустит небольшой фрагмент звукового сигнала, равный увеличению задержки второго пакета, и сразу услышит сигнал, соответствующий тому фрагменту, который был бы воспроизведен полностью, если бы пакет поступил вовремя. Растительные экстракты сухие. . beyu
Поскольку флуктуация является неотъемлемым свойством сети, небольшие отклонения во времени поступления пакетов являются вполне обычными. Для предотвращения появления пропуска в выходном сигнале при каждом увеличении задержки, в программном обеспечении воспроизведения используется эвристический метод, известный под названием отсроченного воспроизведения. При использовании этого метода получатель не начинает воспроизведение сразу после получения первого пакета данных. Вместо этого входящие данные помещаются в буфер. Этот механизм, известный под названием флуктуационного буфера или буфера воспроизведения, действует по принципу очереди. Получатель устанавливает пороговое значение К> превышающее максимальный ожидаемый уровень флуктуации, и устанавливает паузу, достаточную для накопления в буфере объема данных, необходимого для воспроизведения в течение К единиц времени. После накопления в буфере объема данных, соответствующего К единицам времени, начинается воспроизведение и данные извлекаются из буфера с постоянной скоростью. После поступления нового пакета его данные записываются в буфер. При условии, что ни один пакет не имеет дополнительной задержки, превышающей К единиц времени, в буфере всегда находится достаточный объем данных для того, чтобы можно было обеспечить непрерывное и бесперебойное воспроизведение. Этот принцип проиллюстрирован на рис. 28.2. Воспроизведение продолжается непрерывно путем извлечения данных из буфера с постоянной скоростью.
На этом рисунке показано, как происходит воспроизведение в тот момент времени, когда ожидается поступление пакета. До начала воспроизведения в буфере накапливается объем данных, соответствующий К единицам времени. Поэтому если пакеты будут продолжать поступать точно с такой же скоростью, с какой воспроизводятся данные, каждый очередной пакет будет пополнять буфер до общего объема, соответствующего К единицам. Но если какой-то пакет будет двигаться по сети дольше, чем обычно, то программное обеспечение воспроизведения продолжит выбирать данные из буфера до поступления этого пакета. Если же какой-либо из пакетов пройдет по сети быстрее, чем обычно, то на короткое время буфер будет содержать объем данных, соответствующий более чем К единицам времени.