FFMPEG监控拉流,向流媒体服务器推流

Posted xiayulengleng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFMPEG监控拉流,向流媒体服务器推流相关的知识,希望对你有一定的参考价值。

解决用FFMPEG拉网络监控的RTSP流,然后再推到流媒体服务器,然后再通过流媒体服务器对外发布。拉流推流同时由MMPEG完成,网上的教程大部分都是通过OPENCV拉流,然后通过共享管道向FFMPEG推流。

-i "rtsp://admin:12345678..@10.0.0.17:554/LiveMedia/ch1/Media1" //输入您要处理的视频文件路径
-f flv //强迫采用格式flv
-vcodec libx264 //视频 强制使用libx264编解码方式
-acodec aac //音频 使用aac编解码
-r 50 //要强制输出文件的帧频为24 fps
-g 5 //设置图像组大小
-b:v 300k //要将输出文件的视频比特率设置为300 kbit / s
-s 672*378 //图像显示分辨率
-q 8 //以<数值>质量为基础的VBR,取值0.01-255,约小质量越好
"rtsp://127.0.0.1:8554/test" //推送至本地nginx设置的地址


下面这条命令不能播放,提示未知的协议
ffmpeg -i "rtsp://admin:12345678..@10.0.0.17:554/LiveMedia/ch1/Media1" -f flv -vcodec libx264 -acodec aac -r 50 -g 5 -b:v 300k -s 672*378 -q 8 "rtsp://127.0.0.1:8554/test"


下面这条命令加了指定协议,是可以播放的
ffmpeg -i "rtsp://admin:12345678..@10.0.0.17:554/LiveMedia/ch1/Media1" -f flv -vcodec libx264 -acodec aac -r 50 -g 5 -b:v 300k -s 672*378 -q 8 -f rtsp "rtsp://127.0.0.1:8554/test"

下面这条把视频尺寸去掉,可似播放,但是画面质量很差,-vcodec libx264引起画面质量差
ffmpeg -i "rtsp://admin:12345678..@10.0.0.17:554/LiveMedia/ch1/Media1" -f flv -vcodec libx264 -acodec aac -r 50 -g 5 -b:v 300k -q 8 -f rtsp "rtsp://127.0.0.1:8554/test"

Mac搭建Nginx流媒体服务器,进行推流,拉流

参考技术A Nginx 是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择

下面介绍如何在Mac上搭建流媒体服务器,以便后续的自己研究的项目或者demo向服务器上进行推流

首先需要安装brew,brew是一款管理软件的第三方平台,安装的方式也很简单,请自行查阅安装方式

执行下面2句命令,即可安装rtmp推流的nginx服务器

执行完后,可以查看ngix安装在哪里

可以看到M1 是安装在这个目录下/usr/local/etc/nginx

打开这个目录,可以看到有个nginx.conf文件,这里就是服务器的一个配置文件,如果支持rtmp,则里面的内容会有一个rtmp的json

这个json说明:

1.你本地的nginx服务器会监听1935端口号,

2.服务器会创建一个mytv的程序

后续你可以向这个地址进行推流,并且进行拉流播放

后面我们会使用ffmpeg向这个地址推流
rtmp://localhost:1935/mytv/room

并且用vlc拉取这个地址的流进行播放

执行命令,即可启动nginx服务器

验证是否启动成功,只需要在浏览器中访问下以下链接

在浏览器地址栏输入: http://localhost:8080

出现Welcome to nginx ,代表nginx安装成功了。

打开配置文件 /usr/local/etc/nginx/nginx.conf

这里推的是flv流,可以正常推,这里需要注意的是服务器地址一定要写正确,我的nginx.conf里application配置的是mytv,所以路径就是mytv,room则是随便写都行,代表向程序mytv下的room文件推流

然后电脑上打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL:

验证时,推流的文件最好搞大点,不然一下推完了,你才去拉取播放,则播放不了,因为这是实时的

vlc使用如下

3.点击播放即可

可以看到左边是画面,右边是ffmpeg在推流

参考: https://www.jianshu.com/p/cf74a34af15d

以上是关于FFMPEG监控拉流,向流媒体服务器推流的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg本地拉流时, 连接不到rtmp

流媒体服务海康摄像头RTSP视频推流转码拉流直播综合应用:VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播

C# FFmpeg推流Vlc.DotNet拉流优化参数

流媒体开发—H.264/H.265裸流文件推流

ffmpeg推流及拉流

流媒体中的推流和拉流区别