Sony HDR-AS30v 和树莓派 s 的架构

2016-04-20 23:01:25 +08:00
 qfdk

学校给了一个奇葩的项目,内容如下, 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

2462 次点击
所在节点    问与答
17 条回复
hardware
2016-04-20 23:15:19 +08:00
虽然不懂怎么搞集群 但这么搞集群的话 我想分数不高
qfdk
2016-04-20 23:59:43 +08:00
啊,似乎不是群集,就是用不同的摄像机,进行多方的直播
qfdk
2016-04-21 00:01:22 +08:00
@hardware 说简单的就是用摄像机进行直播,要用上树莓派。剩下的需要的东西都能提供。
jame
2016-04-21 00:35:29 +08:00
楼主是我失散多年的兄弟吗?
qfdk
2016-04-21 02:29:41 +08:00
@jame 哈哈哈 终于等到你 还不快答题.📣('ᴗ' )و
xmoiduts
2016-04-21 08:09:40 +08:00
我对树莓派运行 ffmpeg 重编码(题目好像是要做 画中画)的效率保持谨慎的态度。说实话,我的 4 代标压 i5 笔记本尚不能做到单路视频的实时转码。在压制本地文件时,一秒能压制出 0.7 秒的视频。而此时风扇和 cpu 都已经满载。
zhjits
2016-04-21 08:26:32 +08:00
@xmoiduts 树莓派有硬件编解码器,能用上的话低分辨率视频速度能实时。这种时候画质就不考虑了。

这个项目大概是这样的:每个摄像头上面挂一个 RPi 实时压缩视频然后走网络传输,全部到教师笔记本上然后笔记本做个类似导播台的软件混成一个视频流,最后这一个视频流还要通过网络发出去。

RPi 上的工作量不大,只要开个 ffmpeg 的 daemon 然后网络传输,摄像头的网络自动发现以及硬件故障自动重新启动就好。主要问题在于那台 laptop 的重编码。

https://obsproject.com/ 这玩意儿是著名的开源直播软件,可以作为参考。
xmoiduts
2016-04-21 08:55:20 +08:00
@zhjits 你的意思是在树莓派端用 ffmpeg 采集视频吗?我用树莓派自带的 raspivid 加 cvlc 试过推流,效果不好:延迟高达三秒,且每个 I 帧之后都会随图像的变动产生明显的拖影。

求教,树莓派版的 ffmpeg 怎么获得?我之前编译了一遍,运行时提示我缺少几个 [什么.so.56] 文件
zhjits
2016-04-21 09:06:18 +08:00
@xmoiduts 用 gstreamer 加上树莓派的硬编码插件应该会好不少。
qfdk
2016-04-21 13:22:46 +08:00
@zhjits 感谢你的建议 我会事实跟进我们项目的每一步
qfdk
2016-04-21 15:40:09 +08:00
@xmoiduts 如果成功了,希望分享一下经验。本帖会根据项目的情况做更新。
qfdk
2016-04-30 21:45:00 +08:00
感谢大家的关注,现在给大家汇报一下现在的情况。
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 还没有推过测试。
qfdk
2016-05-29 01:43:25 +08:00
不知道大家还有没有关注的,现在的项目已经完成了,一个分布式的视频直播,而且延迟很好。可以正常投入生产使用了。分了好几个人写的代码,现在大家可以拿去玩儿了。
vincixu
2016-06-06 12:59:08 +08:00
@qfdk 开源了?
vincixu
2016-06-06 12:59:56 +08:00
@qfdk 为什么是法语文档
qfdk
2016-06-06 14:51:51 +08:00
@vincixu 恩,搞定了,开源了,不过 WEB 建议重写, 回去我会重新写个项目,中文+法文文档。
qfdk
2016-06-06 14:53:57 +08:00
@vincixu 晚些回去重新建一个项目,作为推流的后端,里面加上简单的 api ,前端可以直接调用。可以做到伪-负载均衡,推流服务器和处理服务器分开的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/272652

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX