Задержка связи Red5

Я создал приложение записи потока Red5, которое записывает камеру и микрофон клиента. Он записывает поток NetStream.publish("streamname","live") и вызывает удаленный вызов, который начинает его запись. Проблема в том, что после того, как клиент вызывает удаленный метод startRecording и сервер начинает запись потока, вся коммуникация тормозится и имеет большую задержку, часто полминуты! Из подтормаживаний все имеет длительные задержки даже удаленные звонки. На локальном хосте работает хорошо. В чем проблема?


person haxpanel    schedule 15.10.2012    source источник


Ответы (1)


Возможно, вам потребуется запустить новый поток для обработки записи на стороне сервера. У нас были похожие проблемы, и мы решили их, добавив StreamListener в поток, который работает в своем собственном потоке и использует конструкцию, подобную: http://en.wikipedia.org/wiki/Semaphore_%28programming%29 для сбора всех пакетов и записи их на диск независимо от логики приложения red5.

Таким образом, мы смогли решить проблемы с производительностью при записи на стороне сервера.

Себастьян

person seba.wagner    schedule 15.10.2012
comment
Может быть, семафор звучит немного академично, на самом деле это просто очередь, которая собирает пакеты. Дело в том, что: начать запись в новой теме! - person seba.wagner; 15.10.2012
comment
Хорошо, я попытался создать класс, реализующий Runnable, и поместить stream.start в run(), но я думаю, что это неправильный подход..:) - person haxpanel; 15.10.2012
comment
см. мой ответ о подходе здесь: stackoverflow.com/a/12901336/1448704 - person seba.wagner; 15.10.2012
comment
Спасибо, теперь в моем приложении Red5 нет задержки! ;) - person haxpanel; 16.10.2012