代码拉取完成,页面将自动刷新
专为树莓派(Raspberry Pi)设计的多媒体播放器,支持(视频、音频、图片、摄像头、动画、文本、二维码),支持无黑场切换
注意:这并不是一个开源项目,只是免费提供已经编译好的多媒体播放程序 ...
硬件 | 分辨率 | FPS | 测试 |
---|---|---|---|
Raspberry Pi Zero | 720p | 25 | 已测试 |
Raspberry Pi 3A+ | 1080p/720p | 25 | 已测试 |
Raspberry Pi 3B+ | 1080p/720p | 25 | 已测试 |
Raspberry Pi 4B | 1080p | 30 | 待测试 |
Rockchip | 1080p | 30 | 可定制 |
Linux Intel/NVIDIA | 1080p/4K | 30/60 | 可定制 |
Windows 7/10 | 1080p/4K | 30/60 | 可定制 |
其它 | 1080p/4K | 30/60 | 可定制 |
系统 | 日期 | 安装 | 测试 |
---|---|---|---|
Raspbian Buster with desktop | 2019-09-26 | buster/install | 已测试 |
1. 显存设置
文件 | 设置 |
---|---|
/boot/config.txt | gpu_mem=192 (显存内存分配不能少于192M) |
2. 安装程序
git clone https://github.com/nulijiabei/xplay.git
cd xplay/
cd buster/ # Raspbian Buster with desktop
sh -x install
3. 运行程序
参数 | 默认 | 说明 |
---|---|---|
-R x,y,width,height | 0,0,1920,1080 | 分辨率设置 |
-fps n | 25 | 帧率设置 |
-noloop | 无 | 视频在播放到结尾时是否停留在最后一帧 |
-mute | 无 | 静音设置 |
-sample_rate n | 44100 | 音频采样频率设置 |
-cpuid | 无 | 显示CPUID |
// 分辨率 1920x1080 【默认】
// 帧率 25fps 【默认】
// 音频采样率 44100 【默认】
// 视频循环播放【默认】
// 播放声音【默认】
/usr/bin/xplay
// 分辨率设置 1280x720
// 音频采样率设置 48000
// 视频循环设置 视频在播放到结尾时停留在最后一帧
// 【未设置则使用默认设置】
/usr/bin/xplay -R 0,0,1280,720 -sample_rate 48000 -noloop
4. 播放测试
// 测试工具
apt-get install telnet
// 测试指令
root@raspberrypi:~# telnet 127.0.0.1 8700
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
// 指令内容
{
"libName": "video",
"params": {
"path": "/root/sample.mp4",
"width": 1920,
"height": 1080,
"zIndex": 10
},
"type": "play"
}
#End
5. 查看日志
tail -n 100 /dev/shm/xplay.log
指令类型(type) | 说明 |
---|---|
play | 播放 |
stop | 停止 |
素材类型(libName) | 说明 |
---|---|
video | 视频 |
camera | 摄像头 |
pic | 图片 |
gif | 动画 |
qrcode | 二维码 |
text | 文本 |
// 指令说明
{
"id": "Z10_Play_1557737960000", // 唯一标记(自定义唯一标识)【非必填】
"type": "play" // 指令类型【必填】
"start": -1, // 开始时间(默认:-1,立即播放,本地毫秒时间戳)【非必填】
"libName": "video", // 素材类型(video、pic、camera、gif、qrcode、text)【必填】
"params": { // 参数集合【必填】
"zIndex": 10, // 层(支持多层播放,层数越小画面越靠前)【必填】
"path": "/root/sample.mp4", // 素材路径【必填】
"left": 0, // 距左像素(X轴)【非必填】
"top": 0, // 距顶像素(Y轴)【非必填】
"width": 1920, // 宽(素材显示的宽,非素材原始尺寸,支持缩放拉伸)【必填】
"height": 1080, // 高(素材显示的高,非素材原始尺寸,支持缩放拉伸)【必填】
"screen_mode": "landscape", // 屏幕模式(横屏:landscape,竖屏:portrait,默认横屏)【非必填】
"screen_rotate": 0 // 旋转角度(横屏角度:0、180,竖屏角度:90、270,默认横屏)【非必填】
}
}
#End // 指令结束【必填】
// 显示图片
{
"id": "Z10_Play_1556637960000",
"type": "play",
"start": -1,
"libName": "pic",
"params": {
"zIndex": 10,
"path": "/root/cat.jpg",
"top": 0,
"left": 0,
"height": 1080,
"width": 1920,
"screen_mode": "landscape",
"screen_rotate": 0
}
}
#End
// 显示摄像头
// 启用摄像头 raspi-config > Interfacing Options > P1 Camera
{
"id": "Z10_Play_1558837960000",
"type": "play",
"start": -1,
"libName": "camera",
"params": {
"zIndex": 10,
"device": "/dev/video0",
"camera_width": 1280,
"camera_height": 720,
"top": 0,
"left": 0,
"width": 1920,
"height": 1080,
"screen_mode": "landscape",
"screen_rotate": 0
}
}
#End
// 显示动画
{
"id": "Z10_Play_1554437960000",
"type": "play",
"start": -1,
"libName": "gif",
"params": {
"zIndex": 10,
"path": "/root/aaa.gif",
"top": 0,
"left": 0,
"height": 100,
"width": 100,
"screen_mode": "landscape",
"screen_rotate": 0
}
}
#End
// 显示二维码
{
"id": "Z10_Play_1558837960000",
"type": "play",
"start": -1,
"libName": "qrcode",
"params": {
"zIndex": 10,
"content": "http://www.danoonetwork.com",
"top": 0,
"left": 0,
"height": 100,
"width": 100,
"screen_mode": "landscape",
"screen_rotate": 0
}
}
#End
// 停止全部层
{
"type": "stop",
"params": {
"all": true
}
}
#End
// 停止指定层
{
"type": "stop",
"params": {
"ids": ["10", "11", "12"]
}
}
#End
// 例如:
// 1. 先发送指令:播放一个视频 a.mp4 使用 10 层 ...
{
"libName": "video",
"params": {
"path": "/root/a.mp4",
"width": 1920,
"height": 1080,
"zIndex": 10
},
"type": "play"
}
#End
// 2. 后发送指令:播放一个视频 b.mp4 使用 10 层 ...
{
"libName": "video",
"params": {
"path": "/root/b.mp4",
"width": 1920,
"height": 1080,
"zIndex": 10
},
"type": "play"
}
#End
// 这样 10 层先播放的 a.mp4 会无黑场的切换为 b.mp4 播放 ...
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。