当前位置: 首页 > wzjs >正文

如何在公司系统建网站自适应网站建设专家

如何在公司系统建网站,自适应网站建设专家,郑州集团网站建设,logo在线设计生成器下载这里写自定义目录标题 在两台设备上安装必要软件Wi-Fi Direct接收端IP(自动发现或静态设置)设置摄像头参数显示初始化网络设置 系统架构概述 发送端树莓派:捕获视频(摄像头或视频文件)→ 编码 → 通过Wi-Fi Direct传输…

这里写自定义目录标题

  • 在两台设备上安装必要软件
  • Wi-Fi Direct接收端IP(自动发现或静态设置)
  • 设置摄像头参数
  • 显示初始化
  • 网络设置

系统架构概述
发送端树莓派:捕获视频(摄像头或视频文件)→ 编码 → 通过Wi-Fi Direct传输

接收端树莓派:接收数据 → 解码 → 在ST7789 LCD屏上显示

准备工作
硬件需求
两个树莓派(建议3B+/4B)

摄像头模块(发送端)

ST7789 LCD屏(接收端)

电源供应

软件需求
bash
复制

在两台设备上安装必要软件

sudo apt update
sudo apt install -y ffmpeg python3-pip git
pip3 install numpy gpiozero spidev st7789

第一部分:配置Wi-Fi Direct连接

  1. 在两台树莓派上配置Wi-Fi Direct
    编辑网络配置文件:

bash
复制

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下内容(两台设备配置相同):

复制

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=USnetwork={ssid="DIRECT-RPi"mode=1frequency=2412key_mgmt=WPA-PSKpsk="raspberry"
}

重启网络服务:

bash
复制

sudo systemctl restart networking

或者

sudo systemctl restart NetworkManager

或者

sudo systemctl restart systemd-networkd

不同发行版使用的网络服务不同,具体使用哪条指令,可以先通过以下指令确认当前使用的是哪个网络管理工具:

sudo systemctl list-units --type=service | grep -E '(network|NetworkManager)'
  1. 验证连接
    在两台设备上执行:

bash
复制

sudo iw dev wlan0 scan | grep "DIRECT-RPi"

应该能看到彼此的设备。

第二部分:发送端设置(视频采集和传输)

  1. 视频采集脚本 sender.py
    python
    复制
import subprocess
import socket
import time

Wi-Fi Direct接收端IP(自动发现或静态设置)

RECEIVER_IP = "192.168.4.2"  # 典型Wi-Fi Direct IP
PORT = 5000

设置摄像头参数

WIDTH, HEIGHT = 640, 480
FPS = 24
BITRATE = "500k"def start_stream():# 使用FFmpeg捕获摄像头并编码为H.264ffmpeg_cmd = ['ffmpeg','-f', 'v4l2','-input_format', 'h264','-video_size', f'{WIDTH}x{HEIGHT}','-framerate', str(FPS),'-i', '/dev/video0','-c:v', 'copy',  # 直接使用摄像头硬件编码'-f', 'h264','-']# 网络传输设置soc = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 启动FFmpeg进程process = subprocess.Popen(ffmpeg_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)try:while True:# 读取FFmpeg输出并发送data = process.stdout.read(1024)if not data:breaksoc.sendto(data, (RECEIVER_IP, PORT))except KeyboardInterrupt:process.terminate()soc.close()if __name__ == "__main__":start_stream()

第三部分:接收端设置(接收和显示)

  1. 安装显示驱动库
    bash
    复制
git clone https://github.com/pimoroni/st7789-python
cd st7789-python
sudo python3 setup.py install
  1. 接收和显示脚本 receiver.py
python
复制
import socket
import subprocess
import threading
from PIL import Image
import st7789
import numpy as np

显示初始化

disp = st7789.ST7789(height=240,width=240,rotation=90,port=0,cs=8,dc=24,rst=25,spi_speed_hz=80 * 1000 * 000
)

网络设置

