Nginx下搭建flv视频服务器且支持视频拖动进度条播放

标签: nginx flv 视频 | 发表时间:2011-08-29 16:02 | 作者:youacai gOODiDEA
出处:http://blog.csdn.net

目前,由于Flash的流行,网络上绝大多数的微视频网站都采用了Flv格式来播放视频。

在互联网上播放视频,有两种方式,一种是文件方式,即通过HTTP协议访问视频文件,这种方式的缺点是不能从特定的帧开始播放;另外一种就是采用专门的流媒体服务器,这种方式的缺点是要搭建复杂的流媒体服务器。不过,现在有了一种集合了以上两种方式优点的一种解决方案,即通过HTTP来实现伪流媒体。本文描述的就是这样的一种解决方案。

首先配置nginx服务支持flv模块功能

⑴查看你的nginx是否已支持flv功能模块

[root@localhost ~]# /usr/local/nginx/sbin/nginx -V  //查看nginx服务支持

结果:

nginx version: nginx/0.8.24

built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) 

configure arguments: --prefix=/usr/local/nginx --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module

分析:我的nginx版本0.8.24http_flv_module已经开启,支持flv服务

⑵安装支持flv模块的nginx服务器:

#tar zxvf nginx-0.8.24.tar.gz

#cd nginx-0.8.24

#./configure --prefix=/usr/local/nginx  --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module //开启flv模块

#make && make install

#/usr/local/nginx/sbin/nginx       //启Nginx

⑶nginx服务器配置(nginx.conf文件)

server

  {

listen       80;

server_name  localhost;   

charset utf-8;

 location / {

            root   html;

            index  index.php index.html index.htm;

        }

  location ~ \.flv {

            flv;

   limit_rate_after 10m;

   limit_conn one 1;   

   limit_rate 85k;

        }

  }

使用location 将 .flv的文件指向flv模块即可。

以上使用了limit_rate 是为了限速,当 flv视频下载超过10M,则限速到85K只允许用户开1个进程,也就是先快速缓存可以播放,后面的慢慢下载。

⑷安装支持flv拖放进度条的播放器

上面三步都是安装支持nginx服务支持flv功能的,现在需要支持flv拖放进度条的播放器.

你需要有一个能够播放Flv视频的播放器,很显然,它还需要能够嵌入到网页中。目前比较流行的,功能上也还比较完善的一个Flv播放器就是 JW FLV Media Player(也称为 jwplayer)。它的网址是:

http://www.longtailvideo.com/players/jw-flv-player/

这个播放器支持视频加入广告和视频节目单功能,

下载包里面有很全的实例和使用方式,

将包中的player.swf(如果是带有Viral插件的,就是player-viral.swf)放到你的网站内,这就是用来提供视频播放的播放器。至于包中其它的文件,都可以不要。

接下来,将播放器嵌入到你的视频播放网页中:

直接嵌入,使用Object/Embed代码嵌入:

<embed  

        type="application/x-shockwave-flash"  

        id="player2"  

        name="player2"  

        src="player.swf"   

        width="328"   

        height="200"  

        allowscriptaccess="always"   

        allowfullscreen="true"  

        flashvars="file=http://192.168.40.135/test.flv&image=http://192.168.40.135/preview.jpg&autostart=false&type=http&streamer=start"   

    >  </embed>

file:"video.flv", // FLV视频地址

type:"http",        // 数据类型,本文是基于http模式的,这个必须写滴

image:"preview.jpg",// 开始播放之前的预览图

autostart:"false",  // 是否自动播放

streamer:"start",   // 参数为 start,这个参数用于传递给服务器从特定的关键帧开始播放,nginx编译了 flv 模块 所以是支持的。。

⑸添加关键帧

如果一个Flv视频要能够被拖到特定点播放,该Flv需要在其metadata中有关键帧的信息。如果你的Flv视频制作的时候没有这些信息,也是不能拖放播放的。可以使用yamdi来为你的视频加上关键帧信息 :

安装:

1 [root@localhost ~]#wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

2 [root@localhost ~]#tar zxvf yamdi-1.4.tar.gz

3 [root@localhost ~]#cd yamdi-1.4/

4 [root@localhost yamdi-1.4]#make && make install

使用方法:

yamdi -i source.flv -o dest.flv //原视频 输出视频

作者:youacai 发表于2011-8-29 9:02:36 原文链接
阅读:32 评论:0 查看评论

相关 [nginx flv 视频] 推荐:

nginx+jwplayer配置flv/MP4点播系统, 视频拖动支持 - 一 水

- - 博客园_首页
下载 nginx 最新版 http://nginx.org/. 安装依赖库, 以ubuntu为例. 编译nginx, 增加flv和MP4的支持.    编译时可以指定安装目录 --prefix=/path/to/install.    然后make install. 测试是否支持seek(拖动, 快进).

