搭建HLS推流环境
Posted Zhang Jun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建HLS推流环境相关的知识,希望对你有一定的参考价值。
- 安装ffmpeg、nginx、nginx-rtmp-module和VLC播放器
- 启动nginx服务器,配置nginx以支持rtmp
- 配置FFmpeg
- 使用ffmpeg 将视频文件转换成rtmp流格式输出
- 使用VLC播放器进行拉流测试
具体操作流程如下:
1、cmd启动nginx服务器:
nginx.exe -c conf\\nginx-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/;
以上是关于搭建HLS推流环境的主要内容,如果未能解决你的问题,请参考以下文章
Centos7 搭建Nginx+rtmp+hls直播推流服务器
搭建Nginx+nginx-rtmp-module的hls流媒体服务器并用OBS进行推流