一、目的
从OpenCV中读取帧后,一方面对帧进行其他处理,同时把获取的帧推送到rtmp服务器实现直播。
二、docker中搭建rtmp服务器
本文忽略如何安装docker,docker的命令等。
(一) 拉取rtmp镜像并运行
我用的是 jun3/rtmp 这个镜像(GitHub地址是:https://github.com/jun3372/rtmp)
docker pull jun3/rtmp
docker run --name rtmp -p 1935:1935 -p 8080:80 -d -it jun3/rtmp
(二) rtmp服务器的简单操作
运行镜像后在浏览器地址栏输入:127.0.0.1:8080即可看到这个界面:
image.png
不过可能是我浏览器的缘故,即使在推流时也无法播放。
在浏览器地址栏输入:127.0.0.1:8080/stat 可查看rtmp服务器当前推拉流的情况。
没有视频流推送时是这样的:
image.png
有视频流推送时是这样的:
image.png
(三) FFmpeg推流验证
怎么装FFmpeg就忽略过了。我是从ARM嵌入式主机推流的,Ubuntu18的操作系统。在终端中用此命令推流:
$ ffmpeg -f video4linux2 -s 640x480 -i /dev/video10 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://1.2.3.4:1935/stream/pupils_trace
<