ffmpeg流媒体服务
2020-05-18 本文已影响0人
小米稀饭a
小僧很想和同行的朋友沟通交流、并肩前行,志同道合的朋友看过来喽!
ffmpeg流媒体服务
image-20200405102545515.png整个流媒体服务的原理如图,采集端将音频流、视频流推送到流媒体服务器,接收端拉取流媒体服务器的音频、视频流。流媒体服务器可以接受多个采集端的数据流上传,也可接受多个接收端的数据流拉取。
nginx流媒体服务器的搭建(windows)
-
下载nginx、nginx-rtmp-moudle(要放在nginx目录里)
-
配置文件nginx-win-rtmp.conf
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
}
}
}
server里修改如下:
server {
listen 80;
server_name localhost;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root nginx-rtmp-module-master/;
}
location /control {
rtmp_control all;
}
将此加入到配置文件nginx-win-rtmp.conf
-
启动nginx流媒体服务器
命令行进入到nginx目录,输入如下命令从配置文件启动
nginx.exe -c conf\nginx-win-rtmp.conf
-
验证服务启动
- 命令行输入命令检查端口是否被占用
netstat -ano | findstr 0.0.0.0:80
如果有端口号80的结果,说明80端口启用了
- 浏览器输入 http://localhost:80回车,出现如下页面
-
服务器流状态查看,http://localhost:80/stat
image-20200405105325119.png
- 关闭命令
nginx.exe -s stop 快速停止nginx
nginx.exe -s quit 完整有序停止nginx
taskkill /f /t /im nginx.exe 强制关掉nginx
采集端 ffmpeg推流
在开发板系统上安装ffmpeg,使用命令推流
ffmpeg -f video4linux2 -s 800*600 -i /dev/video0 -f alsa -ac 1 -ar 11025 -i hw:3,0 -ar 11025 -r 36 -f flv rtmp://{流媒体服务器ip地址}:1935/live/me
此时刷新流媒体服务器状态页会发现这个流的状态
image-20200407095745089.png接收端拉流
http://www.ossrs.net/players/srs_player.html 一款基于浏览器的播放工具,在浏览器访问该地址,进入页面
image-20200405111935256.png正确填写URL,端口号之前为流媒体服务器的ip,之后是要拉的流的路径,例如推流路径是/live/me,那么拉流路径也是/live/me。配置好之后点击播放视频,即可获得推送的音视频内容。