- 安装ffmpeg、nginx、nginx-rtmp-module和VLC播放器
- 启动nginx服务器,配置nginx以支持rtmp
- 配置FFmpeg
- 使用ffmpeg 将视频文件转换成rtmp流格式输出
- 使用VLC播放器进行拉流测试
具体操作流程如下:
1、cmd启动nginx服务器:
nginx.exe -c confnginx-win-rtmp.conf
2、新开一个cmd (不要关闭之前的ngnix)
注:
a.FLV是由一个FLV Header和若干tag(Video Tag, Audio Tag, Script Tag三种,分别代表视频流,音频流和脚本流)组成的二进制文件。
b.rtmp通过flv格式推送音视频流(h264/aac)。
c.MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。
d.流化的本质就是按顺序提取音视频帧的过程,即计算每个数据帧在文件中的偏移量的问题。
然后输入一下指令:
1)rtmp直播
ffmpeg -re -i video.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/home // ffmpeg -re -i video.mp4 -vcodec libx264 -r 25 -b:v 500k -s 640*480 -acodec aac -f flv rtmp://127.0.0.1:1935/live/home
电脑打开vlc播放器输入地址:rtmp://127.0.0.1:1935/live/home
然后先点击命令行回车 再点击播放
2)hls直播
ffmpeg -re -i video.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/hls/movie
电脑打开vlc播放器输入地址:http://localhost:8080/hls/movie.m3u8
然后先点击命令行回车 再点击播放
3)rtmp点播(文件预先存放在指定目录,nginx的rtmp点播协议支持flv格式,部分支持mp4)
电脑打开vlc播放器输入地址:rtmp://localhost:1935/vod/video.flv【http点播:http://localhost:8080/vod/video.mp4】
附nginx-win-rtmp.conf配置:
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
server_names_hash_bucket_size 128;
## Start: Timeouts ##
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 30;
send_timeout 10;
keepalive_requests 10;
## End: Timeouts ##
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html;
}
location /hls {
#server hls fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias D:/work/hls/temp;
expires -1;
#root D:/work/hls/temp;
#add_header Cache-Control no-cache;
}
location /vod {
alias D:/work/video;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
}
application hls {
live on;
hls on;
hls_path D:/work/hls/temp;
hls_fragment 5s;
}
application vod {
play D:/work/video;
}
application vod_http {
play http://127.0.0.1:8080/vod/;
}
}
}



