LINUX.ORG.RU

Потоковая трансляция видео с помощью icecast и ezstream


0

0

Эта статья описывает запуск простого сервера для трансляции видео. Всё описаное в статье проделано её автором с целью эксперимента и только эксперимента. Хотя практическое использование и не исключается (автору это просто не было нужно:)).

Упор в статье сделан на дистрибутивы Gentoo и Mandriva, однако практически всё написаное применимо и к другим дистрибутивам.

В качестве основы используется связка icecast+ezstream. Трансляция идёт в формате ogg с кодеком theora.

Отдельное внимание уделено установке ezstream в Gentoo, где в официальном дереве отстутствует ebuild для него.

>>> Статья

> Отдельное внимание уделено установке ezstream в Gentoo, где в официальном дереве отстутствует ebuild для него.

В Gentoo нет ebuild для какой-то софтины? Не верю!

atrus ★★★★★
()
Ответ на: комментарий от atrus

> В Gentoo нет ebuild для какой-то софтины? Не верю!

Он есть... Тока версия неприлично древняя, и не работает так как надо:)

MooSE ★★★★
() автор топика

> Эта конструкция испытывалась на двух системах - двухядреный AthlonXP 2600 Mhz, с 512MB оперативной памяти, и двухядерном Xeon 2400Mhz с 2GB оперативной памяти. В обоих случаях система потребялала примерно 60-80% процессорного времени одного из ядер.

пипец. А просто стримить без перекодировки уже религия не позволяет? ;)

JB ★★★★★
()
Ответ на: комментарий от thresh

хотя проблема наверняка в том, что icecast не в ogg вещать не умеет, а theora -- единственное, что можно туда засунуть из видео. Ну или snow еще, но это совсем экзотика.

В общем, для видеовещания это явно не подходит.

thresh ★★★
()

> описаное

нн

> написаное

нн

> пройденый

нн

> Далее настраиваемаем настраиваем его.

?

> В Gentoo несколько сложнее

пропущено тире

> отсуствтует

опечатка

> установленый

нн

> содеражния

опечатка

> Учтите что трансляция

пропущена запятая

> формате ogg, с использованием кодека theora.

лишняя запятая

> Если вы хотите увеличить разрешение потока - обратите внимание

запятая вместо тире

> двухядреный

это, типа, шутка?

> система потребялала

не хотел бы я при этом присутствовать

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

AP ★★★★★
()
Ответ на: комментарий от JB

> пипец. А просто стримить без перекодировки уже религия не позволяет? ;)

Нет. Разные исходные кодеки, разные разрешения, нестабильный битрейт.. Нужно перекодировать во что-то одно, конкретное, с жесткими ограничениями по битрейту. То же стриминг.

anonymous
()

Статья недоступна :(( Лорэффект? :))

anonymous
()

>Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (11) in /home/ylsoftware/domains/www/index.php on line 5 Can't connect to MySQL-server

Да-ас-с. Надо бы починить. Интересно же почитать.

RADO
()

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (11) in /home/ylsoftware/domains/www/index.php on line 5 Can't connect to MySQL-server

Статика рулит.

MYSQL как самый быстрый сервер, как тут говорят тоже рулит. До ближайшей стены.

kilolife ★★★★★
()

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (11) in /home/ylsoftware/domains/www/index.php on line 5
Can't connect to MySQL-server

Мдяяя....почитал статейку...

iron ★★★★★
()

Ну вот кому этот серв помешал? :)) ну была там статейка интересная но зачем на ЛОР постить, зачем бедный серв досить? :)))

anonymous
()
Ответ на: комментарий от AP

Если уж такой крутой лингвист, то в слове "установленНый" тоже опечатка.

anonymous
()
Ответ на: комментарий от kiwirus

> Самое простое будет использовать vlc :)

Ну я и не говорил что моё решение лучше. Просто увидел случайно что айскаст поддерживает видео-стриминг и решил попрактиковаться...

MooSE ★★★★
() автор топика
Ответ на: комментарий от MooSE

XML конфиги этож пипец как человекодружелюбно, чем вам S-expression или YAML или braced или стандартный INI не угодили? Нафига продавливаете недобыдлоформатные языки? Идиотизм в наших рядах шириться с ростом числа юзеров. XML не везде хорош.

alx_me ★★☆
()
Ответ на: комментарий от alx_me

> XML конфиги этож пипец как человекодружелюбно, чем вам S-expression или YAML или braced или стандартный INI не угодили? Нафига продавливаете недобыдлоформатные языки? Идиотизм в наших рядах шириться с ростом числа юзеров. XML не везде хорош.

