Pull to refresh

Comments 74

А меня всегда умиляют в постах про *nix софт ссылки для скачивания.
Все равно все пользуются пакетными менеджерами. Я, по крайней мере, искренне в это верю.
А пусть не умиляет, далеко не все дистрибы имеют репо, где собирают последние версии софта. А в репах по умолчанию в принципе такого софта нет.
Гигантского количества софта нет в репах, даже дополнительных, например вчера пытался найти репу для центоса с gpac.
Вон в убунте к примеру до сих пор в репах лежит eclipse 3.5. А eclipse 3.7 там ещё года два ждать придётся. Так что легче скачать с сайта и вперёд.
согл
я часто использую сырцы а не репы…
но кто интересуется nginx, однозначно знает откуда надо качать
… сырцы чтобы сделать пакеты
Наконец-то!
Ждем массвого прибавления tube-сайтов ))
А все tube сайты разве не flv стримят?
Большое видео все в mp4
flv это контейнер.
внутри него может быть такой же x264 как и в mp4.
и разницы в размере между mp4 с x264 и flv с x264 ничтожно мала.

А геморроя со стриммингом mp4 в сравнении с flv в разы больше.

Возможно с появлением этого модуля в nginx ситуация изменится, правда не совсем понимаю зачем.

Никаких преимуществ в использовании mp4 как контейнера перед flv я не нашел.

Если кто то обладает такой информацией поделитесь.
Разные звуковые дорожки? Субтитры? Добавление в тунец?
Возможно я чего то не знаю, мы сейчас же говорим об онлайн стриминге?
А не о сравнении контейнеров как таковых верно?

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

поправьте меня.
А почему вы решили что не участвует? Вроде никто не запрещает смотреть на любом языке и использовать субтитры если ты язык не понимаешь.
Чем для юзера по большей то части отличается онлайн стриминг от просмотра скачанного файла? Только тем что онлайн это сразу, а скачать надо подождать.
Ну он умеет переключать звуковые дорожки и выбирать нужные субтитры, умеет расширятся на весь экран, остальное для 99 процентов юзеров не нужно.
Умеет переключать звуковые дорожки? Вы уверены? Я недавно как раз занимался исследованием этой темы, о подобной возможности никто не слышал. Что-то за последнее время поменялось? А то даже были мысли отдельно отдавать звук в роликах, чтобы не хранить для каждой звуковой дорожки еще и копию видеопотока для просмотра онлайн?
Не уверен, как сделаю стриминг у себя скажу точно.
Будет очень круто, если у вас получится. Сразу масса проблем отпадет;)
muzunga.tv — у них flash плеер умеет переключать и звуковые дорожки и субтитры.
У меня тоже умеет;) Но у меня просто хранятся несколько копий файлов. Видео одно и тоже, что на ровном месте увеличивает расход свободного места.
Сабы можно и без разного видео переключать, а вот язык что то смотрю все копию файла держат.
Сабы вообще стараются хранить отдельно и отдельно кормить плееру. Так намного проще.
вы просто не в курсе. erlyvideo может отдавать разные звуковые дорожки и субтитры подключенным клиентам.
Из отдельных файлов или если они зашиты в один mp4?
их одного файла. Выбирается нужная дорожка и проигрывается.
то-же видео, без перекодирования можно использовать для девайсов, типа iphone.
> Никаких преимуществ в использовании mp4 как контейнера перед flv я не нашел.

Я вижу минимум одно — если у вас видеосервис поддерживает HTML5 и Flash, то вам приходится держать видео в трех форматах — webm, mp4 и flv, если у вас сервер Nginx и нет стриминга для mp4 (по разным причинам).

Теперь же можно оставить только mp4 и webm, экономия места на лицо.
очень просто. Если вы взяли h264/aac и запаковали это в flv, то с 95% вероятностью вы потеряли этот контент для Apple устройств.

HLS _требует_ разрешения времени большего, чем дает flv. В адобовском формате требуются миллисекунды, а в MPEG-TS счет идет на доли микросекунды, соответственно если вы попробуете без дополнительных мер порезать свой flv контент, то получите квавающий звук и дергающееся видео.

