# BXC_StreamPusher **Repository Path**: L-kyle/BXC_StreamPusher ## Basic Information - **Project Name**: BXC_StreamPusher - **Description**: C++/FFmpeg开发的零延迟摄像头拉流转码推流器 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-11-12 - **Last Updated**: 2026-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BXC_StreamPusher * gitee开源地址:https://gitee.com/beixiaocai/BXC_StreamPusher ## 相关视频 * 视频教程地址:https://www.bilibili.com/video/BV1RN411K75R ## 介绍 * 基于C++/FFmpeg开发的零延迟摄像头拉流转码推流器 * 应用场景包括:摄像头视频流或其他视频流+实时转码+实时推流 零延迟 ## 快速开始 ### Linux 系统编译运行 一,安装 FFmpeg 开发库与编译工具 ~~~ # Ubuntu / Debian sudo apt update sudo apt install -y cmake g++ \ libavformat-dev libavcodec-dev libavutil-dev \ libswscale-dev libswresample-dev libavdevice-dev libavfilter-dev ~~~ * 其他发行版请用对应包管理器安装 ffmpeg 开发包(ffmpeg-devel / ffmpeg-dev 等) 二,下载并编译 ~~~ git clone https://gitee.com/beixiaocai/BXC_StreamPusher.git cd BXC_StreamPusher mkdir build && cd build cmake .. make ~~~ 三,运行 ~~~ # 参数:-i 拉流地址 -o 推流地址 -w 宽(默认1920) -h 高(默认1080) -p 查看帮助 ./BXC_StreamPusher -i rtsp://127.0.0.1:554/live/test -o rtsp://127.0.0.1:554/live/c001 ~~~ ### Windows 系统编译运行 * 项目已在 3rdparty/windows/ffmpeg 中提供编译好的 FFmpeg 开发库(include + lib),无需自行编译 FFmpeg 一,使用 Visual Studio 编译 1. 用 Visual Studio 2019(或更高版本,对应 v142 工具集)打开 BXC_StreamPusher.sln 2. 顶部「解决方案平台」选择 x64(Debug|x64 或 Release|x64);FFmpeg 的 include/lib 路径已在 .vcxproj 中配置为相对路径 ..\3rdparty\windows\ffmpeg 3. 菜单「生成」→「生成解决方案」(或按 F7) 4. 编译产物位于 x64/Debug 或 x64/Release 目录,得到 BXC_StreamPusher.exe * 注意:务必选择 x64 平台。Win32 配置未配置 FFmpeg 库路径,直接编译会找不到 FFmpeg 头文件与库 二,运行 ~~~ # 在 x64/Debug 或 x64/Release 目录下打开命令行 BXC_StreamPusher.exe -i rtsp://127.0.0.1:554/live/test -o rtsp://127.0.0.1:554/live/c001 ~~~ ### 通过ffmpeg实现拉流+转码+推流(优化后,延时在900毫秒左右) ~~~ ffmpeg -rtsp_transport udp -i srcUrl -fflags nobuffer -max_delay 1 -threads 5 -profile:v high -preset superfast -tune zerolatency -an -c:v h264 -crf 25 -s 1280*720 -f rtsp -bf 0 -g 5 -rtsp_transport udp dstUrl ffmpeg -rtsp_transport tcp -i rtsp://127.0.0.1:554/live/camera -fflags nobuffer -max_delay 1 -threads 5 -profile:v high -preset superfast -tune zerolatency -an -c:v h264 -crf 25 -s 1280*720 -f rtsp -bf 0 -g 5 -rtsp_transport tcp rtsp://127.0.0.1:554/live/camera2 ffmpeg -rtsp_transport tcp -i srcUrl -fflags nobuffer -max_delay 1 -threads 5 -profile:v high -preset superfast -tune zerolatency -an -c:v h264 -crf 25 -s 1280*720 -f rtsp -bf 0 -g 5 -rtsp_transport udp dstUrl ~~~ ### 通过推流本地文件,模拟一个摄像头的RTSP视频流 ~~~ // rtsp推流(文件推流) ffmpeg -re -i camera_60s.mp4 -rtsp_transport tcp -c copy -f rtsp rtsp://127.0.0.1:554/live/camera // rtsp推流(文件循环推流) ffmpeg -re -stream_loop -1 -i camera_60s.mp4 -rtsp_transport tcp -c copy -f rtsp rtsp://127.0.0.1:554/live/camera ~~~