V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qfdk
V2EX  ›  问与答

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

  •  
  •   qfdk · 2016-04-20 23:01:25 +08:00 · 2463 次点击
    这是一个创建于 3164 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2016-04-21 15:47:16 +08:00

    PS:GIthub 地址 https://github.com/qfdk/projetESIR 未来将更新doc和所需用的代码。

    目前的步骤:

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

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

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

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

    求教,树莓派版的 ffmpeg 怎么获得?我之前编译了一遍,运行时提示我缺少几个 [什么.so.56] 文件
    zhjits
        9
    zhjits  
       2016-04-21 09:06:18 +08:00
    @xmoiduts 用 gstreamer 加上树莓派的硬编码插件应该会好不少。
    qfdk
        10
    qfdk  
    OP
       2016-04-21 13:22:46 +08:00 via iPhone
    @zhjits 感谢你的建议 我会事实跟进我们项目的每一步
    qfdk
        11
    qfdk  
    OP
       2016-04-21 15:40:09 +08:00
    @xmoiduts 如果成功了,希望分享一下经验。本帖会根据项目的情况做更新。
    qfdk
        12
    qfdk  
    OP
       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
        13
    qfdk  
    OP
       2016-05-29 01:43:25 +08:00
    不知道大家还有没有关注的,现在的项目已经完成了,一个分布式的视频直播,而且延迟很好。可以正常投入生产使用了。分了好几个人写的代码,现在大家可以拿去玩儿了。
    vincixu
        14
    vincixu  
       2016-06-06 12:59:08 +08:00
    @qfdk 开源了?
    vincixu
        15
    vincixu  
       2016-06-06 12:59:56 +08:00
    @qfdk 为什么是法语文档
    qfdk
        16
    qfdk  
    OP
       2016-06-06 14:51:51 +08:00
    @vincixu 恩,搞定了,开源了,不过 WEB 建议重写, 回去我会重新写个项目,中文+法文文档。
    qfdk
        17
    qfdk  
    OP
       2016-06-06 14:53:57 +08:00
    @vincixu 晚些回去重新建一个项目,作为推流的后端,里面加上简单的 api ,前端可以直接调用。可以做到伪-负载均衡,推流服务器和处理服务器分开的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 19:59 · PVG 03:59 · LAX 11:59 · JFK 14:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.