Nginx下搭建flv视频服务器且支持视频拖动进度条播放

- gOODiDEA - CSDN博客推荐文章
目前,由于Flash的流行,网络上绝大多数的微视频网站都采用了Flv格式来播放视频. 在互联网上播放视频,有两种方式,一种是文件方式,即通过HTTP协议访问视频文件,这种方式的缺点是不能从特定的帧开始播放;另外一种就是采用专门的流媒体服务器,这种方式的缺点是要搭建复杂的流媒体服务器. 不过,现在有了一种集合了以上两种方式优点的一种解决方案,即通过HTTP来实现伪流媒体.

GitHub - winshining/nginx-http-flv-module: Media streaming server based on nginx-rtmp-module. In addtion to the features nginx-rtmp-module supplies, HTTP-FLV, GOP cache and VHOST are supported now.

- -
MUSTbe enclosed by quotation marks, or arguments in url will be discarded (some shells not so smart will interpret "&" as "run in background").. ngx_rtmp_stat_modulemay not get statistics from a specified worker process in multi-processes mode, for HTTP requests are randomly distributed to worker processes.

FLV Extract:轻松从FLV文件中分离音频/视频

- 十年恋一人! - 软件志
一、FLV Extract简介: 这款小工具能帮助我们快速地从FLV文件中分离音频/视频,而且官方宣称是无损分离,能将FLV、F4V、PFV以AVI(H.263/FLV1)(VP6/VP6F)(H.264/AVC)视频格式以及MP3,AAC(ADTS标头),WAV(PCM)的音频格式分离输出. 二、FLV Extract安装及简单使用: 1、下载及安装:下载后解压文件到任意文件夹,因为是绿色软件,所以无须安装,直接运行文件夹内的主程序就能启动该软件; 2、从FLV文件中分离音频/视频: 软件操作十分简单,运行软件后,只需要将FLV视频文件拖拽到软件窗口内,对应该文件的视频文件、timecodes文件以及音频文件就会被单独分离出来.

用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器

- - 开源软件 - ITeye博客
这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载完成,就不会消耗服务器的资源和带宽,但是拖动功能没有RTMP/RTMP流媒体方式强大,很多视频网站都是用HTTP方式实现的,如:YouTube,土豆,酷6等. 2、  RTMP/RTMP流媒体方式. 这种方式不用下载FLV视频文件到本地,可以实时的播放flv文件,可以任意拖拽播放进度条,但是比较消耗服务器的资源.

nginx 播放视频(1)

- - ITeye博客
1,首先拷贝一个flv文件到nginx 的html目录中. cp /var/www/html/ajl/uploadvideos/20150428101917_31520150408监利新闻(三).flv ./. flv文件的路径是:/usr/local/nginx/html/broadcast2/20150428101917_31520150408监利新闻(三).flv.

FLVExtract – 简单易用的 FLV 音视频分离器 | 小众软件 > 媒体工具

- satan - 小众软件
FLVExtract 是一个使用非常简便的针对 FLV 的音视频分离工具,只要将需要分离的 FLV 文件拖进去就可以了,另外程序还有命令行版本,做个批处理和 FileMenu Tools 配合使用效果更棒. 官方网站 | 来自小众软件. ©2011 root for 小众软件 | 原文链接 | 4 留言 | 加入我们 | 投稿 | 订阅指南.

如何在网页中插入FLV视频,经测试兼容IE、火狐、谷歌等浏览器

- - 浏览器 - 互联网 - ITeye博客
之前有个项目需要在后台上传视频,然后在网站前台中播放出来,因为之前插入的视频都是来自优酷、土豆等视频网站,那个方法几乎所有的在线编辑器都自带了,直接复制粘贴地址就搞定了. 所以对视频这一块没什么研究,但是实际需求则不是这么简单,你的客户如此说:就是不想把视频传到优酷上. 这个时候我们就只能重新写个模块吧.

视频直播方案(nginx-rtmp-module ffmpeg) - Andrew's BlogAndrew's Blog

- -
视频直播方案(nginx-rtmp-module ffmpeg). 本文将介绍如何从零搭建流媒体服务器作为直播方案. 一般视频录像板或者网络摄像头仅支持RTSP服务,或自己的私有协议. 因为RTSP是基于TCP的协议一般浏览器是无法支持创建Socket与其他服务相连前端无法播放. 私有协议仅能在IE浏览器下调用OCX插件播放视频,兼容性太差.

HTTP-FLV直播初探 - 冒雨ing - 博客园

- -
两个flv.js的扩展版本:. 目前几种视频流的简单对比:. 可通过html5解封包播放(flv.js). 可通过html5解封包播放(hls.js). 如果dash文件列表是mp4webm文件,可直接播放. RTMP(Real Time Messaging Protocol)是基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议.