一、引言
1.项目名称
软件名称:音视频通用转码系统
英文名称:FYXY AV Transcoding System
2.系统背景
融媒体新闻是新时期传统媒体行业抢占市场的关键,而融媒体新闻的特色要靠音、视频新闻来突显。在传播过程中,音、视频信息变得更为重要,逐渐成为传播的重要内容,未来将成为新闻发展的核心。
本软件系统是通用的音视频转码系统,是视频服务的核心基础,可以将各种格式的视频文件统一转码为业务系统需要的格式,可以灵活配置参数,并提供统一接口供业务系统调用。
3.名词定义
通用转码系统:
音视频通用转码系统。
视频(Video):
视频(Video)泛指将一系列静态影像以电信号方式加以捕捉,纪录,处理,储存,传送,与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。
视频格式(Video Format):
特定格式的多媒体文件,主要包括:AVI, MP4, RMVB, MOV, 3GP, FLV, ……
音频(Audio):
音频是个专业术语,只是储存在计算机里的声音。它泛指人类能够听到的所有声音,它可能包括噪音等。声音被录制下来以后,无论是说话声、歌声、乐器都可以通过数字音乐软件处理,或是把它制作成CD,然后存储到计算机里。
常见的音频格式有MP3, AC3, AAC, WAVE, MVA;
常见的音频参数有:采样率(44.1KHz==44100)、采用精度(8bit, 16bit,32bit)、声道数(1,2,5.2)、比特率。
字幕(Subtitle):
字幕(subtitles of motion picture)是指以文字形式显示电视、电影、舞台作品中的对话等非影像内容,也泛指影视作品后期加工的文字。影视作品的对话字幕,一般出现在屏幕下方,而戏剧作品的字幕,则可能显示于舞台两旁或上方。将节目的语音内容以字幕方式显示,可以帮助听力较弱的观众理解节目内容。
媒体流(Stream):
指时间轴上的一段连续数据,如一段声音数据,一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的。其中,压缩的数据需要关联特定的编解码器,比如:X264, Xvid, VidX, Msrle, …
4.参考资料
GB 8566-88 《计算软件开发规范》
GB 8567-88 《计算机软件产品开发文件编制指南》
GB/T 15532-1995 《计算机软件单元测试》
福优学苑学习研讨群:1062104233
二、系统的目标
1.音视频转码
本系统提供通用的音视频转码服务,可以对市面上流行的多种视频格式进行统一转码,可以灵活设置各种参数,提供统一架构和接口,方便业务系统调用和后期扩充功能。
2.转码控制
本系统在视频转码过程中要做到灵活控制,包括:开始、暂停、继续、停止、取消、等。这些功能都要体现在用户界面上,并显示实时转码进度。
3.安全可靠
本软件系统必须要做到可靠运行,不出现异常崩溃,为用户提供一个安全可靠的视频转码平台。
4.灵活扩展
本软件系统的设计要在基础架构上足够灵活,随用户需求的变化可以很方便地添加新的功能。
5.客户体验
本软件系统必须易于使用,符合用户常规的操作需求。
三、系统的范围
1.任务范围
本系统是FYXY公司自主研发的视频转码系统,包括的任务范围如下:
业务需求
本项目需要完成一款通用的视频转码系统,可以快速、稳定地对视频文件进行转码。
用户需求
A.支持基本的视频转码功能
包括:开始、暂停、继续、停止、取消、显示实时转码进度。
B.支持的转码格式
优先级 视频格式
高 MP4/FLV/MOV/M3U8
中 WMV/AVI/RMVB
低 3GP/SWF
C.非功能性需求
a)清晰度、码率、帧率等可以灵活设置。
b)声音不能失真。
c)转码时不能卡顿,要快速、稳定。
功能需求
选择本地视频文件
通过主菜单或拖拽文件的方式可以打开本地视频文件。
上传本地视频文件并转码
上传文件后,首先判断文件格式,然后对音视频文件进行转码处理。
转码控制
在视频转码过程中,能够提供开始、暂停、继续、取消等功能。
四、系统的用户
1.内部用户
产品经理
测试经理
开发人员
业务系统对接人员
2.外部用户
软件产品的编辑人员
我们应该抓住用户心理,适应市场趋势,积极、稳妥地开发出相应的软件产品,增强产品功能,扩展销售渠道,打响自己的品牌。
五、系统应用场景
1.应用场合
业务系统,包括媒体业务部门等。
2.运行环境
运行环境 环境内容
硬件环境 最低配置:8CPU:Xeon,内存:32G,HD:2TB
软件环境 操作系统:Centos 7,64位系统
六、可行性分析
1.市场需求
根据自己情况进行扩展...
2.技术可行性
转系统的核心是编解码器和硬件设备,主要从以下几个技术难点进行分析:
编解码器:
FYXY音视频通用转码系统必须妥善处理各种音视频格式,核心是编解码器。对于常见的容器和编解码器,需要封装为统一的组件。
本项目组的主要开发人员具备多年的音视频开发经验,积累了丰富的可重用组件,开发过多个类似的产品。所以,编解码器技术的应用和实现是完全有把握的。
硬件设备:
Xeon系列的CPU性能比较高,采取多核多线程转码,转码速度可以满足基本的用户需求。
用户界面:
在任何计算机系统中,用户界面都是最重要的部分。界面设计的目标很简单:让使用计算机工作变得容易、高效并且有趣;同时,好的用户界面不应该过分复杂,让用户可以“傻瓜式上手操作”即可,尽量做到通俗易懂。
本项目中有专门的UI设计师来进行页面美化工作,可以保证美化效果。
七、功能性需求
1.需求列表
编号 需求名称 需求描述 需求类型 优先级 需求来源
1 视频转码 快速、稳定地对各种视频格式进行转码 用户需求 高 产品部门
2 运行环境 在Centos7上运行 用户需求 低 产品部门
2.功能列表
编号 需求名称 子模块 功能描述
1 视频转码 1.打开文件 打开本地视频文件
(菜单、拖拽、等)
2.上传文件 识别文件格式,
将本地文件上传到转码服务器上
3.转码 上传的视频文件统一入缓存队列,
调度器进行统一分配、负载均衡,
开始转码
4.进度显示 显示实时转码进度
5.转码控制 开始:显示总时间和当前播放时间
暂停:按钮
恢复:双击屏幕进入,按ESC退出
取消:按钮(每次进1秒)
八、非功能性需求
1.性能需求
性能是衡量一个转码系统成功与否的一个非常重要的指标,它包括了很多方面,比如CPU占用量、内存占用量、显卡加速处理、声卡加速处理,等。
转码速度与CPU使用率成正比, 内存占用量很低。为了提高转码速度,需要设计好多线程转码架构,以充分利用多核CPU。
2.响应时间
响应时间也是衡量一个转码系统成功与否的重要指标。点击转码按钮之后,如果半天没有响应,往往会给用户留下一个非常差的印象。
FYXY音视频通用转码系统必须做到尽短的响应时间,这里定为3秒。
3.数据容量
当今社会是信息量呈爆炸式发展的时代,无论各行各业都在产生海量的数据信息。相对于音视频来说,就更加明显。
因此,一个好的视频转码系统必须能够处理海量视频信息,必须能够快速有效地处理10G以下的视频文件,充分利用软硬件等各种资源,为用户提供一个强大的视频转码平台。
4.可用性
一个好的视频转码系统必须具备很好的容错性。比如,对于一些损坏的视频文件,不能造成软件系统的崩溃。要尽可能地迅速判断出异常点,智能地“跳帧”,提高用户体验。
对于发生了转码异常的情况,尽量不要造成软件系统的瘫痪,而是智能进行处理,抛出异常。
5.稳定性
对于常见的视频转码系统,必须具备7x24不间断运行的要求;而且在发生异常时也不能造成宕机,而是智能地修复异常,尽快回复系统的健康运行。
必须满足各种用户的强大压力测试,比如:在一分钟之内连续转码上百个视频文件而不造成系统的瘫痪。
九、其他需求
暂无
十、假设与约束条件
暂无