# 音视频部署维护手册
北京致远互联软件股份有限公司 2025年4月
# 前言
本手册对音视频独立服务的安装及维护相关事宜进行说明。
如对安装维护手册中相关问题存在疑问,请与致远互联的客户服务人员联系。
维度 | 支持范围 |
---|---|
当前服务名称 | 音视频服务 |
适用服务器环境 | Windows Server、Linux、信创操作系统 |
所需依赖 | 需要提前部署协同管理服务 |
# 修订记录
修订内容 | 修订时间 |
---|---|
重新梳理音视频单机部署手册章节及内容,确保结构易读、易懂 | 2025-4-20 |
# 环境准备
# 概要说明
- 取协同版本一致的音视频安装程序部署;
- 使用音视频必须部署独立的音视频服务;
- 音视频服务支持单机和集群两种部署方式
- 依赖音视频视频转码等组件,安装程序内置
- 依赖OpenJDK8,非信创安装程序内置,信创联系操作系统厂商预装OpenJDK8(小版本号参考非信创)
- 依赖中间件,采用Springboot微服务模型,非信创与信创均是安装程序内置开源中间件
# 音视频单机模式
- 资源成本需求低
- 依赖Web服务(如Nginx)进行反向代理,如协同也使用Nginx,则可复用同一个NG
- 客户端需要访问音视频服务
# 音视频集群模式
- 满足高性能、具备高可用的要求,至少需要2台音视频服务器
- 依赖Web服务(如Nginx)进行反向代理,如协同也使用Nginx,则可复用同一个NG
- 客户端需要访问音视频服务
# 端口互通要求
如下是音视频服务对外用到的默认端口:
端口服务 | http默认端口 | 端口互通要求 |
---|---|---|
音视频服务端口 | 6080 | 需要被Nginx访问(Nginx==>>>音视频:6080) |
Nginx音视频代理端口 | 86 | 需要被客户端访问(客户端==>>>Nginx音视频代理:86) |
协同服务应用端口 | 80 | 需要被Nginx音视频访问==>>>http://协同服务 |
共享目录服务(NG与音视频分离部署场景) | - | 需要被Nginx、音视频服务远程访问,读写 |
# 服务器配置参考
音视频所需配置不高,主要用来做视频转码,如果需要更快的转码效率,可以视情况扩大配置。
在线用户数 | 微服务名称 | 非信创单节点配置推荐 | 信创单节点配置推荐 |
---|---|---|---|
0~10000 | 音视频 | CPU4核以上/内存8G以上/硬盘320G | CPU4核以上/内存12G以上/硬盘320G |
注意:
- 音视频集群节点需要2台,每台节点服务器的配置与单机配置一致
# 操作系统相关准备
启动安装程序之前环境检查项: 在进行安装升级前,确保服务器环境配置符合要求,如不符合,安装程序无法继续运行。
1、检查当前是否为支持的操作系统类型
2、检查是否64位
3、检查cpu内存是否达到最低配置要求8c16g
4、检查虚拟内存是否不低于10240M
5、检查磁盘可用空间是否不低于100G
6、检查网卡速率是否符合基线要求1000M
7、已部署各项服务内存之和,加上即将安装的产品内存配置(默认4G)不得超过物理内存80%
8、当前服务器可用内存不得低于物理内存60%
9、Linux系统,ulimit -a检查open files和max user processes都不得低于60000
如当前系统配置较低,程序仅用作个人或演示使用,可酌情修改按照程序SeeyonInstall/inst/check.yml配置文件,降低环境检查基线
# Linux/信创操作系统初始准备
如音视频采用Linux/信创操作系统部署,需要做如下初始准备:
安装基本的命令组件:
安装部署前,先确保当前系统已经安装了最基础的命令,(能连接互联网服务器)可执行如下语句做预装:
如服务器无法连接互联网,请要求操作系统厂商预装必要的命令组件
# Red Hat系列(如CentOS),使用yum命令安装,如当前系统提示yum不可用,则尝试使用apt
sudo yum update -y
sudo yum install tar curl telnet vim unzip -y
# 基于Debian的系统(如Ubuntu)使用apt预装组件
sudo apt update -y
sudo apt upgrade -y
sudo apt install tar curl telnet vim unzip -y
# 基于欧拉openEuler、龙蜥Anolis OS等系统使用dnf安装
sudo dnf update -y
sudo dnf install tar curl telnet vim unzip -y
安装图形命令组件:
确保当前系统安装了必要的字体、图形组件,否则会影响后续程序使用:
# Red Hat系列(如CentOS),使用yum命令安装,如当前系统提示yum不可用,则尝试使用apt
sudo yum install freetype libX11 libXrender libXtst libXi fontconfig -y
# 基于Debian的系统(如Ubuntu)使用apt预装组件
sudo apt install libfreetype6 libx11-6 libxrender1 libxtst6 libxi6 fonts-config -y
# 基于欧拉openEuler、龙蜥Anolis OS等系统使用dnf安装
sudo dnf install freetype libX11 libXrender libXtst libXi fontconfig -y
在进行安装部署前,先按照如下配置优化Linux相关系统参数:
修改Linux内核参数:
1、通过 vim /etc/sysctl.conf
命令在文件末尾添加:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
2、然后执行命令重启网络服务:
service network restart
# 如上一条命令不可用,可能是不同Linux发行版差异,尝试换一个命令重启
systemctl restart NetworkManager
3、通过 vim /etc/rc.d/rc.local
命令在文件末尾添加:
echo "30">/proc/sys/net/ipv4/tcp_fin_timeout
echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time
echo "0">/proc/sys/net/ipv4/tcp_window_scaling
echo "0">/proc/sys/net/ipv4/tcp_sack
echo "0">/proc/sys/net/ipv4/tcp_timestamps
修改Linux最大进程数最大文件打开数:
通过 vim /etc/security/limits.conf
命令编辑此文件添加以下内容
# open files (-n)
* soft nofile 65535
* hard nofile 65535
# max user processes (-u)
* soft nproc 65535
* hard nproc 65535
以上配置完成后,执行reboot
重启操作系统,随后通过 ulimit -a
命令检查open files和max user processes是否都变成65535,如未生效,则将*改成root,再次重启测试是否生效:
# 如果调整配置并且重启操作系统之后以上配置未生效,当前是root设置,则将*改成root即可生效
root soft nofile 65535
root hard nofile 65535
root soft nproc 65535
root hard nproc 65535
# 音视频单机部署X86
# X86安装程序准备
X86环境(Windows或Linux)从商务公布的对应版本安装程序下载地址下载名为“IndependentService.zip”的文件,此文件是X86环境扩展服务安装程序。
服务器直接解压IndependentService.zip,解压后的目录中“SeeyonMediaserviceInstall”就是音视频安装程序
- SeeyonMediaserviceInstall.bat适用于Windows服务器安装音视频
- SeeyonMediaserviceInstall.sh适用于Linux服务器安装音视频
如音视频在Linux服务器安装,则将IndependentService.zip上传到服务器,再进行解压,解压后对整个目录赋予可执行权限:
mkdir /data
# 解压安装程序
unzip 1.IndependentService -d /data
# 对扩展服务安装目录赋予可执行权限
chmod -R 777 /data/1.IndependentService
# 查看解压后的程序目录
cd /data/1.IndependentService/
ls
如音视频在Windows服务器安装,建议服务器杀毒软件将安装程序设置为信任目录,避免安装部署时误报。
如音视频在Linux下部署,必须参考【Linux操作系统初始准备】章节对所有音视频服务器参数进行调优,以获得更好的性能。
# X86单机安装部署步骤
第一步,启动音视频安装程序:
- Windows服务器直接双击运行SeeyonMediaserviceInstall.bat
- Linux服务器,使用命令启动运行SeeyonMediaserviceInstall.sh
程序启动第一步会进行环境校验,当前服务器环境不满足安装要求会拒绝安装,先将不通过项进行调整后再继续,详细检查项见【启动安装程序之前环境检查项】章节说明。
第二步,阅读许可协议,无异议选择“接受”并“下一步”
第三步,选择产品的安装目录,选择“下一步”
- Windows系统下安装目录建议更改到非系统盘符
- Linux建议安装在空间较大的盘符下,比如安装在
/data/Seeyon/Mediaservice
第四步,依次点击下一步,直至完成安装:
第五步,安装完成后,找到音视频程序目录,Windows和Linux正常情况都包含如下文件,如检查文件无误,则确定部署完成:
安装后的nginx目录仅含配置,不含程序
# 音视频单机部署(信创)
信创环境从商务公布的对应版本安装程序下载地址下载名为“XinChuang.zip”的文件,此文件是信创环境相关服务安装程序。
将XinChuang.zip上传到信创系统,并解压XinChuang包,解压后,Mediaservice目录就是音视频的程序根目录:
unzip 2.V9.0SP1_XinChuang.zip
Mediaservice音视频程序免安装,建议解压后放置到规划的目录方便管理,比如参考X86统一放置到/data/Seeyon
目录:
mkdir -p /data/Seeyon
# 音视频程序迁移到规划好的目录
mv Mediaservice /data/Seeyon/
安装后的nginx目录仅含配置,不含程序
不同芯片可执行程序配置
ffmpegbin/ffmpeg.linux_arm、ffmpeg.linux_mips64
若为ARM芯片,将ffmpeg.linux_arm修改为ffmpeg.linux,覆盖已存在的文件。
若为MIPS芯片,将ffmpeg.linux_mips64修改为ffmpeg.linux,覆盖已存在的文件。
准备JDK:Mediaservice音视频免安装版本不带JDK,需要自行准备。将JDK8上传到自定义路径,比如usr/local/jdk
,随后修改Mediaservice/config/jvm.properties文件中的search_java参数,设置成JDK下的bin/java运行路径:
cd /data/Seeyon/Mediaservice/config
vim jvm.properties
注意路径地址指向jdk根目录:
以上完成后,信创免安装版本就准备完成,下一步就是进行配置。
# 音视频Web服务部署配置
音视频服务涉及多个上下文路由,故需要Nginx之类的Web服务进行上下文代理。
可以将Nginx部署在音视频本机,也可以独立部署Nginx(或复用协同应用的Nginx)。详细安装部署步骤可以参照Nginx相关离线文档部署,或参考在线文档部署:《Nginx源码编译安装》 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI6Njk=
# Nginx与音视频集中部署配置
Nginx部署后,修改nginx.conf文件内容,修改方法可以参考音视频程序下的Mediaservice/nginx/conf/nginx.conf
模板。
此模板适用于音视频服务本机部署Nginx场景:
注意:如果OA使用https进行访问,音视频也需要配置成https。参考标准的NG配置方法,将server{}代码改成ssl监听,并放置音视频所需证书即可:
# 音视频https改用ssl示例
server {
listen 8443 ssl; #设置为ssl端口
server_name localhost;
#ssl/server.crt和ssl/server.key为证书路径
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset utf-8;
忽略若干其它配置
}
# Nginx与音视频分离部署配置
Nginx支持与音视频分离部署,比如直接复用协同或其它应用服务的前置Nginx。音视频集群也需要分离配置。
音视频的NG配置模板可拷贝音视频程序下的Mediaservice/nginx/conf/nginx.conf
模板的server{}区块代码,再做调整。
注意:
- 音视频Nginx配置默认监听86端口,可自定义调整
- 音视频Nginx的
/media
需要访问音视频服务:6080端口 - 音视频Nginx的
/auth
需要访问协同服务地址,proxy_pass直接配置协同的负载地址,支持http(https) - 音视频Nginx的
/play
的alias
参数配置音视频缓冲文件地址,分离部署必须配置成共享目录。alias参数需要与音视频程序Mediaservice/config/application.properties中的media_path对应(追加/media
) - 如果协同采用https,则音视频的Nginx配置也必须调整成https
# 统一维护音视频地址(支持单机、集群)
upstream seeyon_media_cluster{
server 192.168.94.138:6080 max_fails=300 fail_timeout=30s;
}
# 音视频服务配置,使用server{}代码块管理
server {
listen 86;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /media {
client_max_body_size 20m;
# 转发到远程音视频微服务
proxy_pass http://seeyon_media_cluster;
# 设置 header 的 host 包含 host 及 port
proxy_set_header Host $host:$server_port;
# 设置 header 的客户端 IP 为实际 IP
proxy_set_header X-Real-IP $remote_addr;
# 设置 header 的协议为实际使用的协议
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 关闭 redirect
# proxy_redirect off;
# 设置超时时间
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
location /play {
# 跨域处理
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
# 如果不需要权限校验注释掉这行
auth_request /auth;
# 配置音视频文件目录,分离部署则配置音视频共享目录地址
alias /mnt/share/mediaroot/media;
expires -1;
}
location = /auth {
if ($request_uri ~ (ts|jpg|OK)) {
return 200;
}
# 这里配置协同负载地址下的具体rest请求
proxy_pass http://192.168.94.136:80/seeyon/rest/media/verify;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
注意:如果OA使用https进行访问,音视频也需要配置成https。参考标准的NG配置方法,将server{}代码改成ssl监听,并放置音视频所需证书即可:
# 音视频https改用ssl示例
server {
listen 8443 ssl; #设置为ssl端口
server_name localhost;
#ssl/server.crt和ssl/server.key为证书路径
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset utf-8;
忽略若干其它配置
}
# 音视频单机配置运维
无论是X86还是信创系统,无论是图形化安装还是免安装程序,配置步骤均一样,参考本章节操作。
# 单机配置步骤
在音视频单机已经安装完成前提下,进行协同与音视频的配置:
第一步,登录协同获取服务注册码:确保协同服务启动,登录协同系统管理员后台,进入"音视频服务配置"界面,查看并记录服务注册码:
第二步,音视频配置注册码。
若未安装S1,需要手工进行注册码配置:将注册码配置在音视频服务程序目录Mediaservice/config/application.properties文件中,并调整其他配置参数:
- regist.code: 注册码,需要与系统管理员账号中的服务注册码保持一致,将第一步服务注册码拷贝到此处
- server.ip:音视频服务器的 ip地址,与协同分离部署需要设置实际ip,如10.5.5.160
- a8.server.url:协同服务的访问地址,注意带应用上下文/seeyon,需要确保音视频服务器能访问到协同服务(协同集群则是负载地址)
- server.port:音视频服务的端口,默认6080, 音视频服务6080端口必须让协同应用服务器可以访问
- server.url:音视频服务外网地址,如有外网需求需要配置
- media.authorizedIps:音视频服务信任的ip地址,填写协同服务的ip地址,多个地址逗号隔开,127.0.0.1勿删。
- media_path:音视频服务存储音视频文件的目录,默认在音视频程序mediaroot目录下。如果采用集群或与Nginx分离部署,则将其设置为共享目录地址。此配置对应Nginx的
/play
的alias
参数(追加/media
目录)。
Windows系统通过文本工具修改保存,Linux系统可通过
vim
修改保存。
特别注意:如NG和音视频分离部署,需要修改media.path路径为共享目录,确保音视频和NG都能读写此共享目录:
若已安装S1,可在S1的"服务启停配置"中,进行音视频配置:
# 单机音视频服务启停
启动前注意事项:
1、需要先确保协同服务处于运行状态,再启动音视频服务,启动音视频服务时会向协同服务发送请求
2、音视频服务和协同服务有端口互通要求,详细见 【默认端口互通】 章节,如未开通端口访问权限,会导致音视频不可用。
启动方法一: 可以使用S1启动音视频服务(一定要在协同服务启动完成后才可以启动音视频)
启动方法二: 可以使用音视频程序目录Mediaservice/startup脚本启动(一定要在协同服务启动完成后才可以启动音视频)
- Windows系统鼠标右键“以管理员身份运行”startup.bat启动,启动窗口不要关闭
- Linux系统运行
./startup.sh
命令启动
cd 音视频程序目录Mediaservice
./startup.sh
启动脚本会先启动Nginx再启动音视频微服务,Nginx未安装会有日志提示,如Nginx采用分离部署可忽略此提示。
启动后,确保有Mediaservice这个Java进程:
启动后验证: 登录协同系统管理员后台,进入"音视频服务配置"界面,如显示了红框的内容,则说明音视频服务部署启动成功:
停止方法一: 可以使用S1停止音视频服务
停止方法二: 可以使用音视频程序目录Mediaservice/shutdown脚本停止
- Windows系统鼠标右键“以管理员身份运行”shutdown.bat停止,关闭ES程序窗口
- Linux系统运行
./shutdown.sh
命令停止
cd 音视频程序目录Mediaservice
./shutdown.sh
# 单机JVM配置调优
如需提高音视频服务的堆内存资源,可修改音视频程序根目录\config\jvm.properties文件。比如将内存改成8G,就改如下参数即可:
JAVA_OPTS="-Xmx8G"
# 单机日志分析
音视频如出现异常,单机环境下重点分析如下日志:
- 协同服务器,音视频日志:ApacheJetspeed\logs_sy\ctp.log和ApacheJetspeed\logs_sy\error.log
- 音视频服务器日志:Mediaservice/logs/media.log
# 音视频功能验证
所有服务部署启动后:
1、登录协同服务单位管理员后台 - 文档中心设置 - 视频库管理,授权视频库管理员
2、登录协同视频库管理员个人门户 - 知识社区 - 视频广场菜单,上传视频然后测试预览效果:
# 常见问题
音视频无法查看视频常见问题:
- 1)音视频早于协同启动会导致服务不可用:一定要协同启动成功后,才能启动音视频服务!
- 2)音视频缓冲文件路径配置不正确:检查NG和音视频服务下的目录地址,分离部署或集群一定要配共享目录!
- 3)协同是https,但音视频不是:协同如果是https,则音视频也必须是https!
# 音视频集群部署配置
# 集群部署前要求
在部署音视频集群模式前,先进行音视频单机模式安装部署,确保单机模式全部配置完成,单机模式功能可用之后再部署集群模式!
如音视频在Linux下部署,必须参考【Linux操作系统初始准备】章节对所有音视频服务器参数进行调优,以获得更好的性能。
集群环境需要2个节点,准备两台同硬件配置音视频服务器,详细部署结构见【音视频集群模式部署图】
集群服务器硬件资源配置可参考【服务器配置参考】章节,每一台服务器与单机保持一致
# 集群安装部署步骤
音视频集群需要两台,本手册以两台检索服务器为例进行配置:
(1)停止原单机音视频服务,后续将原单机音视频服务当作集群节点一
(2)将集群节点一音视频程序1比1复制到节点二,路径必须保持一致:
# 节点二创建目录
mkdir -p /data/Seeyon
# 节点一使用rsync命令同步文件到节点二
rsync -av --progress /data/Seeyon/Mediaservice root@192.168.94.142:/data/Seeyon/
(3)依次修改集群节点一(原单机)、节点二配置,使两个节点形成集群配置:
(3-1)配置每个Mediaservice节点信息:文件路径Mediaservice/config/application.properties
,修改参数与音视频单机配置一样,唯一注意的地方是:
server.ip需要配置音视频集群各节点自身的物理IP
media.path参数必须使用共享目录以确保音视频集群下共享视频缓冲文件
(3-2)配置独立的Nginx服务,由Nginx来管理集群,Nginx配置参数与【Nginx与音视频分离部署配置】完全一致,唯一注意的地方是:nginx.conf的upstream seeyon_media_cluster{}
代码块配置成音视频的集群地址即可实现集群模式:
# 统一维护音视频地址(支持单机、集群)
upstream seeyon_media_cluster{
server 192.168.94.138:6080 max_fails=300 fail_timeout=30s;
server 192.168.94.142:6080 max_fails=300 fail_timeout=30s;
}
# 音视频服务配置,使用server{}代码块管理
server {
listen 86;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /media {
client_max_body_size 20m;
# 转发到远程音视频微服务
proxy_pass http://seeyon_media_cluster;
忽略其他配置......
# 集群启停和验证
启动停止命令与【单机音视频服务启停】完全一样:确保协同服务保持启动状态,随后音视频两个节点依次启动、停止即可。
启动后,确保有Mediaservice这个Java进程:
启动后验证: 登录协同系统管理员后台,进入"音视频服务配置"界面,如server.ip显示了音视频集群全部节点信息则说明启动成功:
# 集群JVM配置调优
如需提高音视频服务的堆内存资源,可修改音视频程序根目录\config\jvm.properties文件。比如将内存改成8G,就改如下参数即可:
JAVA_OPTS="-Xmx8G"
# 集群日志分析
音视频如出现异常,集群环境下重点分析如下日志:
- 协同服务器,音视频日志:ApacheJetspeed\logs_sy\ctp.log和ApacheJetspeed\logs_sy\error.log
- 音视频服务器日志(取各节点的日志):Mediaservice/logs/media.log
编撰人:zhoulongbo、het
快速跳转
← 全文检索部署维护手册 文件服务部署维护手册 →
