Войти

Показать полную графическую версию : [решено] Просмотр MJPEG потока в WinForms


Tonny_Bennet
09-08-2012, 18:04
Здравствуйте.

Настроил на Linux-машине пакет mjpg_streamer и теперь могу смотреть поток с веб камеры в формате MJPEG через браузер по адресу http://192.168.0.1:300/?action=stream.

Хочется сделать просмотр в приложении. Сначала подумал просто добавить объект web-браузер и прописать адрес потока, но вспомнив, что в окно вставляется нечто похожее на IE решил проверить. В IE при переходе по сслыке браузер начинает сохранять файл размер которого постоянно растёт, скорее всего он сохраняет поток в файл и просто показывать его не умеет.

По ссылке http://192.168.0.1:300/?action=snapshot приложение отдаёт фотографию, которую IE показывает нормально. Можно извратиться и сделать обновление браузера по таймеру, но пусть это будет последний вариант...

Подскажите пожалуйста как наиболее просто можно сделать просмотр потока MJPEG в С#?

Tonny_Bennet
09-08-2012, 18:43
Разобрался.

Вот тут (channel9.msdn.com/coding4fun/articles/MJPEG-Decoder) статья. Тут (http://mjpeg.codeplex.com/) все библиотеки. Ниже пример проверенного кода, который выводит картинку через PictureBox.


using MjpegProcessor;


namespace solMJPGstream
{
public partial class Form1 : Form
{
MjpegDecoder _mjpeg;


public Form1()
{
InitializeComponent();
_mjpeg = new MjpegDecoder();
_mjpeg.FrameReady += mjpeg_FrameReady;
_mjpeg.ParseStream(new Uri("http://192.168.0.1:300/?action=stream"));
}

void mjpeg_FrameReady(object sender, FrameReadyEventArgs e)
{
pictBox.Image = e.Bitmap;
}
}
}

nikast
05-03-2014, 12:03
Да, все здорово..
но когда я пытаюсь вывести изображение с трех камер, НЕ работает. Две ок, три и больше не работают.. что делать не знаю, похоже что-то с либой mjpegprocessor. Или может кто сталкивался с такой проблемой, буду благодарен за совет.




© OSzone.net 2001-2012