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: by jose
