Nп/п : 85 из 100
От : Dmitriy Romanov 2:6078/1 17 дек 23 09:21:20
К : Andrey Mundirov 17 дек 23 10:41:02
Тема : zoneminder и кодеки
----------------------------------------------------------------------------------
@MSGID: 2:6078/1 657ea413
@REPLY: 2:5059/38 65727b5b
@CHRS: CP866 2
@TZUTC: 0200
@TID: hpt/w32-mvcdll 1.4.0-sta 16-02-06
Приветики, Andrey!
Писал как-то Andrey Mundirov к Dmitriy Romanov примерно 08 Дек 23 в 05:07
А я смотрю и фигею.
AM> Вот как-то так. ffmpeg захватывает, жмет и пишет на диск. А клиентам с
AM> диска
AM> раздает nginx.
AM> #!/bin/sh
AM> ROOT_DIR="/var/www/video"
AM> ARCHIVE_DIR=$ROOT_DIR/archive
AM> STREAM_DIR=$ARCHIVE_DIR/`date +%Y%m%d%H%M`
AM> mkdir "$STREAM_DIR" || exit 1
AM> CAPTURE_OPTIONS="-f video4linux2 -channel 1 -s 720x576 -i /dev/video0
AM> -thread_queue_size 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> -pix_fmt yuv420p -hls_time 10 -hls_playlist_type event
-hls_segment_filename
AM> $STREAM_DIR/video%04d.ts $STREAM_DIR/stream.m3u8"
AM> /opt/ffmpeg/bin/ffmpeg $CAPTURE_OPTIONS $STREAM_OPTIONS
Интересное решение, но есть несколько но.
1. Как у него с задержкой? Я так понимяу, что задержка будет
минимум на длину одного фрагмента. Чем длиннее фрагмент,
тем больше задержка, а чем короче, тем потом неудобнее пользоваться
сохраненным архивом.
2. А будет ли оно работать, если вместо libx264 будет mpeg4 ? У
меня все уперлось в эту проблему.
Пока что изобразил решение на базе ffserver. Но ни в одном браузере
ни с одним плеером в mpeg4 не хочет показывать. Вот
с libx264 - то пожалуйста сколько угодно. Но у меня была
первоочередная задача уйти от использования libx264 в любых
его проявлениях, ибо у меня и в один то поток в реальном времени
не тянет, а хотелось бы их 16 запихнуть. mpeg4
прекрасно справляется с задачей, разве что при приемлимом качестве
картинки объем несколько больше получается, но это
решается экстенсивным апгрейдом простым добавлением диска.
Так что на текущий момент остаются две задачи:
1. Как научить ffserver воспринимать фильтры, в частности мне надо в
момент перед кодированием наложить дату-время на
видео. При записи - уже не вариант, это надо раскодировать поток и
снова кодироать.
2. Как в браузере отображать поток в mpeg4 а не в H264? Может
какие плагины есть. Использовать отдельный плеер весьма
неудобно в связи с тем, что надо одновременно на одном экране
несколько потоков показывать, причем чтобы каждый раз не
раскладывать плееры по экрану, а заранее сконфигурировать расположение,
и чтобы при старте оно автоматом открывалось в
нужной конфигурации.
При этом задачу как вкрутить ffserver туда, где его не
предусмотрено, ничего при этом не поломав, я уже осилил решить
самостоятельно =)
Hа сем разрешите письмо закончить. Elec (RA2FDR)
--- NoSFeRaTU`s GoldED+/W32-MINGW 1.1.5-b20090603
* Origin: В свинарнике не стыдно быть свиньей (2:6078/1)
SEEN-BY: 46/49 50/361 221/6 240/1120 250/25 301/1
341/66 450/1024 452/28
SEEN-BY: 455/19 460/58 463/68 467/888 478/0 37
5000/111 5001/100 5005/33 49
SEEN-BY: 5005/77 5010/352 5015/35 42 46 5019/40
400 5020/101 113 545 620 715
SEEN-BY: 5020/830 846 848 1042 1721 2038 2992
4441 12000 5022/128 5030/49 115
SEEN-BY: 5030/500 1081 1474 1900 5031/71 5036/26
5049/6 5050/151 5053/51 55
SEEN-BY: 5053/58 5054/8 89 5058/104 108 5059/37
5060/900 5061/133 5083/1 444
SEEN-BY: 6035/4 6078/0 1 2 47 80 6090/1
@PATH: 6078/1 5020/830 1042 4441