首页 > 编程知识 正文

安卓搭建流媒体服务器(快速搭建流媒体服务器)

时间:2023-05-04 10:08:30 阅读:73775 作者:3480

说到流服务器,首先想到的是Nginx。 其原因是Nginx的强大性能和高并发性。 这是从一开始就用c语言编写的,由于Nginx的优点和流式服务器的需求相匹配,所以很多流式服务器都使用Nginx

对于移动终端音视频开发,您不需要太关注服务器,但服务器是必不可少的。 实时流媒体必须使用服务器。 正因为没有掌握所谓的技术,所以学习如何构建流媒体服务器对音视频开发有很大的帮助

一.构建Nginx需要下载三个资源

1.nginx--与Tomcat相同,当然需要下载nginx

2.openssl -- nginx编译时需要openssl

3.rtmp --推送使用的协议,好在有现成的模块: nginx-rtmp-module

下载完成后分别解压缩

二.首先编译openssl,进入openssl目录,创建调皮哆啦A梦的文件夹。 (默认情况下,openssl在当前文件夹下生成编译文件。)。

然后运行编译脚本

./config --prefix=`pwd`/淘气的哆啦A梦

可能需要安装perl 5

编译完成后,运行安装命令

制造安装

三.编译Nginx,然后来到Nginx目录(/root/nginx/nginx-1.12.1 )中执行以下命令

./configure --prefix=`pwd`/调皮的哆啦A梦----add-module=/root/nginx/nginx-rtmp-module-1.2.0

如果没有PCRE,编译将失败

安装教程(PCRE )后运行编译命令将报告错误

2 .由于nginx依赖于openssl,所以刚才编译了openssl,但没有将其放在usr/lib目录中,因此直接编译nginx找不到openssl

必须在配置脚本中手动指定openssl路径。 配置脚本的文件路径如下图所示。

使用vi编辑器打开文件,找到以下内容:

if [ $ngx_found=no ]; 陈真

# MacPorts

ngx _ feature=' openssllibraryin/opt/local/'

ngx _ feature _ path='/opt/local/include '

if [ $NGX_RPATH=YES ]; 陈真

ngx _ feature _ libs='-r/opt/local/Li B- l/opt/local/Li B- lssl-lcrypto $ ngx _ lib dl '

else

ngx _ feature _ libs='-l/opt/local/Li B- lssl-lcrypto $ ngx _ lib dl '

fi

. auto/feature

fi

请添加以下项目。 (由于窗口系统和linux编码不同,建议在vi命令行下复制上述代码,然后更改相应的值。 )。

if [ $ngx_found=no ]; 陈真

# MacPorts

ngx _ feature=' openssllibraryin/root/nginx/OpenSSL-OpenSSL _1_ 0f /淘气的哆啦A梦'

ngx _ feature _ path='/root/nginx/OpenSSL-OpenSSL _1_ 0f /恶作剧的哆啦A梦/include '

if [ $NGX_RPATH=YES ]; 陈真

ngx _ feature _ libs='-r/root/nginx/OpenSSL-OpenSSL _1_ 0f /淘气的哆啦A梦/lib-l/root/nginx/OpenSSL-1

else

ngx _ feature _ libs='-l/root/nginx/OpenSSL-OpenSSL _1_ 0f /淘气的哆啦A梦/lib-LSSL-lcrypto$ngx_libddib

fi

. auto/feature

fi

保存后进行编译,这次没有安装zlib

3 .使用yum命令进行zlib安装

yum install -y zlib zlib-devel

安装zlib后,再次尝试编译,成功生成了MakeFile文件

执行安装命令

制造安装

等nginx安装完成后,来恶作剧哆啦A梦目录下的s恶作剧哆啦A梦目录

执行nginx

./nginx

发现报错,openssl的so库没有找到,需要我们将openssl设置到linux的环境变量中

5.使用vi编辑器,打开环境变量文件

vi /etc/ld.so.conf

加入以下内容

/root/nginx/openssl-OpenSSL_1_1_0f/调皮的机器猫/lib

保存

ld.so.conf

执行命令使刚设置的环境变量生效

ldconfig

6.将nginx-rtmp-module/test/下的nginx.conf 复制到 nginx/调皮的机器猫/conf下面

该配置文件可以修改最大连接数和nginx的端口号,我们还需要将配置文件中的nginx-rtmp-module的路径改为我们本地的路径,修改完后的文件如下

worker_processes 1;

error_log logs/error.log debug;

events {

# 最大连接数

worker_connections 1024;

}

rtmp {

server {

# 端口

listen 1935;

application myapp {

live on;

#record keyframes;

#record_path /tmp;

#record_max_size 128K;

#record_interval 30s;

#record_suffix .this.is.flv;

#on_publish http://localhost:8080/publish;

#on_play http://localhost:8080/play;

#on_record_done http://localhost:8080/record_done;

}

}

}

http {

server {

listen 8080;

locatio_oorker_processeo /stat {

rtmp_stat all;

rtmp_stat_stylesheet stat.xsl;

}

location /stat.xsl {

# 改成本地的路径

#root /path/to/nginx-rtmp-module/;

root /root/nginx/nginx-rtmp-module-1.2.0;

}

location /control {

rtmp_control all;

}

#location /publish {

# return 201;

#}

#location /play {

# return 202;

#}

#location /record_done {

# return 203;

#}

location /rtmp-publisher {

# 改成本地的路径

# root /path/to/nginx-rtmp-module/test;

root /root/nginx/nginx-rtmp-module-1.2.0/test;

}

location / {

# 改成本地的路径

# root /path/to/nginx-rtmp-module/test/www;

root /root/nginx/nginx-rtmp-module-1.2.0/test/www;

}

}

}

不要忘了给root目录赋予可读权限

chmod 755 /root

四.开启nginx服务

1.关闭防火墙防止端口被禁用,再次执行./nginx,即可运行nginx服务

systemctl stop firewalld.service

尝试访问下网页吧:

index.html

2.可以下载ffmpeg,使用ffmpeg测试推流

ffmpeg -re -i D:China合伙人.flv -f flv rtmp://192.168.43.4/myapp/mystream

3.执行以下命令,停止服务

./nginx -s stop

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。