#1
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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 |