差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:usbwifi [2025/03/24 11:08] robindigi:arm-embedded:ccmp2:usbwifi [2025/03/24 14:59] (当前版本) robin
行 18: 行 18:
 nano /etc/hostapd_wlan1.conf nano /etc/hostapd_wlan1.conf
 </code> </code>
-注意,包括信道等的优化也可在这里配置 +注意,包括信道等的优化也可在这里配置,但第一次修改,请先只配置ssid和密码,修改如下: 
- +<code> 
 +ssid=ap-ccmp25 
 +wpa_passphrase=digidigi 
 +</code>
  
  
 设置摄像头: 设置摄像头:
 <code> <code>
-v4l2-ctl --list-devices  #查看设备,最后一项第一个才是摄像头,以 /dev/video2为例,其它设备是硬件codec之类的,也可能未来有用。 +v4l2-ctl --list-devices  #查看设备,最后一项第一个才是摄像头,以 /dev/video7为例,其它设备是硬件codec之类的,也可能未来有用。 
-v4l2-ctl -d /dev/video2 --list-formats-ext  #查看摄像头支持的输出格式 +v4l2-ctl -d /dev/video7 --list-formats-ext  #查看摄像头支持的输出格式,视新只支持MJPG或YUYV,都是800X800,帧率为5~30fps,低端窄带的小模块,可以用5~15fps来节约带宽,最高设置为30fps。 
-v4l2-ctl -d /dev/video2 --get-fmt-video  查看当前输出 + 
-v4l2-ctl -d /dev/video2 --set-fmt-video=width=1024,height=768,pixelformat=MJPG   #设置输出格式,请根据摄像头支持来修改+v4l2-ctl -d /dev/video7 --get-fmt-video  #查看当前输出 ,也可简写为v4l2-ctl -d /dev/video7 -V 
 +v4l2-ctl -d /dev/video7 --get-parm  #查看当前帧率,默认30fps 
 + 
 +v4l2-ctl -d /dev/video7 --set-fmt-video=width=800,height=800,pixelformat=MJPG   #设置输出格式,请根据摄像头支持来修改,客户的工装摄像头默认是800X800@30fps,所以也可不用修改使用默认值,其它摄像头需要根据支持格式来修改
  
 gst-launch-1.0 v4l2src device=/dev/video2 ! autovideoconvert ! autovideosink  #注意,如果想简单测试一下在显示屏上输出摄像头的视频,可用这个,但它会占用设备,不可再用web共享,因此为了web共享,用下面这个办法,先创建web的流,再用相同的流本地显示  gst-launch-1.0 v4l2src device=/dev/video2 ! autovideoconvert ! autovideosink  #注意,如果想简单测试一下在显示屏上输出摄像头的视频,可用这个,但它会占用设备,不可再用web共享,因此为了web共享,用下面这个办法,先创建web的流,再用相同的流本地显示 
行 38: 行 43:
 <code> <code>
 1、创建ip直接访问所需页面 1、创建ip直接访问所需页面
 +mkdir -p /srv/mjpg_streamer/www
 echo "<html><body><h1>MJPG Streamer</h1><img src=\"/?action=stream\" /></body></html>" > /srv/mjpg_streamer/www/index.html echo "<html><body><h1>MJPG Streamer</h1><img src=\"/?action=stream\" /></body></html>" > /srv/mjpg_streamer/www/index.html
-2、mjpg_streamer -i "input_uvc.so -d /dev/video2 -r 1280x720 -f 30" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"+2、mjpg_streamer -i "input_uvc.so -d /dev/video7 -r 800x800 -f 30" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www" 
 +或简版:mjpg_streamer -i "input_uvc.so -d /dev/video7" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"
 3、本地打开:gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink 3、本地打开:gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 </code> </code>
 +整成脚本:
 +<code>
 +#!/bin/bash
  
 +mjpg_streamer -i "input_uvc.so -d /dev/video2 -f 10" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www" &
  
 +sleep 1
  
 +gst-launch-1.0 souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
  
 +</code>
  
  
 +4、窄带小模块的优化方式
 +在mjpg_streamer -i "input_uvc.so -d /dev/video7 -r 800x800 -f 10" -o "output_http.so -p 8080 -w /srv/mjpg_streamer/www"
 +
 +5、gstreamer的方式测试及比较
 +注意,我们创建/tmp/camera_fifo,这个每次启动都会清掉,所以要用这个重启需再创建,或放在服务中
 +<code>
 +mkfifo /tmp/camera_fifo
 +gst-launch-1.0 -q v4l2src device=/dev/video7 ! \
 +  image/jpeg,width=800,height=800,framerate=30/1 ! \
 +  multipartmux boundary=frame ! \
 +  filesink location=/tmp/camera_fifo &
 +nano /srv/www/cgi-bin/stream
 +内容为:
 +#!/bin/sh
 +echo "Content-Type: multipart/x-mixed-replace; boundary=spionisto"
 +echo
 +cat /tmp/camera_fifo
 +在thttpd.conf中启用
 +nano /etc/thttpd.conf 
 +内容如下:
 +dir=/srv/www
 +cgipat=/cgi-bin/*
 +user=root
 +</code>
 +
 +本地
 +<code>
 +本地显示 
 +gst-launch-1.0 filesrc location=/tmp/camera_fifo ! \
 +  multipartdemux boundary=frame ! \
 +  image/jpeg ! jpegdec ! videoconvert ! waylandsink
 +如果直接用摄像头而不是fifo流的命令是这个,但如果用web后估计会是占用状态,所以用上面的方式
 +gst-launch-1.0 v4l2src device=/dev/video7 ! \
 +  image/jpeg,width=800,height=800 ! \
 +  jpegdec ! videoconvert ! \
 +  waylandsink
 +</code>
  
 +rtsp的方法待测