forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.LINUX

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 04.12.2023, 21:01
Dmitriy Romanov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Dmitriy Romanov написал(а) к All в Dec 23 18:43:34 по местному времени:


Приветики, All!

В общем пытаюсь тут вкрячить zoneminder на alt 10. С ним бяда - он для записи дает на выбор кодеки только h264 и h265,
хотя в системе установлены туева куча других. У этих двух большая беда - они при работе съедают весь проц даже на один
канал. На ffmpeg ситуация полностью воспроизводится.
ffmpeg -f v4l2 -i /dev/video0 -vframes 1200 -codec $1 /storage/sdc1/output_$1.avi
то же самое, при выборе libx264 не вытягивает даже 25 fps с аналогового источника. При этом отлично работают h263p и
mpeg4 - загрузка цп меньше 10%, так что в теории мог бы и все 16 каналов затащить. Но почему-то сабж упорно
отказывается воспринимать что-либо другое.
В принципе рассматривается вариант заменить сабж на что угодно. Основная задача - писать видео с локального источника
(в теории - до 16 каналов), записывать непрерывно, чтобы можно было сетевым клиентом под эхотаг и под оффтопик
смотреть в реальном времени и запись. Всякие фичи по анализу изображения типа детектор движения и прочее - не
интересны. Бонусом приветствуется возможность кроме аналога подцепить айпишные камеры. Главное - писать в полном
разрешении все каналы. Там того разрешения то кот наплакал, его еще уменьшать считаю неприемлимым.


На сем разрешите письмо закончить. Elec (RA2FDR)
--- NoSFeRaTU's GoldED+/W32-MINGW 1.1.5-b20090603
Ответить с цитированием
  #2  
Старый 06.12.2023, 07:51
Stanislav Vlasov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Stanislav Vlasov написал(а) к Dmitriy Romanov в Dec 23 08:35:06 по местному времени:

Привет, Dmitriy!

04 Dec 23 18:43, Dmitriy Romanov -> All:

DR> заменить сабж на что угодно. Основная задача - писать видео с
DR> локального источника (в теории - до 16 каналов), записывать
DR> непрерывно, чтобы можно было сетевым клиентом под эхотаг и под
DR> оффтопик смотреть в реальном времени и запись. Всякие фичи по анализу
DR> изображения типа детектор движения и прочее - не интересны. Бонусом
DR> приветствуется возможность кроме аналога подцепить айпишные камеры.
DR> Главное - писать в полном разрешении все каналы. Там того разрешения
DR> то кот наплакал, его еще уменьшать считаю неприемлимым.

Может, проще кучу vlc с автоподнятием по падению? Так точно можно записывать без перекодировки, если от камеры видеопоток идёт.

С наилучшими пожеланиями, Stanislav.

--- -.-.-.-.-.-
Ответить с цитированием
  #3  
Старый 06.12.2023, 08:40
Andrey Mundirov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Andrey Mundirov написал(а) к Stanislav Vlasov в Dec 23 07:20:52 по местному времени:

Здравствуй, Stanislav!

Ответ на сообщение Stanislav Vlasov (2:5080/172) к Dmitriy Romanov, написанное 06 дек 23 в 08:35:

SV> Может, проще кучу vlc с автоподнятием по падению? Так точно можно
SV> записывать без перекодировки, если от камеры видеопоток идёт.

VLC - штука рабочая, но несколько неудобная. Делал я как-то стриминг-сервер с ТВ тюнера. А потом переделал на ffmpeg, получилось лучше.

С наилучшими пожеланиями, Andrey

--- GoldED+/LNX 1.1.5-b20161221
Ответить с цитированием
  #4  
Старый 06.12.2023, 17:51
Dmitriy Romanov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Dmitriy Romanov написал(а) к Andrey Mundirov в Dec 23 15:41:20 по местному времени:


Приветики, Andrey!


Писал как-то Andrey Mundirov к Stanislav Vlasov примерно 06 Дек 23 в 07:20
А я смотрю и фигею.


SV>> Может, проще кучу vlc с автоподнятием по падению? Так точно можно
SV>> записывать без перекодировки, если от камеры видеопоток идёт.

AM> VLC - штука рабочая, но несколько неудобная. Делал я как-то стриминг-сервер
AM> с ТВ тюнера. А потом переделал на ffmpeg, получилось лучше.
А есть пример рабочей конфигурации с ffmpeg? Я пока не осилил сделать, чтобы он и стриминг и запись одновременно делал.
В принципе идея неплохая. Меня устроит, если оно будет на сервере записывать, а на клиента только в реальном времени
контент отдавать. А запись, случись что, можно уже взять с сервера вручную и посмотреть.

