mido搭建实时摄像服务器
使用红米note4x读取usb摄像头内容,并通过rtsp视频流共享到局域网
rtsp视频流流程
其中mido当做前两者
先搭建rtsp服务器
使用这个项目 https://github.com/bluenviron/mediamtx
,下载解压release中的文件后,直接运行二进制文件即可
root@mido:~/rstp# ls
LICENSE mediamtx mediamtx_v1.8.3_linux_arm64v8.tar.gz mediamtx.yml
root@mido:~/rstp# ./mediamtx
默认端口是8554,其余配置可在 mediamtx.yml
中修改
推流
使用ffmpeg推流到服务器
先查看摄像头支持的数据格式,分辨率和帧率
root@mido:~/rstp# v4l2-ctl --list-formats-ext -d /dev/video2
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 1920x1080
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.040s (25.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.040s (25.000 fps)
[1]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.067s (15.000 fps)
mjpg格式使用1080p可达到25帧,选择mjpg
ffmpeg命令如下
ffmpeg -f v4l2 -input_format mjpeg -framerate 25 -video_size 1280x720 -i /dev/video2 -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://localhost:8554/mystream
实际效果
如果没有报错,在局域网设备上支持播放rtsp视频流的软件上,输入rtsp://mido的ip:8554/mystream
即可观看效果
实测帧率挺高,就是延迟有5s左右,网络占用没到瓶颈,cpu占用也只是30附近,单核也没有出现爆满的情况,不知为何
License:
CC BY 4.0