nginx搭建mp4、flv流媒体服务器

来源:互联网 发布:美团外卖数据分析 编辑:程序博客网 时间:2024/05/23 14:25

nginx搭建mp4、flv流媒体服务器

因为是编译安装,所以需要系统中装有gcc相关的包。

需要用到的源码包有nginx-1.0.4.tar.gz(http://nginx.org/download/nginx-1.0.4.tar.gz)、pcre-8.12.tar.gz(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz)、nginx_mod_h264_streaming-2.2.7.tar.gz(http://h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Nginx-Version2)。其中pcre-8.12是与perl兼容的正则表达式库模块,nginx-1.0.4是应用服务器主程序,nginx_mod_h264_streaming-2.2.7是MP4流媒体支持模块。

安装步骤如下:

1:解压缩各个压缩包

tar zxvf nginx-1.0.4.tar.gz

tar zxvf nginx_mod_h264_streaming-2.2.7.tar.gz

tar zxvf pcre-8.12.tar.gz

2:cd pcre-8.12

./configure

make

make install

3:cd nginx_mod_h264_streaming-2.2.7

根据实际情况修改Makefile文件中的NGINX项的值。NGINX=$(HOME)/nginx-1.0.4/ 版本的修改,查看$home $pwd路径对不对,不对修改之

4:cd nginx-1.0.4

./configure --sbin-path=/usr/local/sbin --without-http-cache --with-http_stub_status_module --with-http_gzip_static_module --with-pcre=/u02/software/nginx/pcre-8.12 --add-module=/u02/software/nginx/nginx_mod_h264_streaming-2.2.7

我安装时候的./configure --prefix=/home/zq/local/nginx --add-module=../nginx_mod_h264_streaming-2.2.7 --sbin-path=/home/zq/local/nginx/sbin --with-debug

之后make,

会报错【ngx_http_streaming_module.c:158: 错误:‘ngx_http_request_t’ 没有名为 ‘zero_in_uri’ 的成员】之类的错误。这需要修改nginx_mod_h264_streaming-2.2.7的源代码:修改ngx_http_streaming_module.c,注释掉

if (r->zero_in_uri)

  {

    return NGX_DECLINED;

  }

这一段。

之后make clean,之后重新configure,重新make,之后make install。

之后执行命令nginx,启动nginx服务器。访问http://ip:80出现Welcome to nginx! 时证明nginx安装成功。

Nginx安装完成之后安装路径在/usr/local/nginx。打开/usr/local/nginx/conf,修改nginx.conf配置文件,添加MP4支持。在server配置中添加如下配置即可

location ~ \.mp4$ {
mp4;
}

测试的话如下:

基本上已经设置完毕,但是此时我们测试的时候还需要一个支持拖拽播放的flash播放器,开源的JW Player就可以实现这样的功能,我将编译的播放器上传上来,供大家下载:

       下载链接:http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar

       下载播放器后,上传到上面设置的/usr/local/nginx/html/flv_file/目录下,闭关把flv视频文件也放到该目录下!

 

5)、启动nginx后测试:

       http://192.168.1.105/player.swf?type=http&file=test1.mp4

             说明: #我的ip是192.168.1.105

                       #player.swf是我的JW Player播放器

                       #http是表示居于http分发方式

                       #test1.mp4是我的flv视频文件





Java在线视频上传和播放

 

目前绝大多数视频网站使用的格式是flv。格式可以任意位置播放,并且压缩效果也不错。

java的视频处理:

1. 上传视频。

2. 将上传的视频转换为flv格式,需要在后台开启进程进行处理。
视频转换工具:ffmpeg,mencoder
ffmpeg目前支持的格式:avi, mov, flv, asf, mp3, mp4等,如果遇到rm,wmv9, rmvb等格式,需要使用mencoder工具转换为avi格式后,再用ffmpeg转换成flv格式。因为ffmpeg转换速度比mencoder快,所以尽量使用ffmpeg。

3. 在页面嵌入flv播放器。

注:
1. 上传视频后,即时转换视频会影响系统性能。可以在视频上传时,不进行转换处理,只将视频的路径等信息存入数据库。在后台开启一个计划任务(或者使用独立的服务器专门用于转换视频),从数据库中取出未转换列表,依次进行转换,并更新数据库相关信息。
2. 视频转换完成后,要删除原视频文件,就需要判断视频是否已完成转换。而直接调用Process类的waitFor()会使当前进程阻塞,解决办法参考:http://www.iteye.com/topic/777。

Java在线视频上传和播放

 ... by rootman ... 5 月 20 天前 ... 106 次点击 

目前绝大多数视频网站使用的格式是flv。格式可以任意位置播放,并且压缩效果也不错。

java的视频处理:

1. 上传视频。

2. 将上传的视频转换为flv格式,需要在后台开启进程进行处理。
视频转换工具:ffmpeg,mencoder
ffmpeg目前支持的格式:avi, mov, flv, asf, mp3, mp4等,如果遇到rm,wmv9, rmvb等格式,需要使用mencoder工具转换为avi格式后,再用ffmpeg转换成flv格式。因为ffmpeg转换速度比mencoder快,所以尽量使用ffmpeg。

3. 在页面嵌入flv播放器。

注:
1. 上传视频后,即时转换视频会影响系统性能。可以在视频上传时,不进行转换处理,只将视频的路径等信息存入数据库。在后台开启一个计划任务(或者使用独立的服务器专门用于转换视频),从数据库中取出未转换列表,依次进行转换,并更新数据库相关信息。
2. 视频转换完成后,要删除原视频文件,就需要判断视频是否已完成转换。而直接调用Process类的waitFor()会使当前进程阻塞,解决办法参考:http://www.iteye.com/topic/777。
0 0