欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx搭建流媒体FLV视频服务器配置示例

程序员文章站 2022-06-20 21:08:07
flv视频已经是绝大多数视频网站首选的视频类型,国内外著名的视频分享站youtube、优酷、土豆、新浪博客、qiyi等等都是flash播放器播放flv/mp4视频。 fl...

flv视频已经是绝大多数视频网站首选的视频类型,国内外著名的视频分享站youtube、优酷、土豆、新浪博客、qiyi等等都是flash播放器播放flv/mp4视频。

flv有两种发布方式

一、普通的http方式:这种方式通常需要预先下载到本地才能播放,有缓冲,但下载后就不会占用服务器资源。

二、流媒体方式:无需下载,可以实时播放任意拖拽进度,用户体验好但很耗服务器资源。

安装模块

在编译安装nginx的时候把flv stream模块加上

复制代码 代码如下:
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_flv_module
make && make install

开启flv
复制代码 代码如下:
server
{
    listen 80;
    server_name flv.qttc.net;
    index index.html;
    root /web_root/flv_files;
    limit_rate_after 5m;
    limit_rate 1m;
    location ~ \.flv
    {
        flv;
    }
    access_log off;
}

保存重启就好。

参数说明:

复制代码 代码如下:

limit_rate_after 5m # 开始加载不限速直到下载flv视频大小超过5m。
limit_rate 1m # 当超过5m后开始限制1m/s 的速度下载。

一般用户刚打开的视频文件的时候需要预先下载较多的字节数量,这样的话边看边下载不用等待缓冲,在不影响应用户体验的情况下可以节省不少带宽,这两个值要根据实际情况微调。

拖拽实现

拖拽进度是用户经常触发的一种行为,默认的flv不支持拖拽,如果要实现这个功能需要安装额外的插件模块得以实现。需要在制作flv的时候往metadata写入关键帧信息。

添加关键帧的工具很多,如yamdi、flvtool2等等,至于如何添加关键帧可以到这些工具的社区上找找。但无论如何都是按多少秒一帧来实现,帧越多就越流畅,但耗时也长,玩过flash的都知道。