音频码率转换V1.0 技术方案建议书

 

 

 

 

音频码率转换V1.0

技术方案建议书

 

 

 

 

 

 

 

 

 

 

 

北京盖思拓科技有限公司

20228

1. 目录

1. 目录

1 需求描述

1.1 引言

1.1.1 需求概述

1.1.2 项目目标

1.2 技术方案说明

1.2.1 方案概要

1.2.2 音频转码服务完成的功能

2 系统开发方案

2.1 系统技术架构

2.1.1 音频转码服务

 

 

 

 

 

 

 

 

 

需求描述

1.1 引言

1.1.1 需求概述

考虑到音乐人发布无损音质.wav文件过大问题,传输,播放过程中耗时问题,提出音乐文件转码方案,经过多次实验论证,市场验证 .wav播放文件在不被人类听觉所感知的情况下降低比特率,转成.mp3文件,本次所转换的mp3文件比特率为192,验证结论 .wav原文件大小 32.2MB 转成192码率的mp3文件大小是2.9MB ,大大的降低了音乐存储的空间和使用过程中读取的效率问题,

转码成功后的音乐需要上传到远程S3服务中存储,并且替换业务库里原有的S3存储字段

 

1.1.2 项目目标

集成开源项目FFmpeg组件, 实现命令行调用,音乐码率转换操作,集成现有的微服务体系架构SpringCloud生态中,集成现有的注册,配置中心Nacos,完成转码过程中状态记录,错误排查,转码成功后的音乐上传到S3服务存储,并且替换业务库里原有的S3存储字段

 

1.2 技术方案说明

1.2.1 方案概要

1.2.1.1 音乐转码服务系统交互架构说明:

 

 

 

架构图说明:

 1、转码服务目前只为公司内部提供音频转码服务,集成了微服务网关中,使用者可以在Naocs中获取到该服务的名称,并且使用名称映射到本服务内,匹配到本服务提供的外部接口地址 从而触发本服务内部的转码工作线程。

2、内部服务收到转码的请求后,会记录各个环节工作的状态信息,并且完成转码。

3、对于完成转码后的音频文件,会调用上传服务上传到S3远程服务器中,并且存储返回的Url地址。

4、修改业务数据的S3音乐字段,.wav文件替换成.mp3文件并且维护最终状态,至此完成转码操作。

1.2.2 音频转码服务完成的功能

调用者在Nacos中获取到本服务名并且发起调用,安全认证为互信机制,也可以通过网关验证Token权限并且发起调用

1.2.2.1 音频转码服务

对于音频转码服务实现功能重点说明如下:

调用者通过Nacos获取服务名或通过网关调用服务到本服务内,平台目前包括: 音频转码FFmpeg、调用记录状态维护 、上传S3 维护业务发起方数据库信息、 四个功能模块。具体功能模块和所包含的子功能如下:

服务

功能

子功能

soundsright _transcoding 音频转码    服务

搭建服务

创建SpringBoot项目并且引入SpringCloud

项目集成到Nacos注册,配置中心

引入相关服务jar包,和需要的组件,FFmpeg组件

数据库

数据库,数据表创建

封装FFmpeg相关Api

封装调用类

维护操作状态

添加请求记录状态信息

修改请求记录状态信息

查询请求记录状态信息

转码操作环节

捕获异常

维护状态

日志查询

转码后的文件存储

调用S3服务

组装本地文件调用MD5值上送

维护调用状态

业务数据维护

写入业务数据音频文件字段

维护最终状态

 

系统开发方案

2.1 系统技术架构

2.1.1 音频转码服务

 

2.1.1.1 数据库表设计如下

表名

字段

类型

长度

必填项

描述

SR_Transcoding_dev.t_transcoding_log表

id

int

11

主键

old_url

varchar

255

 

(需要转换)旧的音频文件路径

new_url

varchar

255

 

转换后的音频文件路径

bit_rate

int

11

 

转换的比特率

old_suffix

int

1

 

旧的音频文件类型  示例 1:wav

new_suffox

int

1

 

转换后的音频文件类型   示例 1:mp3

state

int

1

 

1:处理中,2 : 转码完成,3:转码失败,4:上传s3成功,5:上传s3失败 ,6:业务数据库更新成功

s3_result_url

varchar

255

 

上传s3返回的地址

 

 

 

 

 

 

 

2.1.1.2 功能性交互分类

2.1.1.2.1 服务提供对外请求转码接口 

名称、标识符

调用者提供转码接口

功能描述

操作角色:

   其他需要转码的服务平台发起调用,

功能:

   收到调用后,记录到本地数据库 并且维护好状态,发起转码操作,捕获异常,成功转码后上传s3服务,并且修改状态,s3上传成功后修改业务系统数据库字段,完成转码流程最终态

输入

1. file_url 需要转码的文件路径地址 

2. 业务id

输出

1. code : 200操作标识 成功 

2. message : 操作描述

 

2.1.1.2.2 调用S3服务平台文件接口 

名称、标识符

上传S3文件接口

功能描述

操作角色:

   转码服务发起调用,

功能:

   转码服务平台转码成功后,会将临时的转码后的文件,组装成文件流对象并且调用上传S3文件接口,完成上传,调用成功或失败记录状态, s3上传成功后修改业务系统数据库字段,完成转码流程最终态

输入

1.file 文件资源File类型

2.checksum 资源内容MD5值

3.type类型 3 歌曲

输出

1. code : 200 操作标识 成功 ,

3. msg: 操作描述

4. data: 对象 包含如下:

"addr":  //文件资源地址

"contentMd5":  //S3响应的Content-MD5

"metadata": {

"contentLength"  //文件大小byte

"contentType"  //文件类型

"etag": //s3对应实体标签,以后可能会用到

}} //返回数据

 

 

posted @ 2023-01-03 16:44  郎小乐  阅读(224)  评论(0)    收藏  举报