fotografia:camaras:streaming:raspberry
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
fotografia:camaras:streaming:raspberry [2024/11/10 18:42] – created jose | fotografia:camaras:streaming:raspberry [2024/11/18 20:27] (current) – jose | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Raspberry streaming bookworm ====== | ||
+ | |||
Creamos la Raspberry | Creamos la Raspberry | ||
sudo dd if=/ | sudo dd if=/ | ||
Line 16: | Line 18: | ||
echo ' | echo ' | ||
+ | Conectamos wifi con ip fija. El fichero se tiene que llamar con el id con la extensión nmconnection. Luego cambiar permisos a 600 | ||
+ | sudo vim rootfs/ | ||
+ | < | ||
+ | [connection] | ||
+ | id=TuID | ||
+ | type=wifi | ||
+ | autoconnect=true | ||
+ | [wifi] | ||
+ | mode=infrastructure | ||
+ | ssid=TuSSID | ||
+ | [wifi-security] | ||
+ | key-mgmt=wpa-psk | ||
+ | psk=TuContraseña | ||
+ | |||
+ | [ipv4] | ||
+ | method=manual | ||
+ | address1=192.168.1.XX/ | ||
+ | dns=8.8.8.8; | ||
+ | |||
+ | [ipv6] | ||
+ | method=ignore | ||
+ | </ | ||
+ | |||
+ | Cambiamos permisos a 600 | ||
+ | sudo chmod 600 rootfs/ | ||
+ | |||
+ | Cambiadmos SWAP a 1024 | ||
+ | sed -i ' | ||
+ | |||
+ | ====== Configuramos Streaming ====== | ||
+ | Usaremos este software\\ | ||
+ | https:// | ||
+ | |||
+ | Bajamos el binario:\\ | ||
+ | https:// | ||
+ | |||
+ | wget https:// | ||
+ | |||
+ | Configuramos en el yaml: | ||
+ | < | ||
+ | paths: | ||
+ | cam_stream: | ||
+ | source: publisher | ||
+ | </ | ||
+ | |||
+ | Enviamos con ffmpeg: | ||
+ | ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -framerate 30 -i /dev/video0 -c:v libx264 -b:v 2000k -crf 18 -preset ultrafast -tune zerolatency -f rtsp rtsp:// | ||
+ | |||
+ | ffmpeg -f v4l2 -probesize 10M -analyzeduration 10M -video_size 1280x720 -framerate 30 -i /dev/video0 -c:v libx264 -b:v 2000k -crf 18 -preset ultrafast -tune zerolatency -f rtsp rtsp:// | ||
+ | |||
+ | RASPI 4 | ||
+ | ffmpeg -f v4l2 -input_format yuyv422 -video_size 1280x720 -framerate 30 -i /dev/video0 -c:v h264_v4l2m2m -b:v 2000k -preset ultrafast -tune zerolatency -f rtsp rtsp:// | ||
+ | |||
+ | En OBS también configuramos rtsp: | ||
+ | rtsp:// | ||
+ | En mediamtx se puede ver: | ||
+ | 2024/11/18 17:19:12 INF [RTSP] [session 1e5bc2e0] is reading from path ' | ||
+ | |||
+ | |||
+ | ====== PRUEBAS ====== | ||
+ | < | ||
+ | Este comando funciona bien | ||
+ | ffmpeg -f v4l2 -input_format mjpeg -video_size 1280x720 -framerate 30 \ | ||
+ | -i /dev/video0 -c:v libx264 -b:v 2000k -crf 18 -preset ultrafast -tune zerolatency \ | ||
+ | -f rtsp rtsp:// | ||
+ | |||
+ | rpi3 tiene muchos frames duplicados. CPU: 256% MEM: 13.1% | ||
+ | rpi4 no tiene frames duplicados pero pixela mucho CPU: 133% MEM: 1.5% | ||
+ | rpi5 igual que la rpi4 no tiene frames duplicados pero pixela mucho CPU: 84.7% MEM: 1.5% | ||
+ | |||
+ | |||
+ | Según chatgpt: | ||
+ | Cuando el q es mas alto mayor calidad, viene dado por el CRF que le ponga | ||
+ | frame= 8315 fps= 29 q=15.0 Lsize=N/A time=00: | ||
+ | |||
+ | Significado de q=15.0 | ||
+ | El valor q=15.0 indica la calidad de codificación del video en términos de QP (Quantization Parameter): | ||
+ | |||
+ | Más bajo (q=0) significa mejor calidad (más carga en el sistema). | ||
+ | Más alto (q=51) significa peor calidad (menos carga en el sistema). | ||
+ | Este valor está controlado por el CRF que configuraste (-crf 18 en tu comando). En general: | ||
+ | |||
+ | CRF 18: Calidad muy alta (visualmente indistinguible del original). | ||
+ | CRF 23: Calidad buena. | ||
+ | CRF 28+: Calidad media a baja. | ||
+ | |||
+ | HE probado con CRF a 23 y sigue perdiendo frames pero va mas fluido y calidad aceptable | ||
+ | |||
+ | Si quiero usar aceleración por hardware etngo que pasar a yuv420p y entonces me lo pixela mucho en la rpi3 aunque no pierde frames | ||
+ | ffmpeg se pone a 179%cpu y 11.8% mem | ||
+ | |||
+ | ffmpeg -f v4l2 -input_format mjpeg -video_size 1280x720 -framerate 30 \ | ||
+ | -i /dev/video0 -vf format=yuv420p -c:v h264_v4l2m2m -b:v 2000k \ | ||
+ | -f rtsp rtsp:// | ||
+ | |||
+ | v4l2-ctl --list-devices | ||
+ | v4l2-ctl --list-formats-ext -d /dev/video0 | ||
+ | ffmpeg -encoders | grep h264_v4l2m2m | ||
+ | |||
+ | |||
+ | </ |
fotografia/camaras/streaming/raspberry.1731264163.txt.gz · Last modified: 2024/11/10 18:42 by jose