@[toc]
RTMP简介
- 是流媒体协议。
- RTMP协议是 Adobe 的私有协议,未完全公开。
- RTMP协议一般传输的是 flv,f4v 格式流。
- RTMP一般在 TCP 1个通道上传输命令和数据。
详细资料:https://cloud.tencent.com/developer/article/1038381
nginx简介
nginx是一个高性能的HTTP和反向代理服务器,其特点是占用内存少,并发能力强。
代理服务器:
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站,去获取信息。
主要的功能有:
- 突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。
- 访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。
- 突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种 限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国 外的代理服务器试试。
- 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
- 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击.
安装与使用
安装
1 | sudo apt-get install nginx # 安装Nginx |
配置nginx
1 | vim /etc/nginx/nginx.conf #打开配置文件 |
1 | rtmp { |
nginx常用指令
1 | sudo service nginx reload #不重启重新载入最新配置文件内容 |
使用ffmpeg推流
推流指令
- 一次性推流该指令是推流一个文件,推结束后,就会停止,客户端拉流完成后也会结束。
1
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://192.168.0.103:1935/live/test
- 添加参数循环推流
1
ffmpeg -re -stream_loop 1 -i test.mp4 -c copy -f flv rtmp://192.168.0.103:1935/live/test
- 使用脚本循环推流
1
2
3
4
5
6for((;;)); do \
ffmpeg -re -i "H:\video.mp4" \
-c copy \
-f flv -y rtmp://10.100.1.4:1935/live/12345; \
sleep 1; \
done指令详解
1
2
3
4-re ffmpeg 默认打开文件以后,处理速度很快。为了让 ffmpeg 模拟本地设备,以流的速度处理,需要此选项。
-i 这是输入文件选项。
-c 这是推流的过程中,直接 copy 编码的 H264/AAC 流,避免解码、编码。
-f 这是输出格式,我们这里用 -f flv 标明需要通过 flv 格式推流。后面小节会单独讲解 AVC/AAC 如何打包 flv tag的。使用VLC软件点播
点播
测试过程中发现不能点播MP3文件,原因不明1
rtmp://192.168.0.103:1935/vod/test.mp4
直播
1
rtmp://192.168.0.103:1935/live/test