Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Задержка при просмотре FLV файла с HTTP сервера (http://www.flasher.ru/forum/showthread.php?t=139395)

NS11111 29.04.2010 19:50

Задержка при просмотре FLV файла с HTTP сервера
 
Привет всем.

Вот проигрываю видеофайл с HTTP сервера.

nc.connect(null);
...
ns.play("http://myserver/a24.flv");

Но он не сразу проигрывается,
а после огромной задержки.
Скорее читает весь файл сначала.
Как это избежать?
Установка ns.bufferTime=2 не помогает.

Спасибо.

mooncar 29.04.2010 20:14

Во первых, нужно так:
Код AS1/AS2:

ns.setBufferTime(2);

поскольку bufferTime - это свойство компонента FLVPlayback, а не потока: FLVPlayback.bufferTime

Далее, чтобы не гадать , что у вас там происходит, отслеживайте статусы потока:
Код AS1/AS2:

ns.onStatus = function(infoObject:Object) 
{
        trace('NetStream.onStatus called: (' + getTimer() +' ms)');
        for (var prop in infoObject)
        {
                trace('\t' + prop+ ':\t' + infoObject[prop]);
                //если без trace надо обойтись, тогда на сцене  динамическое поле нарисуйте, и:
                status_tf.text = infoObject[prop];
        }
};

Для отладки также можно смотреть наполняемость буфера:
Код AS1/AS2:

this.onEnterFrame = function () 
{
        buffer_tf.text = ns.bufferLength ;
};


NS11111 02.05.2010 06:30

Ну, буду я отслеживать статус потока,
ну, буду знать наполняемость буфера,
но чем это поможет мне избежать задержки перед проигрыванием файла.
Какие действия предпринять?

Насчет ns.setBufferTime(2) - в netstream нет такого свойства в ActionScript 3.0.
>поскольку bufferTime - это свойство компонента FLVPlayback,
>а не потока: FLVPlayback.bufferTime
Не понял.
Если "setBufferTime(2)", то где это прописывать?


Спасибо.

mooncar 02.05.2010 10:21

Я имео ввиду AS2.
Цитата:

Сообщение от NS11111 (Сообщение 905383)
Ну, буду я отслеживать статус потока,
ну, буду знать наполняемость буфера,
но чем это поможет мне избежать задержки перед проигрыванием файла.

Избежать поможет не само знание, а выводы.
Видео должно начать проигрываться сразу же после достаточного заполнения буфера.
Поэтому посмотрите, как это происходит. То есть на каком этапе возникает задержка.
Связано ли это с медленным наполнением буфера, или же буфер уже полон, а воспроизведение отчего-то не стартует.
То, что я привел - это просто инструменты для отслеживания ситуации, если у вас AS2, не знаю, годится ли это для AS3, если вы его юзаете. Наверняка, там есть нечто аналогичное.
Цитата:

Сообщение от NS11111 (Сообщение 905383)
Если "setBufferTime(2)", то где это прописывать?

Сразу после создания потока.

NS11111 03.05.2010 06:44

Спасибо за участие.
Только не всё ясно из ответов.

Я спрашивал:
"Если "setBufferTime(2)", то где это прописывать?"

Я имел ввиду для какого объекта.
В netStream этого свойства нет.
Я работаю в AS3

>Видео должно начать проигрываться сразу же после
>достаточного заполнения буфера.
>Поэтому посмотрите, как это происходит.
>То есть на каком этапе возникает задержка.

У меня событие
NetStream.Buffer.Full происходит примерно
через 11 секунд для файла длиной 750 kb (время проигрывания его около 25 секунд - ).
Я посмотрел - столько же времени у меня файл скачивается с сервера по FTP.
А наполнить буфер для 2 заданных секунд - это 1 секунда должна быть
(задано ns.bufferTime=2).
Явно скачивается весь файл сначала.

Спасибо!

mooncar 03.05.2010 10:27

Хотя я с видео дело имею, но AS3 я не пока не владею, поэтому только удачи вам пожелаю разобраться с проблемой. Наверняка корни проблемы растут извне самой флешки.

NS11111 05.05.2010 06:54

Я видел в английском форуме человек жаловался на ту же проблему.
Но без ответов.

Скорее всего глухо.
А очень жаль.
Приходится платить за медиасервер.
А так c HTTP сервера проигрывать как было бы здорово...

Rzer 05.05.2010 19:31

Попробуй другой видео файл (например с youtube). Я не уверен, но возможно причина в том, что видео файл не потоковый.

NS11111 09.05.2010 14:34

Вообще-то я создал FLV файл Adobe Encoder-ом, что установился вместе с
Adobe CS4. C сервера FMS 3.5 (локального и в интернете) файл проигрываются без проблем.
Кстати, не понял, как запомнить файл с youtube. Может , это и нельзя сделать
без video capture программ.

NataZatsepova 21.05.2010 11:57

Задержка при просмотре FLV файла с HTTP сервера
 
Есть ку когото скрипт для генерации зашифрованого кода видеоссылки flv, проще говоря мне нужна так сделать так чтоб видео можно было смотреть только на моих сайтах,помогите мне советом как это сделать ?


Часовой пояс GMT +4, время: 16:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.