1. Мне XML так не противен как тебе. Меня он вполне устраивает.

2. Не нравится - пиши свой софт со своим форматом конфигов.

MooSE ★★★★
() автор топика
Ответ на: комментарий от MooSE

> 1. Мне XML так не противен как тебе. Меня он вполне устраивает. > 2. Не нравится - пиши свой софт со своим форматом конфигов.

Дел вовсе не в противности, дело в том что его суют сезде где надо и не надо. ВАМ так не кажется?

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

ВЫ то сами я вижу много софта написали и хочется узнать у знатока, как вы оцените красоту нижеследующих идентичных конфигурационных файлов различных систем на примере fstab: # <file system> <mnt.pnt> <type> <options> <dump> <pass> /dev/hda1 / ext3 defaults,errors=remount-ro 0 1

XML: <mount> <device>/dev/hda1</device> <point>/</point> <type>ext3</type> <errors>remount-ro</errors> <dump>0</dump> <pass>1</pass> </mount> S-expression: (mount (device '/dev/hda1) (point '/) (type 'ext3) (errors 'remount-ro) (dump 0) (pass 1) ) Braced: mount{ device = "/dev/hda1", point = "/", type = "ext3", errors = "remount-ro", dump = 0, pass = 1, } Неужели XML роднее?

alx_me ★★☆
()
Ответ на: комментарий от MooSE

MooSE, спасибо за статейку - на досуге тоже испробую. Хотя сам лично предпочитаю вещать через vlc малтикастом (вместо юникаста, как в приведённом тобой примере) - нагрузка на сетку, знаешь ли, поменьше. ;) Хотя и требует для включения на кошках PIM, на ДСЛАМ-ах IGMP Snooping. Сигнал беру с тарелки Хотбёрдовской, 4 карты SkyStar2 - соответственно, залочка на 4 транспондера. Гнал в потоке около 20 каналов, поток был около 60 МБит. Но не перекодировал. ОС - Gentoo. Кстати. Ещё недавно подцепил кард-шаринг. РТВИ, например, шёл без тормозов. Только тссс. ;) Пиратство ведь.

anonymous
()

отлично! а не дано сначала все оптом перекодить в то, в чем будем стримить, а потом стримить с минимальными затратами?

Ладно. Теперь после такой статьи можно открывать свое "дойчен портно" онлайн тв.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от alx_me

Мне XML более нравится. В неё отдельные параметры лучше друг от друга отделены. Оно более читабельно.

MooSE ★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

По затратам - тоже самое. Но не так удобно.

MooSE ★★★★
() автор топика

>Gentoo, где в официальном дереве отстутствует ebuild для него.

ешё один автор перед написанием сатьи не сделал ибилд

yurikoles ★★★
()

Все же хочется узнать, такие моменты:

1. Почему не vlc?
2. Любой плеер, поддерживающий theora, это сожрет?
3. Если заранее перекодировать фильм, можно ли пускать без перекодировки?
4. Пробовали ли вы перекодировать передачи прямо с тюнера? Что кушает пациент по ресурсам?
5. Какая по ширине полоса используется для вещания?
6. Если p2p делать, нагрузка на сервер большая?

jackill ★★★★★
()
Ответ на: комментарий от jackill

>>6. Если p2p делать, нагрузка на сервер большая?

А как это сделать? С помощью того же vlc?

anonymous
()
Ответ на: комментарий от jackill

> 1. Почему не vlc?

Просто так. Захотелось попробовать вещать видео через icecast.

> 2. Любой плеер, поддерживающий theora, это сожрет?

Да.

> 3. Если заранее перекодировать фильм, можно ли пускать без перекодировки?

Да.

> 4. Пробовали ли вы перекодировать передачи прямо с тюнера? Что кушает пациент по ресурсам?

Нет. Для этого мы используем VLC:)

> 5. Какая по ширине полоса используется для вещания?

Она настраивается. (см. настройки энкодера). Я гонял в диапазон от 200kbps до 1024kbps.

> 6. Если p2p делать, нагрузка на сервер большая? Не совсем понял вопрос. Можно подробнее описать что именно нужно?

MooSE ★★★★
() автор топика
Ответ на: комментарий от alx_me

Хм. Я не фигна не лиспер, но мне почему-то больше всего нравится S-expression ;) Лучше изначального варианта. Хотя braced тоже лучше, в принципе.

anonymous
()
Ответ на: комментарий от anonymous

> Хм. Я не фигна не лиспер, но мне почему-то больше всего нравится S-expression ;) Лучше изначального варианта. Хотя braced тоже лучше, в принципе.

Анонимусы - соль LOR-а.