Спасибо эпплу за хороший код, а адобу за удачный дизайн.
Замечательная новость! как раз думал разделить контент сайта на два сервера… в тему то как :)
Наконец, появился модуль который не будет падать при включении AIO?
Я дико извиняюсь, но не могли бы вы пояснить людям не столь приближенным к тонкой настройке nginx в чем собственно заключается сказка? Хоть какие-то цифры, сравнения или примеры.
А у вас есть какие то проблемы со стримингом mp4? Сказка в нативном стриминге mp4.
У меня пока таких проблем нет
Ну разве это не сказка?
Вот после этого я проникся )
На мой взгляд с выходом HTTP Dynamic Streaming больше года назад для Flash проблема подбора медиа сервера отпала. Можно собрать схему для отдачи видео контента при помощи Apache (получение сегментов из файла) и NGINX (кеширующий proxy) — в итоге получается надежное и бесплатное решение с неограниченными возможностями масштабирования. Apache вытягивает чанки, а NGINX их очень быстро раздает из своих кешей.

Вот если бы Adobe для NGINX написала такой модуль :-) Можно было бы обойтись одним веб сервером.
Уж что то а держать апачи на сервере грешно, если конечно у вас не 10 пользователей онлайн.
Оно и раньше было бесплатное стоит нгинкс и стримит mp4 без всяких апач.
Сколько вы думаете гигабит потянет ваша связка на апаче + nginx на одном сервере?
И вообще не представляют как там хорошо сможет кешироваться в nginx куски mp4.
Они отлично кешируются в NGINX. Творение Сысоева очень хорошо кеширует все, что через него проходит :-) По сути это HTTP payload размеров в пару мегабайт.
Не понимаю например у меня 100 террабайт видео, ну скажем одинаково популярных кусков 1 террабайт, куда nginx их закеширует?
Когда мелкое файло все понятно, с крупным я не вижу хороших механизмов кеширования, чтобы они давали хороший выхлоп.
Почему связка с апачи должна быть быстрее чем просто nginx?
Просто NGINX отдает файл лишь после полной загрузки / считывания. Могу ошибаться, но насколько я помню около года назад было именно так.

Apache модуль решает эту проблему и отдает кусок файла без его полного считывания.

Но это даже не самая главная причина. HTTP DS формат видео опубликованный Adobe — F4V — разбирается лишь их модулем для Apache. Поэтому все его и используют.

PS
Куски делают по несколько мегабайт. Если у Вас 100 Тб видео, то для эффективного кеширования и доставки не с системы хранения данных, а из кешей, Вам нужно много NGINX серверов с суммарным объемом жестких дисков 100 Тб.
Не встречал вебсервера, которые бы не могли отдать кусок файла произвольно.
Модуль апачи как и в nginx решает проблему перехода на произвольный кусок файла не по номеру байта, а по заданной секунде воспроизведения, то есть включает перемотку в произвольное место во флешплеере и переход к нужному ключевому кадру.
Кто именно всего его использует то? Просто я не встречал таких в природе пока что.
А почему я не могу сделать все на одном сервере? Ведь это дешевле чем много серверов? Можете привести пример как именно nginx кеширует отдачу по ключевым кадрам mp4? Я просто не понимаю этот механизм.
Например Now.ru и Videomore.ru

Тут есть подробное описание как работает в NGINX эта схема: goo.gl/01oH9
На видеоморе видео порезано на мелкие куски, зачем это надо?
На нау куплю вечером подписку посмотрю как они сделали.
А это как раз и сделано для HTTP Dynamic Streaming. Где то даже на хабре была статья на эту тему. Прежде всего это дает возможность динамически переключать качество при переходе на следующий кусок. Ну и кусками управлять в кешах легко. В кеше оседают самые популярные куски только.
Ну а что мешает без кусков переключать качество?
По вашей ссылке в кешу нгинкса вообще куски по 4к, не уверен что там будут самые лучшие куски и это лучшая политика кеширования.
Попробую настроить это на nginx и посмотреть что вывалится в nginx.
По идее ничего не мешает. Просто в стандартных Framework'ах для Flash Player'а не реализована работа с динамическими потоками при передаче через HTTP PD. OSMF — который продвигается Adobe как основное средство для создания видео плееров, да и Strobe Media Playback — видео плеер Adobe на базе OSMF, поддерживают переключение качества лишь при HTTP DS.

