Как загрузить ByteArray FLV в OSMF? - PullRequest
3 голосов
/ 20 октября 2011

Я работаю над локальным приложением (это не веб-сайт или ничего не связано), и у меня есть различные FLV с очень простым методом шифрования (точно так же, как добавление 10 в каждый байт).

Я могу загрузить / воспроизвести их, используя NetStream.appendBytes () после расшифровки, но это происходит только после того, как я прочитал все видеоданные, которые не в потоковом режиме.

Что мне действительно нужно, так это потоковое видео с удаленного URL-адреса и расшифровка при получении данных с помощью проигрывателя на базе OSMF, который я уже построил. Я заблудился от того, как OSMF работает с FLV, в противном случае я бы попытался создать плагин или что-то в этом роде. Я был бы очень благодарен, если бы кто-то указал мне, как справиться с этим.

Но я был бы рад, если бы кто-нибудь помог мне найти способ загрузить локальный файл, используя OSMF, передавая значение ByteArray вместо url (ниже). Или даже дать мне указания по созданию плагина OSMF для решения моей проблемы.

videoElement.resource = "video_url/video.flv";

Это мой текущий код только для воспроизведения моего декодированного массива FLV

private function playBytes(bytes:ByteArray):void 
{
            // detecting it's header
            if (bytes.readUTFBytes(3) != "FLV")
            {
                _text.appendText("\nFile \""+ file +"\" is not a FLV")
                return void;
            }

            bytes.position = 0;
            netConnection.connect(null);
            netStream = new NetStream(netConnection);
            netStream.client = { onMetaData:function(obj:Object):void { } }
            video.attachNetStream(netStream);

            addChild(video); 


            // put the NetStream class into Data Generation mode
            netStream.play(null);
            // before appending new bytes, reset the position to the beginning
            netStream.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
            // append the FLV video bytes
            netStream.appendBytes(bytes);
}

1 Ответ

1 голос
/ 20 октября 2011

Интересный пост, мне было бы интересно увидеть ответ.Глядя на что-то похожее, но не с потоком, я наткнулся на следующее:

http://ntt.cc/2008/07/15/bitsreader-read-bits-from-given-bytearray.html

После прохождения массива байтов вы можете использовать бит.read (8) избитовый массив.Возможно, это отправит вас по правильному пути?В противном случае, я думаю, вам нужно разбить его на части и, по сути, сделать небольшие секции для буферизации, чтобы объединить все буферизованные данные ...

Просто мысль,

...