1.引言

1.1编写目的

本系统旨在提供一套简单、通用的音视频转码系统,将目前集成的第三方音视频服务替换,打造FYXY专属品牌的音视频服务,为公司添砖加瓦,提高核心竞争力。

1.2项目背景

融媒体是新时期传统媒体行业抢占市场的关键,而融媒体新闻的特色要靠音、视频新闻来突显。在传播过程中,音视频信息变得更为重要,逐渐成为传播的重要内容,未来将成为新闻发展的核心。

目前公司的音视频服务基本都是集成第三方厂商,效果一般,且成本较高。鉴于此,有必要打造FYXY专属品牌的音视频服务,无缝集成到业务系统中。

2.系统概述

2.1目标

本软件系统提供通用的音视频转码服务,可以对市面上流行的多种视频格式进行统一转码,可以灵活设置各种参数,提供统一架构和接口,方便业务系统调用和后期扩充功能。

2.2运行环境

运行环境 环境内容

硬件环境 最低配置:8CPU:Xeon,内存:32G,HD:2TB

软件环境 操作系统:Centos 7,64位系统

2.3需求概述

通用的音视频转码服务

多种音视频输入输出格式处理

转码队列管理

转码优先级策略管理

视频元信息管理

截图管理

自适应横竖屏管理

转码模板管理

3.系统功能模块

3.1功能描述

本软件系统提供通用的音视频转码功能,可以对市面上常见的音视频格式进行转码。

提供转码模板管理,可以进行快速参数配置。

提供转码队列管理,尤其将转码失败的任务独立出来,实现后续自动重新转码。

提供转码优先级策略管理,分为普通、高级两种,高级队列的优先级高于普通队列。

提供视频元信息管理,将音视频文件的元信息提取出来,统一管理。

提供截图管理,可以根据关键帧生成各种截图。

提供自适应横竖屏管理,根据原视频的宽高比自适应转码。

提供水印管理,可以设定文字或图片水印,后续支持多种水印特效。

3.2模块设计

模块名称 功能说明

音视频转码管理 搭建转码架构,构造转码内核(ffmpeg4.3.1),充分考虑好底层设计模式

输入输出格式管理 格式封装组件,灵活处理各种格式,可以已有扩展

转码队列管理 任务队列管理:详细的任务队列,显示进度和媒体信息

错误队列管理:需要自动重新转码,辅助客户分析出错原因

转码优先级策略管理 基本的优先级策略:分为“普通”和“高级”,第一期实现。

复杂的优先级策略:后期再详细设计,需要考虑业务系统

视频元信息管理 视频元信息:包括编解码格式、分辨率、码率、帧率、等

音频元信息:包括编解码格式、采样率、码率、声道、等

字幕元信息:包括字幕格式、字幕时间、特效、等

文件元信息:包括传输协议、封装格式、作者、编辑、等

截图管理 截图信息管理:包括类型、宽高、时间点、等

截图任务管理:包括创建、查询、删除、等

自适应横竖屏管理 需要封装为统一的“视频智能识别组件”

包括的信息会比较多,目前先考虑“自适应横竖屏”

包括有些手机拍照会旋转90度,需要智能处理

转码模板管理 转码模板组件:这是一个很复杂的功能组件,

整个转码过程都围绕着“转码模板”进行统一参数配置

包括系统预置模板、用户自定义模板

包括模板参数的智能处理

包括模板信息的增删改查

接口调用管理 接口调用RESTful,需要封装为独立的组件

对外,供各个业务系统调用,需要独立、简明、可扩展

对内,供转码内核系统集成,需要充分考虑复杂度

类型,使用JSON作为各个系统与模块之间的传递类型

结构,设计好调用接口和参数类型,对外不能轻易修改

4.系统设计

4.1总体设计

4.1.1系统总体架构图

4.1.2系统转码流程图

4.1.3系统功能模块图

4.2接口设计

4.2.1转码服务相关接口

创建转码任务

暂停转码任务

取消转码任务

查询转码任务

查询转码列表

4.2.2转码模板相关接口

查询模板列表

查询模板详情

4.2.3截图相关接口

创建截图

查询截图

4.2.4媒体信息相关接口

创建媒体信息任务

查询媒体信息任务

4.3数据结构设计

4.3.1文件

TCAVFile

TranscodeInputFile

TranscodeOutputFile

4.3.2转码任务

TranscodeTask

4.3.3转码模板

TranscodeTemplate

TranscodeTemplateContent

4.3.4截图

Snapshot

SnapshotTask

SnapshotConfig

4.3.5水印

WaterMark

4.3.6媒体信息

MediaInfoTask

mediaInfo

大家好,我的第一本书正式出版了,可以在京东各大店铺抢购哦。

《FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社》

京东自营链接:https://item.jd.com/13377793.html
京东其它链接:https://search.jd.com/Search?keyword=FFmpeg%E5%85%A5%E9%97%A8%E8%AF%A6%E8%A7%A3--%E9%9F%B3%E8%A7%86%E9%A2%91%E5%8E%9F%E7%90%86%E5%8F%8A%E5%BA%94%E7%94%A8&enc=utf-8&suggest=1.his.0.0&wq=&pvid=24e80535073b4e1f98e30a3e6963fe81

 

