一种简单的树莓Pi无线显示接收器/接收器

picast的Python项目详细描述


Travis test statushttps://badge.fury.io/py/picast.svgDocumentation statushttps://coveralls.io/repos/github/miurahr/picast/badge.svg?branch=master

说明

picast是一个简单的wifi显示接收器,由Python3在覆盆子Pi上编写。 目前的状态是早期阿尔法。欢迎提供错误报告和贡献。在

依赖关系

picast依赖于几个外部实用程序,有些仅依赖于Raspbian。在

  • tvservice(仅限raspbian)
  • udhcpd(仅限于debian/ubuntu)
  • wpa_恳求者
  • wpa_cli公司
  • vlc公司

安装和运行

在Raspbian(buster或更高版本)/Raspberry Pi Zero W/WH、RaPi 3B+、RaPi 4上运行apt install命令。在

$ sudo apt install net-tools python3 udhcpd python-gst-1.0 libgtk-3-dev python3-gi python3-pip gir1.2-gtk-3.0
$ sudo apt install gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0
$ sudo apt install gstreamer1.0-plugins-good gstreamer1.0-gtk3 gstreamer1.0-plugins-rtp
$ sudo apt install gstreamer1.0-omx-rpi gstreamer1.0-omx-rpi-config vlc
$ sudo apt install --no-install-recommends lxde
^{pr2}$

自定义

当您想为您的环境定制时,请复制picast/设置.ini您最喜欢的 放置并编辑它。在

然后启动picast,如下所示:

$ picast --config /home/pi/settings.ini

发展

建议使用virtualenv来部署开发环境。 因为python3gi模块是GTK++库的绑定库, 因此,使用python标准pip安装并不容易。在

建议使用系统的站点包python3gi库。在

$ sudo apt install gstreamer1.0-tools
$ git clone https://github.com/miurahr/picast.git picast
$cd picast
$ python3 -m venv --system-site-packages venv
$source venv/bin/activate

然后安装picast作为可编辑的开发环境。在

$ pip install -e .

然后可以在更高的调试级别下启动。在

$ picast --debug

调试日志

/var/tmp有一个调试日志/皮卡斯特.log。配置在日志.ini。在

IDE公司

建议使用PyCharm professional edition,它具有远程部署功能 和调试功能。在

准备

增加GPU内存以解码全高清视频流。 将gpu mem=128添加到/boot/配置文件

使用

Picast在要播放的源设备上搜索名为“Picast”的无线显示。 WPS管脚号使用“12345678”。 建议在源端启动接收器端接。 在Pi连接到源之后,它的IP地址为192.168.173.80。在

这些参数在中配置设置.ini。在

自动启动

@xscreensaver -no-splash
@lxterminal -l -e /home/pi/picast/bin/picast

已知问题

  • 延迟:受限于所使用的RTP播放器的实现。在
  • WiFi:Pi3/Zero W上的车载WiFi芯片仅支持2.4GHz。由于2.4GHz过于拥挤 频谱和使用不可靠的rtp传输,您可能会遇到一些视频抖动/音频结巴。 使用支持IEEE802.11ac 5GHz的PI3B+/4可能会更好。在
  • HDCP(内容保护):在Pi上密钥和硬件都不可用,因此不受支持。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java调用方法时,将对象作为参数发送是否比原始变量慢?   如何在Java中的ApacheSpark中将DataFrame转换为Dataset?   使用ExecutorService时使用java。invokeAll是否有一种即使发生异常也可以获取所有响应的方法   javasocket超时在Servlet中不起作用   具有复合实体键的java双向OneToMany关系导致空标识符   java JPA:如何映射SQL Server uniqueidentifier类型   macos通过Mac计算机获取java硬盘序列号?   java如何将值添加到列表<Map<String,Object>>?   java如何在提交表单后将一个jsp页面中的值转换为两个不同的jsp页面?   数据库连接数与Java线程数   java将无序字符串复制到有序字符串的有效方法   java如何从Flink到Kafka编写protobuf字节数组   hashmap java中arraylist的和值   更改字体后不显示java复选框   AppEngine中的java登录   Java扫描器。nextLine()未等待输入