На сем разрешите письмо закончить. Elec (RA2FDR)
--- NoSFeRaTU's GoldED+/W32-MINGW 1.1.5-b20090603
Ответить с цитированием
  #5  
Старый 08.12.2023, 06:30
Andrey Mundirov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Andrey Mundirov написал(а) к Dmitriy Romanov в Dec 23 05:07:08 по местному времени:

Здравствуй, Dmitriy!

Ответ на сообщение Dmitriy Romanov (2:6078/1) к Andrey Mundirov, написанное 06 дек 23 в 15:41:


AM>> VLC - штука рабочая, но несколько неудобная. Делал я как-то
AM>> стриминг-сервер с ТВ тюнера. А потом переделал на ffmpeg,
AM>> получилось лучше.
DR> А есть пример рабочей конфигурации с ffmpeg? Я пока не осилил сделать,
DR> чтобы он и стриминг и запись одновременно делал. В принципе идея
DR> неплохая. Меня устроит, если оно будет на сервере записывать, а на
DR> клиента только в реальном времени контент отдавать. А запись, случись
DR> что, можно уже взять с сервера вручную и посмотреть.

Вот как-то так. ffmpeg захватывает, жмет и пишет на диск. А клиентам с диска раздает nginx.

#!/bin/sh

ROOT_DIR="/var/www/video"
ARCНIVEDIR=$ROOTDIR/archive
STREAMDIR=$ARCНIVEDIR/`date +%Y%m%d%Н%M`

mkdir "$STREAM_DIR" || exit 1

CAPTUREOPTIONS="-f video4linux2 -channel 1 -s 720x576 -i /dev/video0 -thread_queuesize 1024 -f alsa -ar 44100 -ac 2 -i hw:0,0"

STREAMOPTIONS="-f hls -vf crop=700:570:8:5 -c:a aac -ar 44100 -b:a 128k -c:v libx264 -g 48 -keyint_min 48 -b:v 1250k -maxrate 1600k -bufsize 3200k -pix_fmt yuv420p -hls_time 10 -hls_playlist_type event -hls_segment_filename $STREAM_DIR/video%04d.ts $STREAMDIR/stream.m3u8"

/opt/ffmpeg/bin/ffmpeg $CAPTUREOPTIONS $STREAMOPTIONS




С наилучшими пожеланиями, Andrey

--- GoldED+/LNX 1.1.5-b20161221
Ответить с цитированием
  #6  
Старый 17.12.2023, 11:51
Dmitriy Romanov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Dmitriy Romanov написал(а) к Andrey Mundirov в Dec 23 09:21:20 по местному времени:


Приветики, Andrey!


Писал как-то Andrey Mundirov к Dmitriy Romanov примерно 08 Дек 23 в 05:07
А я смотрю и фигею.

AM> Вот как-то так. ffmpeg захватывает, жмет и пишет на диск. А клиентам с
AM> диска
AM> раздает nginx.

AM> #!/bin/sh

AM> ROOT_DIR="/var/www/video"
AM> ARCНIVEDIR=$ROOTDIR/archive
AM> STREAMDIR=$ARCНIVEDIR/`date +%Y%m%d%Н%M`

AM> mkdir "$STREAM_DIR" || exit 1

AM> CAPTURE_OPTIONS="-f video4linux2 -channel 1 -s 720x576 -i /dev/video0
AM> -threadqueuesize 1024 -f alsa -ar 44100 -ac 2 -i hw:0,0"

AM> STREAM_OPTIONS="-f hls -vf crop=700:570:8:5 -c:a aac -ar 44100 -b:a 128k
AM> -c:v libx264 -g 48 -keyint_min 48 -b:v 1250k -maxrate 1600k -bufsize 3200k
AM> -pixfmt yuv420p -hls_time 10 -hls_playlist_type event -hls_segmentfilename
AM> $STREAMDIR/video%04d.ts $STREAMDIR/stream.m3u8"

AM> /opt/ffmpeg/bin/ffmpeg $CAPTUREOPTIONS $STREAMOPTIONS