Хотя никто не мешает сделать свой фреймворк и реализовать работу с переключением качества и при HTTP PD передаче.
По моему по обзорам все популярные флешплееры поддерживают переключение чего угодно.
Я в последнее время стараюсь использовать Strobe Media Playback. В него Adobe добавляет самые последние фичи и относительно оперативно баги правит.

Хотя конечно JW и другие тоже очень даже хороши и действительно поддерживают всякие варианты переключения. Началось это все после того, как Adobe в AS3 опубликовала возможность добавлять байты в мультимедиа поток (NetStream). Теперь видео можно хоть по сокету получать, хоть по P2P сети. Flash Player все отобразит.
А разные звуковые дорожки вы как держите?
Выше в комментариях написано что приходится держать два файла и по сути удвоение размера для наличия двух дорожек.
Да. Есть такая проблема. Точнее была :-)

Она решена в последней версии OSMF — 1.6 (т.е. на стороне видео плеера), но требует использования HTTP DS на уровне сервера. Позволяет в плеере переключаться между разными аудио дорожками и не нужно хранить видео под каждую дорожку. Думаю дня через три в нашем блоге будет подробный отчет как это сделать с примерами кода видео плеера.

Если нужно решить срочно, то поищите на тему late binding audio.
sourceforge.net/apps/mediawiki/osmf.adobe/index.php?title=Late-Binding_Audio
В профиле указан их проект.
Только что в блог закинул статью про реализацию поддержки аудио дорожек. Реализация не самая технически продвинутая, но зато простая и эффективная. Статья в нашем блоге
100 земляных байт, круто.
Их на самом деле 123
«Их» на самом деле теРабайт.
У меня дёргается левый глаз, когда я вижу это убожество.
Войны, линуксойды и террабайты должны сдохнуть в мучениях.
Такая связка тянет десятки гигабит (не на одном сервере конечно). Adobe опубликовала бесплатный HTTP Dynamic Streaming модуль лишь для Apache. Такую архитектуру используют очень многие проекты. Например, BBC в своем блоге описывает процесс тестирования HD трансляций на основе HTTP DS доставки. Они используют Apache.

Кстати, Apache вовсе не обязательно высовывать наружу. Он может висеть на внутреннем порту или вообще во внутренней подсети.
Вопрос тут в опыте, а не в том что кто то рассказывает.
Многие популярные российские ресурсы используют HTTP DS. Это можно увидеть в FireBug'е.
Я недавно смотрел некоторые онлайн кинотеатры, везде nginx воткнут с модулем стриминга mp4.
В частности один из самых популярных ruhd.tv
А я как раз вчера/сегодня собрал 1.0.6 со сторонним модулем, не дождался… :-D
Ну у вас то стабильная ветка, а там еще нет. Так что наверняка будут еще баги, все-таки только появилось.
Есть патч для старых версий, чтобы включить нативный модуль в них.
UFO just landed and posted this here
Так оно уже давно пилится. Посмотрите общение в списках рассылки nginx.
Глядя на модуль ngx_http_mp4_module, думается что по всей видимости скоро и вместо радио-сервера(типа Icecast2/Shoutcast) можно будет использовать любимый nginx.
Я и так сейчас nginx'ом проксирую потоки Icecast'а, подставляю в юзерагент еще и город, страну через модуль geoip.
Думаю можт взяться и написать модуль Icecast для nginx чтобы nginx сам стал радиосервером и соответсвовал стандартам протокола Icecast.
Попробовали на одном из проектов, столкнулись с проблемой, что плеер начал проигрывать файл после полной загрузки. Ничего страшного для небольшого ролика и широких каналов, но когда речь идет о 100 мб и более время ожидания превращается в критичное… Пришлось вернуться к старым добрым костылям.
Я с такой проблемой не встретился, отпишите баг репорт Сысоеву.
Sign up to leave a comment.

Articles