• Как стримить без задержек 12-16 видеопотоков на одной странице?

    @rPman
    У тебя очевидно не хватает производительности железа - либо сетевой канал перегружен (т.е. буквально больше 9 видео с выбранным битрейтом забивают весь канал), либо процессор и видеоускоритель, через который браузер декодирует видео.

    Т.е. прежде чем что то решать, нужно четко понять, что именно является узким местом. Убедись что у тебя процессор не на 100% нагружен. Оцени нагрузку на сеть.

    Варианты решения:
    * уменьшить битрейт, уменьшить разрешение видео, уменьшить fps видео - это поможет как с сетью так и нагрузкой на процессор
    * проверить наличие драйверов на видеокарту, бывает что идущие с операционной системой поддерживают ускорение на базовом уровне и его не хватает для декодирования 16 видео (это очень высокая нагрузка даже с низким разрешением видео)
    * установить более мощную видеокарту (кстати этот вриант потребует исследований)
    * поставить промежуточный сервер декодер (на базе того же ffmpeg, у него есть ограниченная поддержка gpu) который будет собирать твои видео в матрицу и выдавать единое видео, как частный случай не все 16 а по 4 видео. Дело в том что одно видео с высоким битрейтом и разрешением потребует меньше ресурсов чем несколько видео с суммарно таким же битрейтом и разрешением (если считать по количеству пикселов)... там зависимость нагрузки не линейная.
    Как частный случай, просто перекодируя поток из тяжелого высокоэффективного кодека в какой-нибудь mjpeg можно неплохо снять нагрузку с итоговой машины (советую поперебирать кодеки), но высоких fps такой подход не даст.
    Ответ написан
    2 комментария