И ещё поиск на соответсвие строки+"</" не может быть эффективнее поиска закрывающей скобочки. Это если про эффективность. А мы просто про читабельность и "изобретательство по японски" когда они каждый есяц обязаны давать "изобретение", в данном случае применение XML там где он не нужен.

Я заинтересован чтобы они не либы для работы с XML тестировали, а улучшали функционал своего ПО.

alx_me ★★☆
()
Ответ на: комментарий от alx_me

Зря ты так над XML'ем издеваешься... в одну строку он действительно нечитаем, да и сам XML приведенный тобой в пример - очень неудачный, подкаждый параметр необязательно заводить ноду, можно юзать атрибуты.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от JB

>пипец. А просто стримить без перекодировки уже религия не позволяет? ;)

А ты пробывал без перекодировки каналов этак 30 по лакалке запускать? Я посмотрел бы что из этого вышло, при условии, что сеть не только для видео, но народ еще и в инэте сидит и пограть хочет и файлом покидаться.

fyrer
()
Ответ на: комментарий от fyrer

>А ты пробывал без перекодировки каналов этак 30 по лакалке запускать?

Прочитай про multicast.

thresh ★★★
()
Ответ на: комментарий от AiFiLTr0

>Ладно. Теперь после такой статьи можно открывать свое "дойчен портно" онлайн тв.

Ладно. Как откроешь адресочек в новостях оставь.

qwe ★★★
()
Ответ на: комментарий от alx_me

< fstab: # <file system> <mnt.pnt> <type> <options> <dump> <pass> /dev/hda1 / ext3 defaults,errors=remount-ro 0 1

XML: <mount> <device>/dev/hda1</device> <point>/</point> <type>ext3</type> <errors>remount-ro</errors> <dump>0</dump> <pass>1</pass> </mount> S-expression: (mount (device '/dev/hda1) (point '/) (type 'ext3) (errors 'remount-ro) (dump 0) (pass 1) ) Braced: mount{ device = "/dev/hda1", point = "/", type = "ext3", errors = "remount-ro", dump = 0, pass = 1, } Неужели XML роднее?

alx_me (*) (19.09.2007 9:30:44)

>soglasen za takoe ubil bi

anonymous
()
Ответ на: комментарий от anonymous

>Неужели XML роднее?

Ну сколько можно одно и тоже мусолить? XML как формат конфигов хорош тем, что в отличие от других форматов у него есть XSD схема. И благодаря этому конфиг у которого что-то не так не пройдет проверку валидатором. Для валидации XMLа есть стандартные решения на любом языке программирования. И в отличии от INI, ХМL это ТИПИЗИРОВАННЫЕ данные: ты не засунешь стринг в тег который требует интегер! А теперь подумай, нафига изобретать велосипед если XML уже есть?

dimag
()

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

MiracleMan ★★★★★
()
Ответ на: комментарий от fyrer

>А ты пробывал без перекодировки каналов этак 30 по лакалке запускать? Я посмотрел бы что из этого вышло, при условии, что сеть не только для видео, но народ еще и в инэте сидит и пограть хочет и файлом покидаться.

Ну я пробовал 30 каналов пускать. Полоса в 70 Мбит. Про малтикаст тебе правильно сказали выше. Именно им и вещал. И народ в "инэте" сидит, и играется и файло с 2-х файлопомоек качает (на одной - 1.5 тера, на второй - 6 тер). Между сегментами сети гиговые линки. Вещание с тарелки малтикастом при помощи vlc. Без всякой перекодировки. А теперь представь, как ты раком нагнёшь сервак, если будешь перекодировать 30 каналов! А вот предложенным в статье юникастом ты точно сетку вышибешь, если 200-300 человек подключится. Малтикаст для того и придумали, вообще-то.

anonymous
()
Ответ на: комментарий от MooSE

>>на примере fstab: # <file system> <mnt.pnt> <type> <options> <dump> <pass> /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 XML: <mount> <device>/dev/hda1</device> <point>/</point> <type>ext3</type> <errors>remount-ro</errors> <dump>0</dump> <pass>1</pass> </mount> S-expression: (mount (device '/dev/hda1) (point '/) (type 'ext3) (errors 'remount-ro) (dump 0) (pass 1) ) Braced: mount{ device = "/dev/hda1", point = "/", type = "ext3", errors = "remount-ro", dump = 0, pass = 1, } Неужели XML роднее?

>Мне XML более нравится. В неё отдельные параметры лучше друг от друга отделены. Оно более читабельно.

АХТУНГ!!!

ну в приведенном примере XML наХ не вперся и как бы тебе он не нравилось принцип разумной достаточноси ни кто не отменял

AleX ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.