出书过程非常艰辛,来回校正了好几遍,后续还有FFmpeg系列的其它图书。

第一本:FFmpeg入门详解--音视频原理及应用--梅会东--清华大学出版社

第二本:FFmpeg入门详解--流媒体直播原理及应用--梅会东--清华大学出版社

第三本:FFmpeg入门详解--命令行及音视频特效原理及应用--梅会东--清华大学出版社

第四本:FFmpeg入门详解--SDK二次开发及直播美颜原理及应用--梅会东--清华大学出版社

===================================

FFmpeg入门详解之75:FFmpeg转码器Java版之系统分析与设计相关推荐

  1. FFmpeg入门详解之6:VLC播放器简介

    VLC播放器        VLC支持多种常见音视频格式,支持多种流媒体传输协议,也可当做本地流媒体服务器使用,功能十分强大. 官网下载地址:https://www.videolan.org/ VLC ...

  2. FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社

    大家好,我的第一本书正式出版了,可以在京东各大店铺抢购哦. <FFmpeg入门详解--音视频原理及应用:梅会东:清华大学出版社> 京东自营链接:https://item.jd.com/13 ...

  3. FFmpeg入门详解之100:搭建Nginx流媒体服务器

    这里小编给大家推荐一款流媒体服务器Nginx,可以实现RTMP和HLS等.搭建完成后,可以使用FFmpeg推流,实现直播功能. 注意:操作环境是Ubuntu18.04, 总共分为几个步骤: 1.安装N ...

  4. FFmpeg入门详解之116:rtsp live555摄像头直播

    rtsp+live555摄像头直播 Live555直播流程简介与演示 第一步,读取摄像头数据 第二步,x264编码 第三步,扩展live555 第四步,vlc或ffplay播放 ffplay -sta ...

  5. FFmpeg入门详解之83:流媒体与直播技术

    流媒体 流媒体又叫流式媒体,它是指商家用一个视频传送服务器(比如:vlc)把节目(比如:ande10.mp4)当成数据包发出,传送到网络上.用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显 ...

  6. FFmpeg入门详解之117:视频监控的架构和流程

    几张架构图带您快速了解视频监控 图一 图二 图三 图四 视频监控系统的简介 视频监控 视频监控是安全防范系统的重要组成部分,英文Cameras and Surveillance.传统的监控系统包括前端 ...

  7. FFmpeg入门详解之121:颜色空间转换RGB和YUV的原理与实战

    5.颜色空间转换RGB和YUV的原理与实战 三种颜色空间模型:RGB.YUV.HSV 一.概述 颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间. 但被描述 ...

  8. FFmpeg入门详解之122:Qt5 FFmpeg本地摄像头采集预览实战

    6.Qt5+FFmpeg本地摄像头采集预览实战 源码工程:S26_Test2 FFmpeg命令行处理摄像头 ffmpeg -list_devices true -f dshow -i dummy 命令 ...

  9. FFmpeg入门详解之124:Qt5 FFmpeg单路网络摄像头采集预览

    Qt5+FFmpeg单路网络摄像头采集预览 源码工程:S26_Test4 RTSP协议简介 RTSP(Real Time Streaming Protocol),RFC2326 RTSP(Real T ...

最新文章

  1. centos7下安装docker(11容器操作总结)
  2. nodejs 开发企业微信第三方应用入门教程
  3. 鸿蒙系统的逻辑,鸿蒙系统逻辑近似苹果iOS13?这华为在搞什么?
  4. xcode快捷键大全
  5. P2157 [SDOI2009]学校食堂
  6. 《机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)》
  7. 独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?
  8. uva 10985 Rings'n'Ropes
  9. Shiro 整合SpringMVC 并实现权限管理,登录和注销
  10. 安装 Dubbo 管理控制台
  11. mysql单机三实例_Mysql单机多实例
  12. Window系统: 解决 win xp系统 最新版QQ/TIM安装包 报错误 安装包可能被非法改动导致安装失败 云云.2021-02-15
  13. CXF框架介绍及Spring集成
  14. C#实现微信扫码支付
  15. 文本域换行 php,js获取textarea文本域自动换行符
  16. artdialog v6强大的模态对话框v6版api
  17. 迭代需求文档规范(模板)
  18. 深度好文推荐阅读——阿里云的这群疯子
  19. JAVA的向上转型与向下转型(二)
  20. python代码解释4个作用域_Python中作用域的深入讲解

热门文章

  1. 视频转gif【不要钱!不要会员!还很方便!】
  2. 简单理解--java反射(面试必备)
  3. cmder安装及部分问题修复
  4. jersey初学者资源
  5. 体外应用Cas9系统实现对上百kb的基因组片段的靶向克隆
  6. 超全的时区缩写转GMT(UTC)对照表
  7. OpenDDS开发人员指南中文版3.23(0)序言
  8. FileNotFoundError: [WinError 3] 系统找不到指定的路径。的解决方法
  9. 51单片机c语言编写计算器仿真,基于51单片机的计算器设计c程序代码加proteus仿真...
  10. 从零开始创建一个个人博客前端Vue,后端node.js(第一天)