一、目的:通过搭建直播软件环境来了解直播软件的原理
二、环境:
1、Win10
2、nginx - (rtmp服务器)
3、OBS Studio或FFmpeg.exe - (用于推流)
4、VLC media player或PotPlayer - (用于拉流)
本示例以最简单的方式进行尝试:FFmpeg.exe(推流)+VLC(拉流)
三、步骤:
a、下载并配置nginx+rtmp服务器 ,修改配置文件(..\nginx\conf\nginx.conf)如下
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
timeout 20s;
application hls {
live on;
hls on;
hls_path temp/hls;
hls_playlist_length 5s;
hls_fragment 1s;
}
}
}
http {
server {
listen 8089;
location / {
root www;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root www;
}
location /hls {
#server hls fragments
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias temp/hls;
expires -1;
}
location /daniu9966cotlive<GODWisH> {
rtmp_control all;
}
}
}
b、双击启动运行nginx
c、浏览器输入地址:http://127.0.0.1:8089/stat 显示信息如下
d、应用FFmpeg.exe推流(可以推送桌面、可以推送视频文件、也可以推送摄像头,本示例以最简单的推送桌面为示例,其他方式类同)
只需运行如下命令:ffmpeg -f gdigrab -i desktop -f flv rtmp://127.0.0.1:1935/hls/12345 即可将屏幕信息推送到rtmp服务器上,当执行后统计信息页面变成如下:
其中12345 是自定义的串流密钥,根据此密钥进行拉流
e、通过VLC Player拉流:
打开VLC Player 点击菜单:媒体-打开网络串流-输入串流地址:rtmp://127.0.0.1:1935/hls/12345-点击播放
如下图可以看到,VLC播放当前桌面信息
四、总结:
通过简单的示例可以了解到,部署直播环境主要有三个方面:
1、推流
2、服务器
3、拉流
后面有时间将会尝试通过 WPF+FFmpeg API +SDL2实现一个简单的直播桌面程序
五、下载地址: