nginx配置在线播放mp4格式视频

一、安装nginx

1、 下载安装包

下载nginx: wget http://nginx.org/download/nginx-1.7.3.tar.gz
解压nginx安装包:tar -xzvf nginx-1.7.3.tar.gz
下载nginx支持在线播放插件 : wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
解压插件包 : tar -xzvf nginx_mod_h264_streaming-2.2.7.tar.gz
下载socket插件:wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip
解压socket插件:unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42

2、安装依赖

yum -y install gcc gcc-c++ automake gd-devel pcre pcre-devel openssl openssl-devel zlib zlib-devel

二、编译安装

1、生成MAKEFILE
进入nginx的安装包路径:

 cd /data/nginx-1.7.3

使用configure对nginx进行配置编译,并检测是否满足依赖关系:

./configure --prefix=/data/nginx  --with-http_gzip_static_module --with-http_flv_module --with-http_dav_module  --with-http_stub_status_module --with-http_realip_module --add-module=/data/nginx/nginx-goodies-nginx-sticky-module-ng-08a395c66e42 --add-module=/data/nginx/nginx_mod_h264_streaming-2.2.7

2、编译安装

make && make install

3、遇到报错

/data/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c:158: error: ‘ngx_http_request_t’ has no member named ‘zero_in_uri’
make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1
make[1]: Leaving directory `/usr/local/src/nginx-0.8.54'
报错:
1、make[1]: *** [objs/addon/src/mp4_reader.o] Error 1

解决办法:
①打开报错的文件

vim /data/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c

②转到158行,将下列内容注释了
在这里插入图片描述
③打开Makefile

vim objs/Makefile

④删除-Werror参数
在这里插入图片描述⑤重新编译安装

meke && make install

三、更改配置文件

MP4直接播放设置

worker_processes  1;

events {
    worker_connections  1024;
}

http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  logs/access.log  main;

        sendfile            on;
        tcp_nopush          on;
        #文件服务器
        server {
        listen 82;
        server_name 127.0.0.1;
        charset utf-8,gbk;
        root /data/cloud/video;
        location ~ \.mp4$ {
            mp4;
        }
        location / {
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;     
        }
        }
	server {
        listen 81;
        server_name 127.0.0.1;
        charset utf-8,gbk;
        root /data/cloud/picture;
        location / {
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;
        }
        }
}

四、启动

进入nginx安装路径的sbin路径下

cd sbin

启动

./nginc -c /data/nginx/conf/nginx_file.conf
Nginx是一个高性能的Web服务器和反向代理服务器,常用于处理静态文件和负载均衡。如果你想在Nginx配置中支持视频播放,你需要确保设置正确处理HTTP请求、缓存管理以及可能的流媒体传输。以下是基本步骤: 1. **HTTP服务器块配置**: - 添加MIME类型:Nginx需要知道如何解析不同的视频格式,如`.mp4`, `.avi`, `.mkv`等。在`http`或`server`块的`types`或`add_header`下添加对应的MIME类型。 ```nginx server { add_header Accept-Ranges bytes; types { video/mp4 mp4; video/x-flv flv; video/quicktime qt; video/x-matroska mkv; } } ``` 2. **视频流处理**: - 使用`proxy_pass`做视频文件的反向代理,指向视频存储或CDN服务的URL。例如: ```nginx location /videos/ { proxy_pass http://your-videos-backend.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } ``` 3. **视频缓存优化**: - 可以启用Nginx的`proxy_cache`功能,如果有必要的话,缓存常见的请求,以减少对后端服务器的压力。 ```nginx location ~* \.(flv|mp4|mkv)$ { proxy_cache my_video_cache; proxy_cache_valid 200 60m; # 设置缓存时间 } ``` 4. **流媒体支持**: - 对于实时或大文件的视频流,可以考虑使用Nginx的第三方模块,比如`nginx-rtmp-module`处理RTMP(Real- 如果你的视频流是加密的,记得为HTTPS提供SSL证书。 为了更深入地了解视频播放配置,你可以关注以下问题: 1. Nginx是否支持所有视频格式?如果不确定,如何添加更多格式? 2. 如何在Nginx上设置自适应带宽请求,保证视频流畅播放? 3. 如果我想要支持直播功能,需要如何配置Nginx的RTMP模块?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值