Интересное решение, но есть несколько но.
1. Как у него с задержкой? Я так понимяу, что задержка будет минимум на длину одного фрагмента. Чем длиннее фрагмент,
тем больше задержка, а чем короче, тем потом неудобнее пользоваться сохраненным архивом.
2. А будет ли оно работать, если вместо libx264 будет mpeg4 ? У меня все уперлось в эту проблему.
Пока что изобразил решение на базе ffserver. Но ни в одном браузере ни с одним плеером в mpeg4 не хочет показывать. Вот
с libx264 - то пожалуйста сколько угодно. Но у меня была первоочередная задача уйти от использования libx264 в любых
его проявлениях, ибо у меня и в один то поток в реальном времени не тянет, а хотелось бы их 16 запихнуть. mpeg4
прекрасно справляется с задачей, разве что при приемлимом качестве картинки объем несколько больше получается, но это
решается экстенсивным апгрейдом простым добавлением диска.
Так что на текущий момент остаются две задачи:
1. Как научить ffserver воспринимать фильтры, в частности мне надо в момент перед кодированием наложить дату-время на
видео. При записи - уже не вариант, это надо раскодировать поток и снова кодироать.
2. Как в браузере отображать поток в mpeg4 а не в Н264? Может какие плагины есть. Использовать отдельный плеер весьма
неудобно в связи с тем, что надо одновременно на одном экране несколько потоков показывать, причем чтобы каждый раз не
раскладывать плееры по экрану, а заранее сконфигурировать расположение, и чтобы при старте оно автоматом открывалось в
нужной конфигурации.

При этом задачу как вкрутить ffserver туда, где его не предусмотрено, ничего при этом не поломав, я уже осилил решить
самостоятельно =)

На сем разрешите письмо закончить. Elec (RA2FDR)
--- NoSFeRaTU's GoldED+/W32-MINGW 1.1.5-b20090603
Ответить с цитированием
  #7  
Старый 18.12.2023, 08:11
Andrey Mundirov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Andrey Mundirov написал(а) к Dmitriy Romanov в Dec 23 06:27:40 по местному времени:

Здравствуй, Dmitriy!

Ответ на сообщение Dmitriy Romanov (2:6078/1) к Andrey Mundirov, написанное 17 дек 23 в 09:21:


DR> Интересное решение, но есть несколько но.
DR> 1. Как у него с задержкой? Я так понимяу, что задержка будет минимум
DR> на длину одного фрагмента. Чем длиннее фрагмент, тем больше задержка,
DR> а чем короче, тем потом неудобнее пользоваться сохраненным архивом.

Именно так оно и работает. В моем случае задержка была не критична, была задача раздать видео максимальному количеству пользователей. VLC вывозил максимум 20-30 юзеров, ffserver чуть больше, а nginx тянет сотню и больше потянул бы, но уже канала не хватает.

DR> 2.
DR> А будет ли оно работать, если вместо libx264 будет mpeg4 ? У меня все
DR> уперлось в эту проблему. Пока что изобразил решение на базе ffserver.
DR> Но ни в одном браузере ни с одним плеером в mpeg4 не хочет показывать.
DR> Вот с libx264 - то пожалуйста сколько угодно. Но у меня была
DR> первоочередная задача уйти от использования libx264 в любых его
DR> проявлениях, ибо у меня и в один то поток в реальном времени не тянет,
DR> а хотелось бы их 16 запихнуть.

Странно, что даже один поток не тянет. Core i7 1 поколения нормально справляется, теоретически должен даже 4 потока вывозить, по числу ядер. Или там разрешение большое и битрейт?

С наилучшими пожеланиями, Andrey

--- GoldED+/LNX 1.1.5-b20161221
Ответить с цитированием
  #8  
Старый 18.12.2023, 16:42
Dmitriy Romanov
Guest
 
Сообщений: n/a
По умолчанию zoneminder и кодеки

Dmitriy Romanov написал(а) к Andrey Mundirov в Dec 23 14:29:04 по местному времени:


Приветики, Andrey!


Писал как-то Andrey Mundirov к Dmitriy Romanov примерно 18 Дек 23 в 06:27
А я смотрю и фигею.

DR>> 2.
DR>> А будет ли оно работать, если вместо libx264 будет mpeg4 ? У меня все
DR>> уперлось в эту проблему. Пока что изобразил решение на базе ffserver.
DR>> Но ни в одном браузере ни с одним плеером в mpeg4 не хочет показывать.
DR>> Вот с libx264 - то пожалуйста сколько угодно. Но у меня была
DR>> первоочередная задача уйти от использования libx264 в любых его
DR>> проявлениях, ибо у меня и в один то поток в реальном времени не тянет,
DR>> а хотелось бы их 16 запихнуть.

AM> Странно, что даже один поток не тянет. Core i7 1 поколения нормально
AM> справляется, теоретически должен даже 4 потока вывозить, по числу ядер. Или
AM> там разрешение большое и битрейт?
Core2duo, 72057625fps. Даже если один поток и потянет, то мне это все равно мало. Меня бы mpeg4 вполне устроило, лишь
бы клиенты могли его видеть. А клиентов тех от силы штук 5 наберется. Но запись должна быть без ужатия по качеству, а
то и так с аналоговой камеры хреново видно.

На сем разрешите письмо закончить. Elec (RA2FDR)
--- NoSFeRaTU's GoldED+/W32-MINGW 1.1.5-b20090603
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 04:17. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot