# dudu **Repository Path**: dev-tang/dudu ## Basic Information - **Project Name**: dudu - **Description**: 用Rust语言编写的摄像头(IPC)推流软件 - **Primary Language**: Rust - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 4 - **Created**: 2021-11-28 - **Last Updated**: 2024-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, IPC推流, 摄像头, 直播 ## README # 嘟嘟推流 ## 一、概述 嘟嘟推流是基于 Rust 语言编写的音视频推流应用,主要功能是将内网摄像头视频流推送到云端的流媒体服务器,实现外网查看监控的目的。 嘟嘟推流系统除了可以独立运行之外,还提供了友好的 HTTP 接口,第三方系统可以通过 HTTP 协议,将本应用集成进去。 ![image-20211128124046596](./static/images/image-20211128124046596.png) ## 二、应用场景 智慧小区、智能安防、工厂、商超、修理厂等有摄像头的场景。 ![image-20211128133137398](./static/images/image-20211128133137398.png) ## 三、效果预览 嘟嘟推流不仅提供了 HTTP 接口,还提供了一个简单的推流配置页面。 **登录** ![image-20211128134901762](./static/images/image-20211128134901762.png) *默认用户/密码:admin/admin* **主页** ![image-20211128135100308](./static/images/image-20211128135100308.png) **推流列表** ![image-20211128141043543](./static/images/image-20211128135241025.png) **VLC播放** ![image-20211128141338344](./static/images/image-20211128141338344.png) ## 四、编译 编译项目代码需要一些前置条件:必须先安装好 `rust` 和 `ffmpeg` 环境。然后配置好 `FFMPEG_PKG_CONFIG_PATH` 和 `FFMPEG_INCLUDE_DIR` 后才能开始编译。 1、克隆本项目代码 ```shell git clone https://gitee.com/dev-tang/dudu.git cd dudu ``` 2、编译前端 ``` cd web yarn install yarn run build cd .. ``` 3、编译运行 ```shell cargo build && RUST_LOG=debug target/debug/dudu ``` ## 五、第三方接入 嘟嘟推流采用前后端分离架构,想将推流程序接入自己系统,只要运行服务端程序,然后通过 `http api` 进行调用即可。 ![image-20211128190330160](./static/images/image-20211128190330160.png) ## 附录 在编译前需要一些准备工作,要配置 ffmpeg 相关的环境变量,本项目引用了 [rusty_ffmpeg](https://github.com/CCExtractor/rusty_ffmpeg/) 库,详细配置可以参考 [rusty_ffmpeg](https://crates.io/crates/rusty_ffmpeg) 的说明。 **示例** ```shell git clone -b release/4.4 https://gitee.com/mirrors/ffmpeg.git cd ffmpeg ./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --disable-asm make make install export FFMPEG_PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig export FFMPEG_INCLUDE_DIR=/usr/local/ffmpeg/include ```