Member 14666358 Ответов: 0

Как уменьшить/удалить отставание от настольного приложения CCTV live stream IP CAMERA (JPEG) в C#?


Я написал C# код прямой трансляции IP-камеры (JPEG) в приложении windows form, используя библиотеку AForge. Он работает, но слишком сильно отстает.

Вот этот код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using AForge.Video; 
namespace CCTV_software 
{ 
    public partial class Form1 : Form 
    { 
        JPEGStream stream; 
        JPEGStream stream1; 
        public Form1() 
        { 
            InitializeComponent(); 
            stream = new JPEGStream("ip"); 
            stream1 = new JPEGStream("ip1"); 
stream.Login = "username"; 
stream.Password =  "password"; 
stream1.Login = "username1"; 
stream1.Password = "password1"; 
            stream.NewFrame += stream_NewFrame; 
            stream1.NewFrame += stream1_NewFrame1; 
            stream.Start(); 
            stream1.Start(); 
        } 
 
 
        void stream_NewFrame(object sender, NewFrameEventArgs eventArgs) 
        { 
            Bitmap bmp = (Bitmap)eventArgs.Frame.Clone(); 
            pictureBox1.Image = bmp;  
        } 
        void stream1_NewFrame1(object sender, NewFrameEventArgs eventArgs) 
        { 
            Bitmap bp = (Bitmap)eventArgs.Frame.Clone(); 
            pictureBox2.Image = bp; 
        } 
    } 


Что я уже пробовал:

Попробовал добавить:

stream.FrameInterval = 0;


и

stream.FrameInterval = 1000;


Но это не имеет никакого значения. Я думаю, что помещаю его в неправильное место в коде. Я пишу его ниже строки stream1.NewFrame, например так:

stream1.NewFrame += stream1_NewFrame1;
     stream.FrameInterval = 1000;
     stream.Start();
     stream1.Start();
 }

Gerry Schmitz

Вот что такое "буферизация x%".

Member 14666358

Что такое буферизация x%?

Gerry Schmitz

Это то, что делают NetFlix, Sony и т. д.: торгуйте одним более длинным лагом для многих маленьких.

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

Member 14666358

Как я могу это сделать? У вас есть какой-нибудь исходный код для него?

ZurdoDev

Получить более быстрый компьютер?

Member 14666358

Думаю, это не имеет никакого отношения к компьютеру. Кстати, попробовал его на 3 разных компьютерах, и результаты те же.

Chris Copeland

Можете ли вы предоставить дополнительную информацию о том, что производит JPEGStream? Я понимаю, что это будут изображения, но в каком они разрешении? Они полностью RGB или просто черно - белые? И какие скорости сети вы видите?

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

Member 14666358

Поток цветной (полный RGB). Разрешение точно неизвестно, но оно самое низкое. И он подключен непосредственно через ethernet.

Dave Kreskowiak

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

Member 14666358

Так что же я могу сделать в этом случае? Мне нужна камера для быстрой потоковой передачи, и она поддерживает только JPEG.

Dave Kreskowiak

Какую часть фразы "у тебя нет выбора" ты не понял?

Сначала вы должны выяснить, откуда идет отставание. Это на стороне камер? Какова задержка между моментом, когда изображение находится перед камерой, и моментом, когда данные для изображения начинают выходить из нее? Это связано со скоростью или надежностью сетевого соединения? Они подключены к Wi-Fi или проводному интернету? Сколько данных содержится в одном кадре?

Заметьте, все это не имеет никакого отношения к вашему коду.

[no name]

The first thing I would do is see if my application is responsible for the camera lagging. You can easily rule out your application as being the cause by testing the camera using a different application on the same computer, if a different application shows no lagging than the problem is with your application. If a different application does however give you the same lagging experience than there is a greater than normal chance your application is not the issue but rather it could be a network/camera issue. You should be able to search google for an alternative IP Camera viewer application. What is the speed of your network connection? Is the computer or camera connected to the network through wireless or wired connection?

Member 14666358

Я так и сделал. Он отлично работает на других программах в той же сети.

0 Ответов