Как объединить несколько потоков ffserver в сетку в реальном времени?

Я пытаюсь настроить систему видеонаблюдения с ffmpeg/ffserver / zoneminder и хочу красивую сетку 4x4 без всех границ апплета Java и оконных ключей на ней, просто полноэкранную сетку 4x4. Я получил ffserver для потоковой передачи webm для браузеров и mpg для zoneminder, но когда я создаю страницу с 16 видеороликами webm, она останавливается после загрузки около 5 сразу. Я ищу способ взять 16 живых потоков и объединить их в один живой поток, который в четыре раза превышает ширина и высота расположены в виде сетки.

Я попытался использовать ffmpeg для обработки этого с соответствующими настройками в /etc / ffserver.conf используя следующее:

/usr/local/bin/ffmpeg -i http://localhost:8090/0.webm -i http://localhost:8090/1.webm -i http://localhost:8090/2.webm -i http://localhost:8090/3.webm -i http://localhost:8090/4.webm -i http://localhost:8090/5.webm -i http://localhost:8090/6.webm -i http://localhost:8090/7.webm -i http://localhost:8090/8.webm -i http://localhost:8090/9.webm -i http://localhost:8090/10.webm -i http://localhost:8090/11.webm -i http://localhost:8090/12.webm -i http://localhost:8090/13.webm -i http://localhost:8090/14.webm -i http://localhost:8090/15.webm -filter_complex "
nullsrc=size=1280x960 [bg];
[0:v] setpts=PTS-STARTPTS, scale=320x240 [v0];
[1:v] setpts=PTS-STARTPTS, scale=320x240 [v1];
[2:v] setpts=PTS-STARTPTS, scale=320x240 [v2];
[3:v] setpts=PTS-STARTPTS, scale=320x240 [v3];
[4:v] setpts=PTS-STARTPTS, scale=320x240 [v4];
[5:v] setpts=PTS-STARTPTS, scale=320x240 [v5];
[6:v] setpts=PTS-STARTPTS, scale=320x240 [v6];
[7:v] setpts=PTS-STARTPTS, scale=320x240 [v7];
[8:v] setpts=PTS-STARTPTS, scale=320x240 [v8];
[9:v] setpts=PTS-STARTPTS, scale=320x240 [v9];
[10:v] setpts=PTS-STARTPTS, scale=320x240 [v10];
[11:v] setpts=PTS-STARTPTS, scale=320x240 [v11];
[12:v] setpts=PTS-STARTPTS, scale=320x240 [v12];
[13:v] setpts=PTS-STARTPTS, scale=320x240 [v13];
[14:v] setpts=PTS-STARTPTS, scale=320x240 [v14];
[15:v] setpts=PTS-STARTPTS, scale=320x240 [v15];
[bg][v0] overlay=shortest=1 [bg];
[bg][v1] overlay=shortest=1:x=320 [bg];
[bg][v2] overlay=shortest=1:x=640 [bg];
[bg][v3] overlay=shortest=1:x=960 [bg];
[bg][v4] overlay=shortest=1:y=240 [bg];
[bg][v5] overlay=shortest=1:x=320:y=240 [bg];
[bg][v6] overlay=shortest=1:x=640:y=240 [bg];
[bg][v7] overlay=shortest=1:x=960:y=240 [bg];
[bg][v8] overlay=shortest=1:y=480 [bg];
[bg][v9] overlay=shortest=1:x=320:y=480 [bg];
[bg][v10] overlay=shortest=1:x=640:y=480 [bg];
[bg][v11] overlay=shortest=1:x=960:y=480 [bg];
[bg][v12] overlay=shortest=1:y=720 [bg];
[bg][v13] overlay=shortest=1:x=320:y=720 [bg];
[bg][v14] overlay=shortest=1:x=640:y=720 [bg];
[bg][v15] overlay=shortest=1:x=960:y=720" http://localhost:8090/all_webm.ffm

но он приходит в только несколько кадров в секунду и не подходит для потокового вещания.

кто-нибудь знает, как это сделать с ffmpeg, или если есть программа, которая может это сделать, которая подключается к ffserver?

22
задан CoryG
22.11.2022 20:00 Количество просмотров материала 2709
Распечатать страницу

1 ответ

вы обрабатываете 16 потоков, поэтому ваш процессор имеет тяжелую работу по его преобразованию. Вам действительно нужно достаточно мощности процессора для обработки всех этих данных.

Я также вижу, что вы масштабируете каждое видео. Масштабирование является очень трудоемким процессом в ЦП. Может быть, вы можете настроить свои потоки камеры, чтобы обеспечить масштабируемое видео уже, так что ваш процессор должен только положить их вместе.

вы также можете искать другие варианты кодирования / декодирования, потому что некоторые кодеры работают в 10 раз быстрее чем остальные.

1
отвечен Nick van Tilborg 2022-11-24 03:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

ffmpeg
linux
streaming
video
webm
Вверх