一、目的:通過搭建直播軟件環境來了解直播軟件的原理
二、環境:
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實現一個簡單的直播桌面程序
五、下載地址: