NetStream воспроизводится только при полной загрузке - PullRequest
2 голосов
/ 09 февраля 2012

Я искал это некоторое время, и либо мой google-fu слаб, либо пока нет простого ответа ...

Я использую NetStream для потоковой передачи видеофайлаоткуда угодно.NetStream НЕ подключен ни к какому серверу.Вот код:

            // Create new connection and stream
            _netCon = new NetConnection();
            _netCon.connect(null);

            _netStream = new NetStream(_netCon);
            _netStream.client = this;
            _netStream.play(url);

            // Configure video layer
            _videoLayer.attachNetStream(null);
            _videoLayer.attachNetStream(_netStream);
            _videoLayer.width = stage.stageWidth;
            _videoLayer.height = stage.stageHeight;

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

Я пытался поиграться со свойством bufferTime, но безрезультатно.Также убедитесь, что при загрузке видео не задействовано кэширование.Я всегда загружаю «новый», добавляя некоторое значение «bla = date» после URL-адреса.

Возможно ли, что «реальный» поток работает только тогда, когда действительно подключен к серверу?Или я что-то упускаю?

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

Вероятно, он ожидает метаданных - это, безусловно, имело место с видео .h264. Я никогда не слышал, чтобы это было исправлено, так что, вероятно, это не так. Если это ваши файлы, которые вы пытаетесь воспроизвести, используйте что-то вроде ffmpeg, чтобы переместить метаданные в начало файла, но если это не так - вы можете попробовать выполнить потоковую передачу самостоятельно, используя URLStream, а затем передать его на NetStream через appendBytes() (позже я не пробовал, но теоретически это должно быть возможно).

1 голос
/ 09 февраля 2012

Flash очень либерален с поддерживаемыми настройками в FLV, но я не уверен, что это 100%.Что касается netConnection, это довольно стандартно, если только вы не поддерживаете потоковое видео.Вы просто ищете игровое решение, которое буферизует, а затем немедленно воспроизводит видео, а не ждет загрузки всего FLV.Это также в значительной степени самая основная операция объекта netstream.Не просматривая ваш полный код, я могу сказать, что NetStream чрезвычайно глючный и специфический.Возможно, вы все делаете правильно, но в несколько неправильном порядке.Или, может быть, вы слушаете события, которые не существуют, потому что NetStream вместо этого использует обратные вызовы.

Вот два сообщения в блоге, которые я написал, которые более подробно рассматривают проблемы NetStream и Video, и что я сделал, чтобы решить их в последний развремя.Они могут пролить некоторый свет на то, где ваша установка сбивается с пути.

NetStream Sucks

Проигрыватель потокового видео

0 голосов
/ 07 марта 2012

Чтобы прояснить ситуацию:

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

Спасибо за помощь!

...