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

相关推荐
codelancera1 天前
ffmpeg-调整视频分辨率
ffmpeg·音视频
chenchao_shenzhen2 天前
RK3568嵌入式音视频硬件编解码4K 60帧 rkmpp FFmpeg7.1 音视频开发
ffmpeg·音视频·rk3588·音视频开发·嵌入式开发·瑞芯微rk3568·硬件编解码
_多拉不懂A梦3 天前
FFmepg源码系列-avformat_open_input()
c++·ffmpeg·音视频
阿飞__7 天前
C++使用FFmpeg进行视频推流
c++·ffmpeg·音视频
mortimer7 天前
pydub下音频处理:跨越wav格式的4GB限制这道坎
python·ffmpeg·numpy
aqi007 天前
FFmpeg开发笔记(八十)使用百变魔音AiSound实现变声特效
android·ffmpeg·音视频·直播·流媒体
王江奎8 天前
FFmpeg 视频旋转信息处理:3.4 vs 7.0.2
ffmpeg·音视频
superxxd8 天前
基于ffmpeg和rk3588的mpp编解码库多路融屏程序设计
ffmpeg
aqi008 天前
FFmpeg开发笔记(七十九)专注于视频弹幕功能的国产弹弹播放器
android·ffmpeg·音视频·直播·流媒体