差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:cc93:usbwifi [2025/02/23 18:43] robindigi:arm-embedded:cc93:usbwifi [2025/05/18 22:16] (当前版本) robin
行 1: 行 1:
 ====USB摄像头通过Wifi传输视频测试==== ====USB摄像头通过Wifi传输视频测试====
 +一、配置WiFi AP
 +默认地,WiFi AP功能并未开启,需要更改驱动加载参数,可设置为2 (AP)或7(所有功能)
 +
 +<code>
 +cd /etc/udev/scripts/
 +nano load*
 +</code>
 +修改后,即使没改interface为auto,启动时也会进入start job状态, 进入系统后,相关的接口已经能用了,AP也可工作。
 +
 +deyaio的rtsp镜像,默认加载区域代码设置服务,默认为US,如果需要设置不同国家地区,可以更改/lib/systemd/system/set-regdomain.service 中的命令行中的国家代码,并在/etc/hostapd@uap0中的最后一行做同样配置。
 +为了方便连接,建议首次刷好固件后,设置区域,配置ap网口为auto,并在/etc/hostapd@uap0中修改ssid名称和连接密码,比如用ap-cc93,密码用digidigi
 +
 +注意,如果没有移除connectcore demo,连接首页时是dashboard。判断哪个程序或服务占用了80端口,可以用
 +<code>
 +netstat -tulnp | grep :80
 +</code>
 +
 +二、配置摄像头
 +<code>
 +v4l2-ctl --list-devices  #查看设备
 +v4l2-ctl -d /dev/video0 --list-formats-ext  #查看摄像头支持的输出格式
 +v4l2-ctl -d /dev/video0 --get-fmt-video  #查看当前输出格式
 +v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=MJPG   #设置输出格式
 +gst-launch-1.0 v4l2src device=/dev/video0 ! autovideoconvert ! autovideosink  #在显示屏上输出摄像头的视频,这个命令不是很好用,
 +事实上,确定摄像头输出格式是mjpg,则需要用waylandsink更高效处理,命令如下:
 +gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg ! jpegparse ! jpegdec ! videoconvert ! waylandsink 
 +或直接用
 +gst-launch-1.0 v4l2src device=/dev/video0 ! waylandsink
 +
 +</code>
 +
 +三、配置http视频频
 +
 +1、使用mjpg_streamer
 +如果要输入ip地址就访问到视频流,创建相关视频流的页面,以video0为例
 +<code>
 +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
 +开启http视频流
 +tmux 
 +mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720 -f 30" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
 +另创建一个tmux终端界面,运行打开本地显示的命令
 +gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 +</code>
 +
 +
 +*****
 +<code>
 +mjpg_streamer -i "input_uvc.so -d /dev/video1 -r 1280x720 -f 30" -o "output_http.so -p 8080 -w /srv/www"
 +</code>
 +打开web的方式是 http://192.168.46.30:8080/?action=stream
 +如果要输入ip地址就访问到视频流,创建
 +<code>
 +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
 +mjpg_streamer -i "input_uvc.so -d /dev/video1 -r 1280x720 -f 30" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"
 +
 +</code>
 +如果本地也要显示,则可以
 +<code>
 +ffplay http://localhost:8080/?action=stream
 +
 +gst-launch-1.0 -v souphttpsrc location=http://localhost:8080/?action=stream ! jpegdec ! autovideosink
 +
 +
 +</code>
 +
 +
 +
 +______________________
  
 注意编译cc93的镜像时,集成AI的包带有一个自动运行的服务eiqdemo,需要先关闭,以免摄像头被自动占用,这个服务程序在:/lib/systemd/system/eiqdemo.service。 注意编译cc93的镜像时,集成AI的包带有一个自动运行的服务eiqdemo,需要先关闭,以免摄像头被自动占用,这个服务程序在:/lib/systemd/system/eiqdemo.service。
行 10: 行 80:
  
 </code> </code>
-当然,也可以在编译镜像时移除这个包+当然,也可以在编译镜像时移除这个包,要编译测试包,可使用deyaio-rtsp这个源 
 +<code> 
 +repo init -u https://github.com/peyoot/dey-aio-manifest.git -b kirkstone -m rtsp.xml 
 +</code>
  
 启动前就插入好摄像头,一般可以用下面命令: 启动前就插入好摄像头,一般可以用下面命令:
行 29: 行 102:
   </cdoe>   </cdoe>
      
 + 用output_viewer.so插件实现本地显示:
 +<code>
 +v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=MJPG
 +mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720 -f 30" -o "output_viewer.so -w 1280 -h 720 -t 'Live Preview'"
 +这个output_viewer.so效率不高,所以可以直接用gstreamer来实现
 +gst-launch-1.0 souphttpsrc location=http://localhost/?action=stream  ! multipartdemux  ! jpegdec  ! videoconvert  ! waylandsink
 +
 +改好后的本地插件也可以用:
 +mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 15" -o "output_viewer.so -i0 -w640 -h480 -f15" -o "output_http.so -p 80 -w /srv/mjpg_streamer/www"
 +
 +</code>