ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Michael A. Kangin" <mak@complife.ru>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] Видимо, наблюдение.
Date: Wed, 06 Apr 2016 19:40:21 +0200
Message-ID: <57054A05.4060001@complife.ru> (raw)
In-Reply-To: <ne3erm$ekh$1@ger.gmane.org>

On 04/06/2016 06:52 PM, Anton Farygin wrote:

 > тестировалось по нагрузке в сравнении с zoneminder ?

zoneminder я вообще не рассматривал, после того как увидел его "архив" 
из набора jpeg'ов.
Не знаю, научился ли он писать нормальные видеофайлы?
Ну и мне полюбому его функциональности не хватало.

> Теперь бы вот ещё собраться с духом и поставить потестировать. Но что-то
> мне кажется что перекодировок многовато, нет ?

Перекодировки можно оставлять только необходимые и в предельном случае 
вообще отказаться от них.

При работе с аналоговыми камерами: мы кодируем всё "налету" в mjpeg (в 
один поток, или два, если нужно меньшее качество для preview) и 
сохраняем в таком виде на диск. После завершения записи одного файла по 
нему проходится постпроцессор, который с idle-приоритетом перекодирует 
этот кусок в h264 для длительного хранения (качество/размер/скорость 
кодирования можно крутить в широких пределах).

При работе с цифровыми камерами с одним потоком (это могут быть 
IP-камеры, или захват видео с mjpeg на выходе, или "хелперы" - у меня 
трудились тощие клиенты на атомах на 4-8 аналоговых камер) мы получаем 
от них (как правило) mjpeg, который готов для сохранения на диск для 
последующего постпроцессинга, и показывается вживую безовсякого 
перекодирования. Если нам не нужен отдельный preview-поток, то можно 
обойтись без всякого перекодирования вживую.

Если камера выдаёт 2-3 потока, в т.ч. H264 пригодный для сохранения в 
архив, нам вообще не надо ничего перекодировать. Постпроцессор только 
переливает видео из потокового TS контейнера в индексированный MP4.

Если камера выдаёт только H264, нам надо из него перекодировать mjpeg 
для показа вживую. Если вдруг просмотр вживую не требуется, или 
используется просмотр в VargusViewer, который умеет h.264/rtsp 
показывать (http://git.etersoft.ru/projects/other/vargus-viewer.git), а 
не в браузере, то можно опять-же обойтись без перекодирования.

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

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

>
> Т.е. - сейчас вот реально zoneminder отрабатывает 60 камер 720p, 30 -
> mjpeg, 30 - h264 китайские.
>
> При этом китайский h264 ещё и перекодируется на лету в mjpeg для хранения.

Хранить в mjpeg? не накладно ли?
Операция кодировки в mjpeg дешёвая, другое дело в h.264
У меня на самом большом объекте, где было где-то 63-65 камер, половина 
выдавала mjpeg/h.264, половина только mjpeg.
Т.е. для всех 65 делалось онлайн-перекодирование mjpeg->preview_mjpeg, и 
где-то для 30 оффлайновый mjpeg->h.264.
Занималось обработкой всего этого пара двухпроцессорных серверов, и им 
немного помогали с постпроцессингом рабстанции охраны.
Глубина архива получалась где-то месяц (без детектеров движения).

на мощном компе класса i7 уживалось где-то 16 аналоговых камер, или 20 с 
небольшим "однопоточных". Но тут просто подвинчивались параметры 
перекодиварования, чтоб комп успевал справляться.

Да, для такой организации характерен LA под 30, и это нормально :)


> Ну и 5 клиентов одновременно забирают потоки в сумме примерно сотню.

Это процессоры не грузит, только сеть. Бондинга из двух гигабит хватало 
на всё с большим запасом.

>
> Я так понимаю что в этом случае для воспроизведения клиенту генерится
> один поток h264 ?

в зависимости от того что такое "клиент" и что он там воспроизводит.
для онлайн просмотра браузером единственная альтернатива mjpeg.
и только mjpeg обеспечивает "мгновенную" скорость переключения с камеры 
на камеру в просмотре. Когда сечёшь воришку это важно :)
А так можно и h264, если "клиент" его осилит увидеть.


  reply	other threads:[~2016-04-06 17:40 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01 17:31 Вадим Илларионов
2016-04-01 18:59 ` ruslandh
2016-04-02  5:44   ` В.А. Илларионов
2016-04-01 19:29 ` Michael Shigorin
2016-04-03 13:01 ` Anton Farygin
2016-04-04  7:05   ` Stas
2016-04-04 11:21     ` Anton Farygin
2016-04-05 19:15   ` Michael A. Kangin
2016-04-06  6:42     ` Anton Farygin
2016-04-06 16:01       ` Michael A. Kangin
2016-04-06 16:52         ` Anton Farygin
2016-04-06 17:40           ` Michael A. Kangin [this message]
2016-04-07  7:07             ` Anton Farygin
2016-04-07 14:48               ` Michael A. Kangin
2016-04-07 15:32                 ` Anton Farygin
2016-04-06 10:27     ` В.А. Илларионов
2016-04-06 16:04       ` Michael A. Kangin
2016-04-06 16:53         ` Anton Farygin
2016-04-08 14:55           ` Вадим Илларионов
2016-04-08 14:54     ` Вадим Илларионов
2016-04-08 19:59       ` Michael A. Kangin
2016-04-09  0:38         ` Вадим Илларионов
2016-04-09 12:10           ` Michael A. Kangin
2016-04-09 17:12           ` Michael Shigorin
2016-04-10  0:00             ` Вадим Илларионов
2016-04-10 17:05               ` Michael Shigorin
2016-04-11  0:21                 ` Вадим Илларионов

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57054A05.4060001@complife.ru \
    --to=mak@complife.ru \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git