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

相关推荐
感谢地心引力1 天前
【AI】加入AI绘图的视频封面快速编辑器
人工智能·python·ai·ffmpeg·音视频·pyqt·gemini
HoKis1 天前
Powershell 向CMD窗口发送CTRL+C(优雅结束控制台应用程序)
ffmpeg·powershell·cmd
shanks662 天前
FFmpeg 入门指南:多媒体处理的瑞士军刀
c语言·ffmpeg
扶尔魔ocy2 天前
【QT window】multimedia+ffmpeg实现(PCM和MP4)录音功能
qt·ffmpeg·pcm
小曾同学.com3 天前
SRT协议推拉流
ffmpeg·实时音视频·vlc·obs·srt协议·srt推拉流
小曾同学.com3 天前
NetInt 硬件编码实战转码压测
ffmpeg·netint硬件编码
扶尔魔ocy3 天前
【QT window】ffmpeg实现录音功能之AAC格式--mp4
qt·ffmpeg·视频处理
小曾同学.com3 天前
HLS协议中m3u8列表及ts文件的由来
ffmpeg·hls·ts文件·m3u8列表
skyjilygao4 天前
n8n整合ffmpeg
ffmpeg·视频编辑·n8n
别动哪条鱼4 天前
SDL 函数对各对象缓冲区的影响
网络·数据结构·ffmpeg