学校给了一个奇葩的项目,内容如下, One of the great features of ffmpeg filtering library is the ability to create overlays, allowing users to put one video over another. We can also use this feature to implement the mosaic video output, usually used in security surveillance systems. We would like to enable the use of a set of Raspberry PI to create a sceanrio in which we could create overlays and stream in real time a set of videos using a cluster of raspberry PI.
The goal will be to investigate if we could benefits from a cluster to improve the separation of concerns between several tasks that can be the videos encodings, videos overlays, videos streaming …
A validation scenarios can be a low cost product to create MOOC devices for teacher. Each teacher could install a set of raspberry PI in the room and stream the content of its laptop and the different stream to autonamatically generate a new videos stream. In this project, we can consider the use of a janus WebRTC Gateway to stream the resulting stream on the web.
设备已经拿回来了,现在是 10 个人的小团队了。 个人对架构的理解,不知道大家有什么好的建议。 语言我想用 Node.js 来做,他们提议界面用 angular JS.有做过的大神求科普。
CAM1 ---- Raspeberry1----> vm1(VPS 存数据)
CAM2 ---- Raspeberry2 ----> vm2 --->Nginx --> Clients
CAM3 ---- Raspeberry3 ----> vm3
PS:GIthub 地址 https://github.com/qfdk/projetESIR 未来将更新doc和所需用的代码。
目前的步骤:
1
hardware 2016-04-20 23:15:19 +08:00
虽然不懂怎么搞集群 但这么搞集群的话 我想分数不高
|
2
qfdk OP 啊,似乎不是群集,就是用不同的摄像机,进行多方的直播
|
4
jame 2016-04-21 00:35:29 +08:00
楼主是我失散多年的兄弟吗?
|
6
xmoiduts 2016-04-21 08:09:40 +08:00 via Android
我对树莓派运行 ffmpeg 重编码(题目好像是要做 画中画)的效率保持谨慎的态度。说实话,我的 4 代标压 i5 笔记本尚不能做到单路视频的实时转码。在压制本地文件时,一秒能压制出 0.7 秒的视频。而此时风扇和 cpu 都已经满载。
|
7
zhjits 2016-04-21 08:26:32 +08:00 1
@xmoiduts 树莓派有硬件编解码器,能用上的话低分辨率视频速度能实时。这种时候画质就不考虑了。
这个项目大概是这样的:每个摄像头上面挂一个 RPi 实时压缩视频然后走网络传输,全部到教师笔记本上然后笔记本做个类似导播台的软件混成一个视频流,最后这一个视频流还要通过网络发出去。 RPi 上的工作量不大,只要开个 ffmpeg 的 daemon 然后网络传输,摄像头的网络自动发现以及硬件故障自动重新启动就好。主要问题在于那台 laptop 的重编码。 https://obsproject.com/ 这玩意儿是著名的开源直播软件,可以作为参考。 |
8
xmoiduts 2016-04-21 08:55:20 +08:00 1
@zhjits 你的意思是在树莓派端用 ffmpeg 采集视频吗?我用树莓派自带的 raspivid 加 cvlc 试过推流,效果不好:延迟高达三秒,且每个 I 帧之后都会随图像的变动产生明显的拖影。
求教,树莓派版的 ffmpeg 怎么获得?我之前编译了一遍,运行时提示我缺少几个 [什么.so.56] 文件 |
12
qfdk OP 感谢大家的关注,现在给大家汇报一下现在的情况。
Sony HDR-AS30v 有点儿困难连接到电脑来当做摄像头,在 raspi 上有点儿吃力。 做了一个模拟的测试 在校内的 vps 上面搭建了 nginx + rtmp_module 利用 OBS 进行推流,延迟在 3S 左右,不能忍,现在正在思考别的解决方案。 发现一个问题使用 obs 推流的时候上线速度为 500k 左右,这个很不解,换了很多个热点发现推流速度都这样,客户端那边用 VLc 进行接收,发现客户端之间也是有延迟的。 到时候吧新感受再说一下。 简单介绍一下如何搭建 nginx 服务器 首先去 lnmp.org 下载安装包,一键安装没有技术含量,然后进行加入 rtmp_module ``` cd /root git clone https://github.com/arut/nginx-rtmp-module.git 在 lnmp 中的 include 编辑一下 `upgrade_nginx.sh` ,在 Nginx_Modules_Options='' 单引号中加上 加上 --add-module=/root/nginx-rtmp-module ``` 这样的话一个简单的 rtmp 搞定了,电脑可以推流, raspi 还没有推过测试。 |
13
qfdk OP 不知道大家还有没有关注的,现在的项目已经完成了,一个分布式的视频直播,而且延迟很好。可以正常投入生产使用了。分了好几个人写的代码,现在大家可以拿去玩儿了。
|