Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Flash API для декодирования H.264 и AAC (http://www.flasher.ru/forum/showthread.php?t=196268)

prrt 21.03.2013 20:44

Flash API для декодирования H.264 и AAC
 
В интервью с создателем JW плеера, он говорит, что при проигрывании видео по протоколу HLS на стационарных компьютерах, они cперва сами парсят TS пакеты, а потом используют Flash API для декодирования H.264 (если я правильно понял).

Получается, что при разработке флеш-плеера можно предварительно как угодно обрабатывать входящий HTTP поток либо на AS 3.0, либо на JavaScript и выделять из него чистый H.264 и AAC? А затем использовать Flash API непосредственно для проигрывания? Если так, то что это за API? Где о нем прочитать и как сделать связку из своего обработчика потока с этим API?

alatar 21.03.2013 20:51

NetStream#appendBytes()

prrt 21.03.2013 21:02

alatar,
Там указано:
Цитата:

Анализатор байт распознает FLV-файл с заголовком.
В данном случае это не flv файл, это будет отдельно h.264 поток и отдельно AAC поток, без какого бы то ни было контейнера.

alatar 21.03.2013 21:35

Сначала придется скормить заголовок, потом уже данные. По другому, насколько мне известно, никак. Это и есть API для декодирования.

prrt 21.03.2013 21:42

flv - это же контейнер. Т.е. там h.264 и AAC еще обернуты кучей управляющих данных по спецификации flv. Когда мы проигрываем HLS и парсим TS пакеты, ничего этого не будет. Apple c Adobe не дружат, а HLS - это протокол от Apple.

Если есть только это API, то возникает вопрос - как в JW умудрились сделать проигрывание HLS?

alatar 21.03.2013 22:00

Как-то так + вот так.

prrt 21.03.2013 22:36

О, это уже интересно. Надо будет поразбираться. Только я сам подход не совсем понимаю. Это мы в плеере сперва открываем http соединение с источником потока (точно также как если бы просто какой-нибудь конф. файл подгружали). Получаем TS пакет в буфер. Парсим этот буфер, выделяем аудио и видео данные. И снова их муксуем уже в flv согласно flv спецификации, и затем через appendBytes() проигрываем его как flv.
Так?
Просто я при беглом просмотре кода по указанным ссылкам не обнаружил кода, отвечающего за формирование flv из аудио и видео данных...

alatar 21.03.2013 23:43

Так.
Посмотрите методы в которых вызывается attemptAppendBytes()


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

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