Category: музыка

Category was added automatically. Read all entries about "музыка".

Будни техподдержки

Обратился за помощью клиент, который у нас не просто подписан на пачку лицензий, а ещё и на платной техподдержке.

У них странная проблема: после запуска флюссоника моментально съедаются все ядра и потребление памяти растет с такой скоростью, что 30 гигабайт примерно за 100-120 секунд заканчиваются и флюссоник падает. Точнее сначала был включен своп, а с ним очень весело: пока он включен, программа не может умереть, потому что всё постоянно свопится.

Запускаю флюссоник в foreground, память жрется быстро, но в ets таблицах утечек нет, там всё по минимуму. Выключаю все каналы, запускаю заново, всё работает. По одному запускаю каналы и нахожу тот, после включения которого всё падает.

Collapse )

Таймлайн архива в Эрливидео и новый плеер

Интерфейс доступа к видео архиву



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

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

Collapse )



Новый плеер



Для того, что бы рассказать про новый плеер, надо пояснить, зачем вообще нам понадобился новый плеер.
Длительное время использовался механизм, предоставляющий доступ к фрагменту архива как к файлу. Человек выделял мышкой интересующую зону на карте записи и просматривал эту зону с началом и концом. Эта схема достаточно удобна тем, что перемотка осуществляется внутри плеера и работает достаточно быстро.

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

Collapse )

Краткая подборка информации по видео в интернете

Я решил структурировать свои заметки про видео в цикле статей.

Структура будет следующая и открыта к обсуждению. Буду вносить в оглавление дополнительные разделы по мере запросов, потом начну вносить статьи в виде ссылок.

Collapse )

HTTP streaming

Ещё года три назад термин «HTTP стриминг» использовался либо с технической ошибкой либо про передачу MPEG-TS потока по HTTP.

Оставим в стороне передачу эфирного MPEG-TS по HTTP, главное что надо понимать: такой поток на веб-страничке просто так уже не покажешь.

О какой же технической ошибке шла речь? Дело в том, что псевдо-стриминг и стриминг всё таки разные вещи. Долгие годы многие нужды tube-сайтов закрывались простой функциональностью веб-сервера nginx под названием flv-стриминг.

Collapse )

Erlyvideo updating

Сегодня мы запустили во внутреннюю эксплуатацию (в моём собственном проекте и паре клиентских) новую версию эрливидео — софт под кодовым названием flussonic.

В нём вообще отсутствует отдача видео по RTMP, только HTTP вещание: Adobe HDS и Apple HLS.

Цель простая: сохраняя удобство работы, добиться устойчивого вещания на 10 гбитах.

С RTMP нам не по пути. Основная проблема этого протокола — концептуальная из которой растут все остальные. В RTMP стеке есть два плеера: один на клиенте, другой на сервере.

В HTTP вещании есть только один плеер — на клиенте. Всё остальное типа порт 1935 закрыт — инфраструктурные тонкости.

В частности, у нас уже работает мультибитрейт. Уже. Без проблем.

Collapse )

Но самое интересное в том, как я хочу его распространять. Модель с продажами лицензии сложна и неудобна.

Скорее всего буду рассматривать два варианта:
1) аренда через Amazon или Parallels APS через партнерские хостинги;
2) модель с подписыванием на абонентскую техподдержку.

Немножко про захват звука

У меня есть задача: захватить видео и аудио под линуксом. С этим оказалась проблема.

Но сначала небольшое введение для тех, кто знает про это ещё меньше моего. Звук в компьютере представляется семплов. 48 тыс раз в секунду (или сколько вы выставили в настройках Sample Rate) происходит опрос микрофона: какой уровень сигнала?

Эти замеры происходят очень, очень однородно во времени. Если включить видеоплату на год, то через год будет 48000*3600*24*365 семплов. На этой однородности основана плавность проигрывания звука.

Проигрыватель вычисляет время потока так же вычисляет время: Count / 48000.

Collapse )

HTTP File streaming

В erlyvideo есть работающий и опробованный механизм, позволяющий проигрывать файлы по HTTP, используя Range запросы. Первая версия кода была сделана ещё давно, во время моего hackday, однако в ней очень много чего не хватало и не было доработано.

Теперь же, этот код умеет даже ходить к закрытым бакетам на Amazon S3 и ведет себя очень-очень похоже на модуль file в функциях open/2 и pread/3.

Сам код закрыт и распространяется либо на Amazon EC2 инстансах эрливидео, либо с модулем серверного плейлиста, о котором позже.

Чем плох Apple HTTP LiveStreaming

При разработке айфона Apple решила спроектировать и реализовать свой протокол для передачи видео. Несмотря на то, что существует масса протоколов: RTSP, MPEG-TS, HTTP (раздача файлов), RTMP, все они имеют какие-то слабые стороны. Все не-HTTP протоколы объединяет одна общая проблема: они режутся корпоративными файрволами и плохо переносят сильные флуктуации качества интернета.

Раздача файлов по HTTP имеет другую проблему: либо невозможность просмотра прямого эфира, либо отсутствие перемотки по потоку/файлу. Т.е. либо раздаем поток как flv-файл (endless http streaming), либо раздаем mp4 и тогда никакого прямого эфира.
Collapse )

сравнение NeroAACEnc и libfaac

Меньше слов, больше цифр. Сравниваем WAV, MP3, FAAC и NeroAAC. libfaac — это бесплатная библиотека, которая честно признается в своём невысоком качестве. NeroAAC — это полубесплатный энкодер от Неро. MP3 дрянного качества, скачан из вконтакта, проверим можно ли сэкономить объеме.

WAV37MB1,4Mbit
MP34MB160 Kbit
FAAC -ab 1280003.4MB128 Kbit
FAAC -ab 640001.7MB64 Kbit
FAAC -ab 320001.6MB62 Kbit
Nero -q 0.201.3MB50 Kbit
Nero -q 0.150.9MB34 Kbit
Nero -q 0.100.6MB25 Kbit
Nero -q 0.050.4MB16 Kbit
AACP 320.9MB27 Kbit
AACP 160.5MB19 Kbit


Nero умудряется без фатальной потери качества (результат в 16kbit сгодится для новостных передач/подкастов и нетребовательных радиослушателей) уменьшить в 100 раз. libfaac практически ничем не отличается от mp3, поэтому по сути ценен лишь для смены кодека для устройств, не умеющих жевать mp3.

Есть только одна проблема: Nero только на 32 битах и не встраивается библиотекой.

UPD: мне указали на aacplusenc. Пожалуй, это оптимальный вариант, потому что дает сжатие сравнимое с Nero, равно как и качество, но при этом это библиотека с открытыми исходниками и не-GPL лицензией.

(no subject)

Вырисовывается очередной план рефакторинга структуры erlyvideo.

Сначала чтение файла происходило из одного процесса, который обслуживал RTMP соединение. Этого хватало для первичного запуска, но быстро стало неудобно.

Потом получилась структура, когда есть stream_media, есть file_media и клиент либо пассивно подписывается на stream_media, либо активно тащит данные из file_media. В последствии задача активного вытаскивания была вынесена наружу и получилось возможным раздавать файлы на айфон.

Collapse )