mjpg-streamer es una aplicación de línea de comandos que puede copiar cuadros JPEG de uno o más complementos de entrada a múltiples complementos de salida.
Se puede usar para transmitir archivos JPEG desde cámaras web a varios tipos de espectadores, como Chrome, Firefox, Cambozola, VLC, mplayer y otro software capaz de recibir transmisiones MJPG a través de una red basada en IP.
Originalmente fue escrito para dispositivos integrados con recursos de CPU y RAM muy limitados. Su predecesor "uvc_streamer" fue creado porque una cámara compatible con Linux-UVC genera directamente datos JPEG, incluso desde un dispositivo integrado que ejecuta OpenWRT, también puede lograr una transmisión M-JPEG rápida y de alto rendimiento. El módulo de entrada "input_uvc.so" captura dichos marcos JPG de la cámara web conectada. mjpg-streamer ahora admite muchos dispositivos de entrada diferentes.
- Clonar el código fuente
eric@eric-PC:~/Documents/linux-c$ git clone https://gitee.com/hainan89/mjpg-streamer.git
正克隆到 'mjpg-streamer'...
remote: Enumerating objects: 2902, done.
remote: Counting objects: 100% (2902/2902), done.
remote: Compressing objects: 100% (1030/1030), done.
remote: Total 2902 (delta 1844), reused 2902 (delta 1844), pack-reused 0
接收对象中: 100% (2902/2902), 3.46 MiB | 969.00 KiB/s, 完成.
处理 delta 中: 100% (1844/1844), 完成.
- Dependencia de instalación libjpeg8-dev, gcc, g ++
eric@eric-PC:~/Documents/linux-c$ sudo apt-get install cmake libjpeg8-dev
eric@eric-PC:~/Documents/linux-c$ sudo apt-get install gcc g++
- Ingrese mjpg-streamer / mjpg-streamer-experimental, si hace un
error de solicitud: 'CV_IMWRITE_JPEG_QUALITY' no se declaró en este alcance, luego agregue manualmente el
archivo de definición : mjpg-streamer / mjpg-streamer-experimental / plugins / input_opencv.cpp
// eric++
#define CV_IMWRITE_JPEG_QUALITY 1
#define CV_IMWRITE_PNG_COMPRESSION 16
#define CV_IMWRITE_PXM_BINARY 32
// eric<<
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$ ls
cmake Dockerfile LICENSE Makefile mjpg_streamer.h plugins README.md start.sh utils.c www
CMakeLists.txt docker-start.sh makedeb.sh mjpg_streamer.c [email protected] postinstall.sh scripts TODO utils.h
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$ make
...
[100%] Linking C shared library output_udp.so
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
make[3]: 离开目录“/home/eric/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental/_build”
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
[100%] Built target output_udp
make[2]: 离开目录“/home/eric/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental/_build”
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
make[1]: 离开目录“/home/eric/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental/_build”
- Instalar en pc
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$ sudo make install
- Iniciar mjpeg-streamer
eric@eric-PC:~/Documents/linux-c/mjpg-streamer/mjpg-streamer-experimental$ ./start.sh
MJPG Streamer Version: git rev: 501f6362c5afddcfb41055f97ae484252c85c912
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: -1
i: Format............: JPEG
i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
o: www-folder-path......: ./www/
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled
i: select() timeout
i: cleaning up resources allocated by input thread
- Prueba: ingrese http: // localhost: 8080 en el navegador