Nginx 点播
对于点播功能, nginx-rtmp-module 模块只提供了三条相关命令,但是能满足基本的要求: >- play - play_temp_path - play_local_path
1 |
|
play
- 文件格式是
mp4
和flv
。 - 文件可以是本地的,也可以是网络上http可以访问到的。
- play 指令中可以指定多个文件路径
- 多个play指令的时候,会合并指令中的位置。在播放的时候会在这些路径列表中的文件夹下依次查找,查不到,就会给前端返回一个错误。
- mp4 文件需要 采用 H.264 和 AAC 格式编码。
- flv文件点播需要添加关键帧(可以使用yamdi添加),否则没有暂停功能。
- 如果点播
record
指令生成的文件,记住视频文件没有关键帧。
播放网络文件
当播放一个网络文件时,nginx会先把文件下载完,然后才播放。下载文件时临时存放的位置由play_temp_path
指定,其默认值是
/tmp
,播放完毕后就会丢弃。如果play_local_path
指定其值,就会先把拷贝到这个位置。这两条指令配合play指令可以提升一些性能。
一些 tips
三条命令
如果每次点播文件每次都去下载,一是会浪费带宽,二是浪费时间,每次都必须等待下载完成才能播放。如果能下载的文件复制到本地,那么就可以结合play指令,使本地磁盘就可以起到缓存网络数据功能了。
1 |
|
添加关键帧
yamdi –i src.flv –o dst.flv
播放rtmp视频
可以使用ffmpeg自带的ffplay
ffplay rtmp://localhost/vod//dir/file.flv
一个网络工具
<http://www.cutv.com/demo/live_test.swf>
参考
- https://github.com/arut/nginx-rtmp-module/wiki/Directives#video-on-demand
- http://blog.waterlin.org/articles/using-nginx-rtmp-module-to-build-broadcast-system.html
Nginx 点播
http://blog.soul11201.com/2015/08/17/vod/