Openwrt下使用ffmpeg配合自建RTSP服务器实现推流

目前在Openwrt下时mjpg_streamer实现UVC摄像头转网络摄像头的方案很多,这种方案视频服在路由模组中,在局域网中使用很方便。但是对于需要远程监控管理的情况,mjpg_streamer不适应,因为不在局域网中的播放器无法访问到路由模组中的视频服。这里介绍使用ffmpeg将本地视频推送到云端服务器的方法,下面以SKYLAB的SKW99模组为例进行说明。

(1)将ffmepg编译到固件中

openwrt一般默认支持ffmpeg,SKW99在make menuconfig中,对应的路径如下:

(2)视频服

这里使用rtsp视频服务器,由于条件有限,选择自己搭建,方法如下:

环境搭建

复制代码
sudo apt-get install build-essential
sudo apt-get install cmake    //版本需要大于3.2

sudo apt-get install libssl-dev libsdl-dev libavcodec-dev libavutil-dev ffmpeg
sudo apt-get install libsdl-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavutil-dev
sudo apt-get install ffmpeg

源码下载:

复制代码
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit.git

cd ZLMediaKit

编译:

复制代码
mkdir build
cd build
cmake ..
make -j4

运行:

复制代码
cd release/linux/Debug
vim config.ini    //修改视频服的端口号
./MediaServer    //运行服务器
./MediaServer -d &    //守护进程模式启动

(3)测试

在SKW99接好摄像头后,运行如下命令:此时服务器端的IP为192.168.8.193,对应rtsp的端口为5541:

推送mjpeg视频流:

复制代码
ffmpeg -f video4linux2 -input_format mjpeg -framerate 15 -video_size 640x480 -i /dev/video0 -vcodec copy -rtsp_transport tcp -f rtsp rtsp://192.168.8.193:5541/live/livestream

设备端运行输出:

【分辨率640x480/15帧】:使用带宽11.5Mbps左右,视频有延时,不卡顿;

在rtsp服务器端的输出:

使用vlc查看视频流:rtsp://192.168.8.193:5541/live/livestream

相关推荐
行者-全栈开发11 小时前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
spring boot·ffmpeg·异步处理·视频压缩·hls切片·批量任务·redis队列
可乐鸡翅yeah_15 小时前
M3U8测试流使用指南,流媒体开发自测与环境校验标准化方案
网络·ffmpeg·音视频·m3u8·m3u8在线·音视频在线播放
heqingchun1615 小时前
Ubuntu 22.04 交叉编译 RK3568 MPP + FFmpeg 完整指南
linux·ubuntu·ffmpeg
刘广睿16 小时前
音频降噪实战:ffmpeg 滤镜、RNNoise 与人声分离方案对比
ffmpeg·音视频·效率工具·剪辑
IvorySQL2 天前
代价比较的变革——PostgreSQL执行计划干预增强深度解析
数据库·postgresql·ffmpeg
≮傷£≯√3 天前
Qt 面试(一)
qt·ffmpeg·音视频
刘广睿4 天前
视频字幕从提取到烧录:SRT/ASS 格式与 ffmpeg 字幕滤镜全流程
ffmpeg·音视频·效率工具·剪辑·字幕
可乐鸡翅yeah_4 天前
FFmpeg 与浏览器 HLS 播放表现差异,定位跨客户端兼容问题
ffmpeg·音视频·m3u8·m3u8在线·音视频在线播放
刘广睿6 天前
断点续传与分片下载是怎么实现的?Range 请求在视频下载中的工程实践
okhttp·ffmpeg·音视频·下载·python3.11
IvanCodes8 天前
FFmpeg安装与使用教程
ffmpeg