linux环境搭建nginx+ffmpeg流媒体
2025-05-10 12:58:18 0 举报
AI智能生成
linux环境搭建nginx+ffmpeg流媒体,实现rtsp转rtmp,通过hls实现浏览器在线播放监控画面、回放视频文件等,例如海康的rtsp流
作者其他创作
大纲/内容
nginx
mkdir /opt/software
下载nginx压缩包,并上传到software
下载rtmp模块包,并上传到software
cd /opt/software
tar -xvf nginx-1.XXX.tar.gz
如果需要解压到其他文件夹,增加指令-C /opt/software
如果需要解压到其他文件夹,增加指令-C /opt/software
unzip nginx-rtmp-module-master.zip
如果需要解压到其他文件夹,增加指令-d /opt/software
如果需要解压到其他文件夹,增加指令-d /opt/software
如果没有unzip,请安装yum install unzip
安装nginx依赖
yum install -y gcc-c++zlib zlib-developenssl openssl-devel pcre pcre-devel
yum install -y gcc-c++zlib zlib-developenssl openssl-devel pcre pcre-devel
./configure --add-module=/opt/software/nginx-rtmp-module --with-http_ssl_module --with-http_mp4_module
默认安装到/usr/local/nginx,如需修改请添加指令--prefix=/usr/local/nginx-1.xxx,安装到指定目录下
默认安装到/usr/local/nginx,如需修改请添加指令--prefix=/usr/local/nginx-1.xxx,安装到指定目录下
make && make install
/usr/local/nginx/sbin/nginx
启动nginx
启动nginx
ps -ef |grep nginx
查看是否有nginx进程,以便检查是否安装成功
查看是否有nginx进程,以便检查是否安装成功
/usr/local/nginx/sbin/nginx -s stop
停止nginx
停止nginx
修改配置
vim /usr/local/nginx/conf/
vim /usr/local/nginx/conf/
在nginx下创建vod文件夹
mkdir /usr/local/nginx/vod
mkdir /usr/local/nginx/vod
启动NGINX
ps -ef | grep nginx
检查是否在运行
检查是否在运行
开通防火墙端口,视实际情况而定,ffmpeg和nginx-rtmp在同一台服务器,则1935可以不开,8554为对外提供视频支持的端口,也可以再加一个nginx代理,或者直接在这个nginx上做调整,同时具备拉流和转发接口请求的能力
firewall-cmd --zone=public --add-port=1935/tcp --add-port=8554/tcp --permanent
firewall-cmd --zone=public --add-port=1935/tcp --add-port=8554/tcp --permanent
使防火墙配置生效
firewall-cmd --reload
firewall-cmd --reload
ffmpeg
安装
下载依赖nasm,并上传到software
安装依赖
安装X264(建议安装,作为备用,因为不支持补装,后续如果要用,需要卸载ffmpeg,再重新安装,会比较麻烦,虽然可能用不到x264)
具体看处理器是否支持硬编码方式
具体看处理器是否支持硬编码方式
下载X264编码器,并上传到software(如果不用x264编码,可以忽略)
安装bzip2
yum -y install bzip2
yum -y install bzip2
如果没有,可以更新软件包列表
yum update
yum update
解压tar jxvf x264-master.tar.bz2
./configure --enable-shared --enable-static --prefix=/usr/local/x264
make && make install
make && make install
检查是否安装成功
x264 --version
x264 --version
如果安装时,指定了路径--prefix,需要执行下面的步骤
mv /usr/local/x264/lib/pkgconfig/x264.pc /usr/share/pkgconfig
mv /usr/local/x264/lib/pkgconfig/x264.pc /usr/share/pkgconfig
下载ffmpeg的安装包
tar -xvf ffmpeg-xxx.tar.xz
安装ffmpeg,建议指定--prefix,否则会安装到local下
添加环境变量,便于调用
测试
测试是否具备推流能力:启动推流,后台运行模式(注意,请确保nginx-rtmp已运行)
采用的软编码方式,好处是不容易出错,基本上能兼容大部分操作系统,坏处是占用资源非常多,实际运行根据自己的服务器,结合ffmpeg的参数进行调优,一般采用硬编码+限制分辨率/压缩率/编码速度等来降低资源占用
采用的软编码方式,好处是不容易出错,基本上能兼容大部分操作系统,坏处是占用资源非常多,实际运行根据自己的服务器,结合ffmpeg的参数进行调优,一般采用硬编码+限制分辨率/压缩率/编码速度等来降低资源占用
1 代表标准输出
2 代表标准错误
1>/dev/null 把标准输出导入到null设备,也就是消失不见,如果要重定向到某个文件,可以1>1.txt
2>&1 把标准错误也导入到标准输出同样的地方
2 代表标准错误
1>/dev/null 把标准输出导入到null设备,也就是消失不见,如果要重定向到某个文件,可以1>1.txt
2>&1 把标准错误也导入到标准输出同样的地方
如果提示错误:ffmpeg: error while loading shared libraries: libavdevice.so.61: cannot open shared object file: No such file or directory
修改文件
vi /etc/ld.so.conf
vi /etc/ld.so.conf
最后一行添加
/usr/local/lib
/usr/local/ffmpeg/lib
/usr/local/lib
/usr/local/ffmpeg/lib
执行
ldconfig
ldconfig
卸载
进入源码的目录,执行
make uninstall
然后进入安装目录/usr/local/执行
rm -rf ffmpeg
然后进入源码目录,删除源码
make uninstall
然后进入安装目录/usr/local/执行
rm -rf ffmpeg
然后进入源码目录,删除源码
0 条评论
下一页