PORT = 5000
BUFFER_SIZE = 1024 * 8  # 8KB缓冲区def display_frame(frame_data):"""将接收到的帧数据显示在LCD上"""try:# 转换为PIL图像(假设是RGB格式)img = Image.frombytes('RGB', (240, 240), frame_data)disp.display(img)except Exception as e:print(f"显示错误: {e}")def receive_stream():sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind(('0.0.0.0', PORT))# 使用FFmpeg解码ffmpeg_cmd = ['ffmpeg','-i', '-',          # 从stdin读取'-f', 'rawvideo',   # 输出原始视频帧'-pix_fmt', 'rgb24','-s', '240x240',    # 调整为屏幕分辨率'-']process = subprocess.Popen(ffmpeg_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)while True:data, _ = sock.recvfrom(BUFFER_SIZE)if data:process.stdin.write(data)# 从FFmpeg读取解码后的帧frame = process.stdout.read(240*240*3)  # RGB 240x240if frame:display_frame(frame)if __name__ == "__main__":receive_stream()

优化方案

  1. 降低延迟技巧
    发送端:

python
复制

ffmpeg_cmd = ['ffmpeg','-fflags', 'nobuffer',  # 减少输入缓冲'-flags', 'low_delay',  # 低延迟模式'-tune', 'zerolatency', # 零延迟调优# ...其他参数
]
接收端:python
复制
disp = st7789.ST7789(# ...其他参数spi_speed_hz=120 * 1000 * 1000  # 提高SPI速度
)
  1. 自动发现IP地址
    在两台设备上添加:

python
复制

import netifacesdef get_wifi_direct_ip():try:return netifaces.ifaddresses('p2p-wlan0-0')[netifaces.AF_INET][0]['addr']except:return None

常见问题解决
连接不稳定:

缩短设备间距离

尝试不同频道:sudo iwconfig wlan0 channel 6

视频卡顿:

降低分辨率:改为320x240

降低帧率:15FPS

减少比特率:“300k”

显示异常:

检查SPI连接

确认ST7789初始化参数正确

降低SPI速度测试

最终启动流程
发送端:

bash
复制
python3 sender.py
接收端:

bash
复制
python3 receiver.py
这个方案实现了从摄像头采集到无线传输再到屏幕显示的全流程,你可以根据需要调整视频参数和显示设置。

http://www.dtcms.com/wzjs/569238.html

相关文章:

  • 400电话网络推广微信网站西安 美院 网站建设
  • 分模板网站和定制网站做seo排名好的公司
  • 温岭市建设工程质量安全网站人防网站建设
  • 用c 建网站时怎么做导航菜单栏从化网站建设公司
  • 网站建设客户好评信微信公众号与网站绑定
  • 阜阳讯拓网站建设公司网站开发文档合同
  • 苏州论坛建站模板2024中核招聘网最新招聘公告
  • 凡科怎么做网站广西做网站公司有哪些
  • 青海建设厅网站黑名单微信小程序商城软件开发
  • 易企秀网站怎么做轮播图建设应用型网站的意义
  • 广东省住房城乡建设厅网站江西省建设厅政务大厅网站
  • 我常用的网站有哪些类型有哪些类型有哪些做网站密云
  • 专门做产品定制的网站沧州有做网站的吗
  • wordpress网站很卡石家庄市鹿泉区确诊病例
  • 无为县住房和城乡建设局网站中国能源建设集团有限公司是央企
  • 网站备案 怎么加网站pc客户端制作
  • 建设厅网站密码找回制作外贸网站模板
  • 网站如何添加统计代码php网站留言板怎么做
  • 商城网站策划书域名访问
  • 免费网站如何做宣传国外免费空间建网站
  • 大同市住房与城乡建设厅网站晋城企业网站建设价格
  • 基于ASP.NET的购物网站建设2023二级建造师报名官网入口
  • 怎么知道别人网站是谁做的优化肇庆网站建设方案优化
  • 网站建设费是无形资产吗iis网站开发教程
  • 成都网站建设维护广东省住房和城乡建设厅网站
  • 用自己网站做邮箱域名解析办公室装修怎么做账
  • flash制作网站教程网站页面布局图片
  • 网站建设经典范例手机加速器
  • 建设企业查询网站wordpress页面构建
  • 培训管理网站建设怎么做网站设计方案