> Скажите как у вас идёт обмен иформацией (те же видео данные) между процессами?
По UDP, всё, как у Вас.
> Есть же ещё shared memory (которым, например, пользуется zoneminder) хотелось бы узнать на чём вы остановились.
Изначально нам не хватало мощности (мы начали несколько лет назад, процессоры были другими) сложить весь транскодинг в одну машину. Поэтому (я там писал, что кроме камер кодируем еще телеканалы) делали так: 1 канал = 1 тазик. То есть захват шел «с удаленной машины», а стало быть shared memory в пролете. Ну а потом уже «зачем переделывать, если работает». Работает неплохо, плюс возможность при нужде утащить один из кубиков конструктора на другую машину, ниче не отломав при этом.
> Что вы используете в качестве сетевой прослойки: socket, twisted, gevent?
udpsink в gstreamer'е :)
> У вас кодеры тоже на питоне написаны?
Не совсем понял вопрос. С одной стороны да, процесс называется encoder.py :) С другой стороны, никто на голом питоне кодировщик в H264 не реализовывал, естественно. Просто соответствующим образом построенный pipeline для gstreamer'а, с элементом x264enc где-то в середине.
> Обёртка к gstreamer сразу на питоне или на C сначала?
> Вы категорический неправы в этом, (даже если не считать это простым хамством!).
Автор, к слову, отреагировал куда конструктивнее, чем Вы. И, по большому счету, согласился.
> Я не говорю, что хочу создать систему основываясь на приведённом в статье коде,
> в этом случае действительно стоит по максимуму задействовать готовые библиотеки.
Python, Gstreamer, x264, всё склеено собственным кодом (обвязки, мониторинг, обработка всяких реконнектов и т.п.)
32 камеры тащит машина (Sun Fire X4150) 8 ядер, 4 гига. Основная нагрузка — транскодинг (камеры отдают _не_ h264, приходится на лету перекодировать в то, что понимают флэш и яблоки).
Веб-морда на Pylons. нужный кусок архива по требованию достается из архива (дата-время начала, продолжительность куска).
Примерно такой же код у нас параллельно пишет (из эфира) и транслирует в городской пиринг 16 телеканалов. Отличается только непосредственно модуль забора сигнала, там естественно не с камеры по ip.
Архитектурно: несколько процессов на сущность (камера или канал) — хваталка сигнала, перекодировалка в то_что_нужно, писалка, раздавалка. Почему не потоки? Потому что потоки тут не нужны. Упал процесс, обслуживающий одну из камер, да черт с ним, остальных не тронуло.
Почему не vlc, «который все это умеет»? Потому что это дырявое ведро. Ненадежное в реальной жизни. И, кстати, в сухом остатке более прожорливое.
Самонаписанный код, аптаймы по полгода, пока админ не остановит. Аптаймы не машин, а именно самих процессов — никаких костылей типа «vlc в бесконечном цикле, если что, то рестартуем, и если памяти полтора гига сожрал, тоже рестартуем».
У задротов прямо сейчас python код 24х365 тащит видео с 32 (пока) камер в разных концах города, перекодирует на лету в h264, раздает в браузеры и на мобильные устройства, пишет в архивы, хранит 2 недели и с сайта раздает архив любопытным или просто тем, кого въедут на перекрестке. Задроты как бы немного в теме и, в принципе, им было бы что на эту тему сказать, но… Раз не надо, то не надо.
rtsp_client.py это вообще похапня какая-то, если уж начистоту.
Но вообще непонятно, глядя в код, а чего, собственно, хочет автор?
Заморочиться на голом python'e врукопашную собственным rtsp клиентом в целях самообразования и «покопаться»? Тогда зачем читерствует twisted'ом, который снимает изрядную долю мороки.
А если автор хочет написать работающую систему для решения конкретных проблем, то почему не flumotion, почему не gstreamer? В такой код автор сам опухнет h264 и ffmpeg прикручивать, чего уж там «кто угодно мог писать расширения»…
У меня кроме Windows 95 (3.11, впрочем, тоже была) был ещё и Microsoft Office на дискетах. Даже не помню, сколько их было, но реально дофига. целая коробка трёхдюймовок.
Ещё Delphi была на дискетах, тоже ниче так стопочка.
А я и имел в виду не «среднюю школу», которая обычно трех- или около того -этажное здание с длинными коридорами.
А как раз образование. Только не «специализацию» в американском смысле: «O my God! В школе/ВУЗе меня не научили кодить на С++ и забыли рассказать про .Net перделки».
Впрочем лично мне даже средняя школа многое дала. Даже в «специализации IT». Мне повезло с учительницей информатики. Эта тогда (1993 год) еще очень молодая женщина не была заражена «писюками» и «турбо паскалем». Она была представитель классической Школы(TM), училась и в юности (за 10 лет до того) работала на ЕС, считала зарплату огромного завода на машине, чья наработка на отказ превышала время счета задачи и знала об оптимизации, казалось, всё. Её любимая фраза была: «Программист — это не тот, кто по клавишам колотит, а потом жмет ctrl+f9. Программист решает задачу, а к машине может вообще не подходить. Для того, чтобы настучать коды по алгоритму, есть отдельная профессия, называлась Оператор ПЭВМ. Это были девочки, их готовили в ПТУ через дорогу от нашего факультета». В современных реалиях «девочек из ПТУ через дорогу» можно заменить на быдлокодеров и ничего не изменится.
А уж то, что мне дала настоящая школа — физический факультет университета, на кафедре физики твердого тела, я даже и рассуждать об этом не хочу. Правда, это было не совсем про IT.
Тьфу, иллюстрация с текстом не бьется, помутнение нашло. Хотел написать, что единственное, что с «тех» времен изменилось — это «раньше были поменяны». А теперь, как на обычных клавах.
Ну будем считать, что вторая картинка иллюстрирует вторую дополнительную панель клавиш, развешивай хоткеи сколько хочешь :)
В смысле «тогда»? Эта клава прямо сейчас у меня на столе стоит, она современная, произведена пару лет назад. Это совершенно обычная Type 7 от Sun Microsystems :)
Там и CapsLock и Ctrl «местами поменяны», как в старые добрые времена рабочих станций, до засилья писюков :)
Именно за них. Других комментариев с «маленькими буквами в начале предложений» как-то не особо наблюдалось. А причина read-only была указана в красненьком «окошке» при попытке что-то написать.
К чему множить сущности, что-то додумывая? Бритва Оккама негодует.
Зачем Вы оправдываете? Смысл? Не проще признать, извиниться и, например, пообещать, что разъяснительная работа будет проведена и модераторы будут стараться чаще включать мозг и реже размахивать банхаммером.
И добавить, что Вы тоже были молоды, горячи, и что Вам стыдно за те эпизоды, когда ранее были пойманы " за рассылку спама в личную почту высокорейтинговым хабраюзерам с просьбой кликнуть «Мне нравится компания» в блоге одной из компаний"
Не утруждайтесь, там все предельно ясно. На момент read-only именно эти три комментария былим верхними в ленте комментариев на соответствующей странице моего профайла. При попытке проголосовать или прокомментировать была ясно указана причина «не соблюдает правила русского языка, маленькие буквы в начале предложений».
Пережили? Прекрасно. А теперь я, как пользователь, желаю, чтобы Хабр продолжал оставаться саморегулирующимся сообществом, а не местом релаксации для модераторов. И прошу, чтобы Вы, как проект-менеджер, поработали и в этом направлении тоже, чтобы «искоренили эту порочную практику». Сегодня он за мелкие буквы банит, завтра до абсурда что-нибудь в рамках правил.
А я предлагаю всё-таки это обсудить. Вы не согласны, что буква «ё» занимает важное место в русском языке? Или соскакиваете от серьёзного вопроса «у нас саморегулирующееся сообщество или место для самовыражение не всегда адекватных модераторов?». Причем воспользовавшись «лазейкой» — «про букву ё прямо не написано в пункте 8». И я настаиваю — наречие «вкусно», употребляемое в отношении несъедобных предметов, суть сильно более безграмотная вещь, чем строчные буквы в начале предложения.
Разбана не подразумевалось. Уже один раз предлагали разбан за месяц до того, я согласился и меня разбанили. Через месяц сорвался по забывчивости (я всегда писал «неважные» тексты в объеме 2 строчек, не переключая регистр, можете считать лайфхаком, если угодно. Многолетние привычки трудно поменять быстро). Забанили как злостного рецидивиста.
Вас, как должностное лицо, отнюдь не красят разговоры с собственными мыслями в своей собственной голове и додумывания за собеседника «получится то, что, видимо, хотели». Отвыкайте. Или, если не уверены в том, что собеседник хотел, уточните вопросом. Вам объяснят.
Еще раз повторю, что меня не интересует, как вы там называете это у себя внутри: «read-only на месяц» или «бан на месяц». Когда я пишу к посту про беспилотный коптер несколько комментариев, за которые получаю несколько десятков плюсов и полтора десятка в карму, а на следующий день обнаруживаю, что не могу продолжить объяснять людям интересные им вещи, это и есть «бан». Хотя формально — это «read-only» по Вашей терминологии.
Причина read-only была следующей.
«Если взглянуть на Ваши комментарии, можно увидеть, что Вы патологически не желаете ставить заглавную букву в начале каждого нового предложения. Мы намерены искоренить подобную практику среди пользователей сайта. Если Вы дадите гарантии следовать этому правилу, мы готовы снять блокировку досрочно.»
Заметим, не в постах (!), а в комментариях (!!).
При всём уважении, это называется «синдром вахтёра» у модератора. Который (модератор) почему-то вмешивается в процесс «саморегулирующейся системы». Почему? Без понятия, может быть ему просто девушка не дала.
Поскольку Вы теперь «менеджер проекта» и я сейчас общаюсь напрямую с «начальством», вношу следующие предложения:
1) Дать модераторам отгул на сутки и билет до Википедии, пусть отдохнут и узнают, что существует минускул.
2) Немедленно выдавать read-only на месяц хабраюзеру в случае употребления буквы «е» там, где должна быть «ё».
3) Быть последовательными и начать раздавать баны за слово «вкусно» (и ему подобные), которое на Хабре употребляется по поводу и без повода. Все эти «новые фичи», которые «выглядят вкусно». По моему скромному мнению, от этих «вкусно» русскому языку вреда на порядок больше, чем от строчных букв в начале предложения.
По UDP, всё, как у Вас.
> Есть же ещё shared memory (которым, например, пользуется zoneminder) хотелось бы узнать на чём вы остановились.
Изначально нам не хватало мощности (мы начали несколько лет назад, процессоры были другими) сложить весь транскодинг в одну машину. Поэтому (я там писал, что кроме камер кодируем еще телеканалы) делали так: 1 канал = 1 тазик. То есть захват шел «с удаленной машины», а стало быть shared memory в пролете. Ну а потом уже «зачем переделывать, если работает». Работает неплохо, плюс возможность при нужде утащить один из кубиков конструктора на другую машину, ниче не отломав при этом.
> Что вы используете в качестве сетевой прослойки: socket, twisted, gevent?
udpsink в gstreamer'е :)
> У вас кодеры тоже на питоне написаны?
Не совсем понял вопрос. С одной стороны да, процесс называется encoder.py :) С другой стороны, никто на голом питоне кодировщик в H264 не реализовывал, естественно. Просто соответствующим образом построенный pipeline для gstreamer'а, с элементом x264enc где-то в середине.
> Обёртка к gstreamer сразу на питоне или на C сначала?
Сразу gst-python, ниже лезть не понадобилось.
habrahabr.ru/blogs/image_processing/117735/#comment_3848756
А кодом сверкать мне NDA не позволит, как легко догадаться.
> Вы категорический неправы в этом, (даже если не считать это простым хамством!).
Автор, к слову, отреагировал куда конструктивнее, чем Вы. И, по большому счету, согласился.
> Я не говорю, что хочу создать систему основываясь на приведённом в статье коде,
> в этом случае действительно стоит по максимуму задействовать готовые библиотеки.
32 камеры тащит машина (Sun Fire X4150) 8 ядер, 4 гига. Основная нагрузка — транскодинг (камеры отдают _не_ h264, приходится на лету перекодировать в то, что понимают флэш и яблоки).
Веб-морда на Pylons. нужный кусок архива по требованию достается из архива (дата-время начала, продолжительность куска).
Примерно такой же код у нас параллельно пишет (из эфира) и транслирует в городской пиринг 16 телеканалов. Отличается только непосредственно модуль забора сигнала, там естественно не с камеры по ip.
Архитектурно: несколько процессов на сущность (камера или канал) — хваталка сигнала, перекодировалка в то_что_нужно, писалка, раздавалка. Почему не потоки? Потому что потоки тут не нужны. Упал процесс, обслуживающий одну из камер, да черт с ним, остальных не тронуло.
Почему не vlc, «который все это умеет»? Потому что это дырявое ведро. Ненадежное в реальной жизни. И, кстати, в сухом остатке более прожорливое.
Самонаписанный код, аптаймы по полгода, пока админ не остановит. Аптаймы не машин, а именно самих процессов — никаких костылей типа «vlc в бесконечном цикле, если что, то рестартуем, и если памяти полтора гига сожрал, тоже рестартуем».
Код показать, естественно, не смогу.
А если кому-то вот такие вот…
051: to_send = """\
052: DESCRIBE rtsp://""" + self.config['ip'] + self.config['request'] + """ RTSP/1.0\r
053: CSeq: 2\r
054: Accept: application/sdp\r
055: User-Agent: Python MJPEG Client\r
056: \r
057: """
… изыски не кажутся похапнёй, то флаг им в руки.
Но вообще непонятно, глядя в код, а чего, собственно, хочет автор?
Заморочиться на голом python'e врукопашную собственным rtsp клиентом в целях самообразования и «покопаться»? Тогда зачем читерствует twisted'ом, который снимает изрядную долю мороки.
А если автор хочет написать работающую систему для решения конкретных проблем, то почему не flumotion, почему не gstreamer? В такой код автор сам опухнет h264 и ffmpeg прикручивать, чего уж там «кто угодно мог писать расширения»…
Судя по коду, врядли получится, извините.
Ещё Delphi была на дискетах, тоже ниче так стопочка.
А как раз образование. Только не «специализацию» в американском смысле: «O my God! В школе/ВУЗе меня не научили кодить на С++ и забыли рассказать про .Net перделки».
Впрочем лично мне даже средняя школа многое дала. Даже в «специализации IT». Мне повезло с учительницей информатики. Эта тогда (1993 год) еще очень молодая женщина не была заражена «писюками» и «турбо паскалем». Она была представитель классической Школы(TM), училась и в юности (за 10 лет до того) работала на ЕС, считала зарплату огромного завода на машине, чья наработка на отказ превышала время счета задачи и знала об оптимизации, казалось, всё. Её любимая фраза была: «Программист — это не тот, кто по клавишам колотит, а потом жмет ctrl+f9. Программист решает задачу, а к машине может вообще не подходить. Для того, чтобы настучать коды по алгоритму, есть отдельная профессия, называлась Оператор ПЭВМ. Это были девочки, их готовили в ПТУ через дорогу от нашего факультета». В современных реалиях «девочек из ПТУ через дорогу» можно заменить на быдлокодеров и ничего не изменится.
А уж то, что мне дала настоящая школа — физический факультет университета, на кафедре физики твердого тела, я даже и рассуждать об этом не хочу. Правда, это было не совсем про IT.
И сразу же дата рождения автора, который соглашается: 12 октября 1983
Казалось бы…
Ну будем считать, что вторая картинка иллюстрирует вторую дополнительную панель клавиш, развешивай хоткеи сколько хочешь :)
Там и CapsLock и Ctrl «местами поменяны», как в старые добрые времена рабочих станций, до засилья писюков :)
К чему множить сущности, что-то додумывая? Бритва Оккама негодует.
Зачем Вы оправдываете? Смысл? Не проще признать, извиниться и, например, пообещать, что разъяснительная работа будет проведена и модераторы будут стараться чаще включать мозг и реже размахивать банхаммером.
И добавить, что Вы тоже были молоды, горячи, и что Вам стыдно за те эпизоды, когда ранее были пойманы " за рассылку спама в личную почту высокорейтинговым хабраюзерам с просьбой кликнуть «Мне нравится компания» в блоге одной из компаний"
Вы можете думать насчёт косвенности что угодно, Ваше право. Но «Иногда сигара – это просто сигара» (с) З. Фрейд.
Тем более Хабр такое место, что в подобных формулировках о чем-то просить — себе дороже может выйти. Эти же «поклонники Google» навалят минусов.
Пережили? Прекрасно. А теперь я, как пользователь, желаю, чтобы Хабр продолжал оставаться саморегулирующимся сообществом, а не местом релаксации для модераторов. И прошу, чтобы Вы, как проект-менеджер, поработали и в этом направлении тоже, чтобы «искоренили эту порочную практику». Сегодня он за мелкие буквы банит, завтра до абсурда что-нибудь в рамках правил.
Разбана не подразумевалось. Уже один раз предлагали разбан за месяц до того, я согласился и меня разбанили. Через месяц сорвался по забывчивости (я всегда писал «неважные» тексты в объеме 2 строчек, не переключая регистр, можете считать лайфхаком, если угодно. Многолетние привычки трудно поменять быстро). Забанили как злостного рецидивиста.
Вас, как должностное лицо, отнюдь не красят разговоры с собственными мыслями в своей собственной голове и додумывания за собеседника «получится то, что, видимо, хотели». Отвыкайте. Или, если не уверены в том, что собеседник хотел, уточните вопросом. Вам объяснят.
Месяц read-only был за
habrahabr.ru/blogs/DIY/113680/#comment_3659248
habrahabr.ru/blogs/DIY/113680/#comment_3659230
habrahabr.ru/blogs/DIY/113680/#comment_3659208
Причина read-only была следующей.
«Если взглянуть на Ваши комментарии, можно увидеть, что Вы патологически не желаете ставить заглавную букву в начале каждого нового предложения. Мы намерены искоренить подобную практику среди пользователей сайта. Если Вы дадите гарантии следовать этому правилу, мы готовы снять блокировку досрочно.»
Заметим, не в постах (!), а в комментариях (!!).
При всём уважении, это называется «синдром вахтёра» у модератора. Который (модератор) почему-то вмешивается в процесс «саморегулирующейся системы». Почему? Без понятия, может быть ему просто девушка не дала.
Поскольку Вы теперь «менеджер проекта» и я сейчас общаюсь напрямую с «начальством», вношу следующие предложения:
1) Дать модераторам отгул на сутки и билет до Википедии, пусть отдохнут и узнают, что существует минускул.
2) Немедленно выдавать read-only на месяц хабраюзеру в случае употребления буквы «е» там, где должна быть «ё».
3) Быть последовательными и начать раздавать баны за слово «вкусно» (и ему подобные), которое на Хабре употребляется по поводу и без повода. Все эти «новые фичи», которые «выглядят вкусно». По моему скромному мнению, от этих «вкусно» русскому языку вреда на порядок больше, чем от строчных букв в начале предложения.