PDA

Просмотр полной версии : Red5. Проблема с duration video.


AlexeiSulga
07.11.2008, 14:38
Приветствую всех,

При разработке "video recorder" столкнулся с проблемой. Metadata duration больше реальной, тоесть при проигрывании flv происходит скачок на 4-15 секунд вперед. Это и во флеш плеере и в RealPlayer. Протестировал на 2 своих приложениях на сервере в нете, а также на стандартном примере http://localhost:8081/red5/demos/simpleRecorder.html

Вот мой код:

private static function attachCamera():void
{
trace("attachCamera");

stream = new NetStream(connectionRTMP);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);

camera.setMode(447, 241, camera.fps);
//camera.setKeyFrameInterval(3);
camera.setQuality(0 , 90);

if (mic != null) {
//mic.rate = 96;
stream.attachAudio(mic);
}
stream.attachCamera(camera);
}
public static function startRecord(e:Event):void
{
stream.publish(fileName, "record");
}


Если убрать stream.attachAudio(mic); баг пропадает.
Кто-нибудь сталкивался с этим?

P.S. google сказал что подобные проблемы возникали только при stream1.publish("name", "append"); вот линк (http://jira.red5.org/browse/APPSERVER-183)

dmitrdv
10.03.2010, 20:45
на одном из форумов находил что скачки происходят из за особенностей записанного видео. Есть так называемые ключевые кадры, они записаны полностью. А все остальные кадры просчитываются относительно ключевых
То есть на самом деле ты не можешь промотать на какой то определенный кадр видео а только на ключевой кадр.

а у меня вот другая проблема - файл пишется но потом при проигрывании его длительность 0. То есть похоже что нет метаданных. Что делать не знаю...

maxlapshin
18.03.2010, 09:45
Может быть ещё вот какая проблема:

flv-файл технически представляет из себя дамп пейлоада одного RTMP нетстрима на диск.

Если сначала открыть нетстрим, подождать и только потом начать писать звук, то получается что первый аудиокадр приедет с временной меткой не 0, а, скажем 2500 мс. Возможно в Red5 есть бага и они не нормализуют этот временной поток. В результате может получиться такой эффект, что при проигрывании файла флеш ждет столько же, какой таймаут до первого кадра, а потом начинает проигрывать.

Если симптомы такие, то можно попробовать http://erlyvideo.org/ там такие проблемы устранены.