Когда я последний раз видео пытался через вебсокеты передавать (motion jpeg), то т.к. просто взять, и изменить содержимое картинки блобом из вебсокета невозможно, приходилось кодировать в base64. Было жутко медленно, так что я от этого отказался. А генерить из картинок h264 было бы уж совсем адово: "малинка" такое не перенесла бы. Тем более, каждый кадр нужно было обрабатывать. Собственно, zoneminder тоже тупо jpeg'и шлет, т.к. каждый кадр ему нужно обработать для определения движения в запретной зоне. А уж для такой машинки можно было бы 1 кадр в секунду просто так же жопегами посылать...
Если речь про детектирование движения на стороне хилого сервера, то только им и можно. В идеале конечно, хорошо бы, чтобы это делала камера на своей стороне, а на сервер передавала бы метаинфу о результатах детектирования. Но помню, что когда настраивал камеры в нашем ТСЖ, они хоть и декларировали такое умение через ONVIF, но реализовано через жопу с несоблюдением спеки из-за чего не работало ни с чем, кроме родной убогой китайской софтины под винду.
> "Магия" это такая черная коробка, которая непонятно как устроенна. Но > если делать определённые магические пассы, то будут определённые > результаты.
Вообще-то этот приём называется "абстракция". Правильно собранные вместе, они образуют "слои", в рамках одного слоя оперировать абстракциями быстро и относительно просто. А если неправильно, то например за "протечку абстракций" из нижних слоёв в верхние да, приходится платить просто адскими затратами времени и нервов. И нет, мы не можем дойти до самого нижнего слоя, где "всё на самом деле так, как на самом деле", во-первых тупо не хватит ресурсов у наших мозгов, а во-вторых даже не очень ясно, существует ли этот самый самый нижний слой.
Да, думал не написать ли тебе вопрос, но пока формулировал вопрос - проблемы саморазрешились.
Собственно говоря было два косяка.
1 - недостаточно большие буферы для передачи слелал, из-за чего пакеты больше 64 КБ не уходили по ws протоколу (а это были самые важные I-frame)
2 - jmuxer.min.js есть какой-то баг, который видимо затесался туда при минификации скрипта. В варианте без min всё хорошо. Причем глянул - и тот и другой файл были сгенерированны из одних и тех-же исходников.
Собственно говоря ни тот, ни другой баг не относятся собственно к видео.
Comments 17
А генерить из картинок h264 было бы уж совсем адово: "малинка" такое не перенесла бы. Тем более, каждый кадр нужно было обрабатывать.
Собственно, zoneminder тоже тупо jpeg'и шлет, т.к. каждый кадр ему нужно обработать для определения движения в запретной зоне. А уж для такой машинки можно было бы 1 кадр в секунду просто так же жопегами посылать...
Reply
Можно, я так и делал раньше на старой машинке. А тут 854x480 30 fps и примерно 2 мегабита поток и процессор практически не загружен.
Reply
H264 на порядок легче
Reply
Если речь про детектирование движения на стороне хилого сервера, то только им и можно. В идеале конечно, хорошо бы, чтобы это делала камера на своей стороне, а на сервер передавала бы метаинфу о результатах детектирования. Но помню, что когда настраивал камеры в нашем ТСЖ, они хоть и декларировали такое умение через ONVIF, но реализовано через жопу с несоблюдением спеки из-за чего не работало ни с чем, кроме родной убогой китайской софтины под винду.
Reply
> "Магия" это такая черная коробка, которая непонятно как устроенна. Но
> если делать определённые магические пассы, то будут определённые
> результаты.
Вообще-то этот приём называется "абстракция". Правильно собранные вместе, они образуют "слои", в рамках одного слоя оперировать абстракциями быстро и относительно просто. А если неправильно, то например за "протечку абстракций" из нижних слоёв в верхние да, приходится платить просто адскими затратами времени и нервов. И нет, мы не можем дойти до самого нижнего слоя, где "всё на самом деле так, как на самом деле", во-первых тупо не хватит ресурсов у наших мозгов, а во-вторых даже не очень ясно, существует ли этот самый самый нижний слой.
Reply
В следующий раз по видео - пиши в телеграм @maxlapshin, сэкономил бы массу времени
Reply
Да, думал не написать ли тебе вопрос, но пока формулировал вопрос - проблемы саморазрешились.
Собственно говоря было два косяка.
1 - недостаточно большие буферы для передачи слелал, из-за чего пакеты больше 64 КБ не уходили по ws протоколу (а это были самые важные I-frame)
2 - jmuxer.min.js есть какой-то баг, который видимо затесался туда при минификации скрипта. В варианте без min всё хорошо. Причем глянул - и тот и другой файл были сгенерированны из одних и тех-же исходников.
Собственно говоря ни тот, ни другой баг не относятся собственно к видео.
Reply
Leave a comment