媒体资产管理系统中基于FFmpeg技术的应用设计

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:wlg1991
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:媒体资产管理(Media Asset Management,简称MAM)是指利用信息技术手段,对数字媒体资产所做的存储、管理、挖掘和再利用,实现媒体资产价值的优化。媒资系统在设计中为保证系统具有最大兼容性,就要对编码转换子系统进行改进,本文对FFmpeg技术相关理论及FFmpeg技术在媒体资产管理系统中的应用做一些探讨。
  关键词:媒体资产管理;FFmpeg技术;编码解码
  中图分类号:TP315
  媒体资产管理系统是指对各类视频、音频资料的存储、编目、资产发布的综合信息系统,能够实现创建、编目、存储等,提高媒体资源利用率。媒体资产管理系统的实现可以分为数据上下载系统设计、编码系统设计、编目系统设计以及存储管理系统设计等,为了保证实现兼容性,需要编码系统能完成多种格式之间的转换,因此FFmepeg技术不失为一个优化的选择。
  1 FFmpeg技术概述
  FFmpeg是一个基于Linux操作系统,集录制、转换以及流化音视频为一体的解决方案,能够在绝大多数的操作系统中使用,包含了非常先进的音频/视频编解码库libavcodec,支持多种编码和解码。FFmpeg由视频文件转换命令行工具、多媒体服务器、媒体播放器、普通格式解析器以及音视频编码器等组成。
  FFmpeg命令行的基本格式是FFmpeg.exe[options]-i input_file [options]output_file,FFmpeg参数由输入文件和文件两部分组成,输入文件名称前加下短线“-”,另外输入文件和输出文件可以自带可选参数,如参数-ss,格式为-ss hh;mm;ss;xxx,设置转换的起点位置,如-ss 00:30.000;参数-t,格式为-t hh;mm;ss;xxx,转换持续的时间,如-t 00:05.00.00;参数-vcodor,格式为-vcodor编码器,设置视频编码器,如-vcodor wrnv2等。
  2 FFmpeg 视频转换的关键技术
  FFmpeg视频转换的关键技术包括FFmpeg编码/解码的实现和格式转换的流程。在技术实现方面,素材的格式转换功能主要是调用音频/视频编码库libavcodec中的相应函数来实现,需要注意的是在采用FFmpeg编码之前需要先初始化libavcodec库,导入帧速率、编码器码率以及编码像素格式等参数,接着再进行编码。结构体AVCodecContext中的各个成员参数通过预设的视频参数来赋值,系统每一帧的数据都变为视频流。编码过程为(部分):av_register_all()→av_find_stream_info()→avcodec_alloc_frame()→pCodec=avcodec_find_ encoder (CODEC_ID_H264)→av_read_frame()→avformat_close_mput file().FFmpeg解码过程为(部分):av_register_all()→av_find_decoder()→avcodec_open→avcodec_ encode_ video→显示视频→avcoder_close()。
  FFmpeg采用了核心库+主程序的编程模式,实现内部各种函数的具体格式,也实现了对视频的编辑操作,修改部分文件格式处理的代码,系统的视频编辑界面采用非线性布局,能够非常精确的记录视频剪辑的时间。具体流程为:是否需要视频剪切(是)→是否需要格式转换(是)→编辑后关闭文件→更新各项统计参数→保存生成新文件的函数→调用XML Parser组件生成文档。
  3 FFmpeg在媒体资产管理系统中的技术实现
  3.1 设计思路
  通过FFmpeg.exe命令执行完成媒体转码,能够在主程序与FFmpeg进程中建立输出管道,来管理转换过程。主程序进程启动主程序线程、管道监视线程以及任务监视线程三个线程,包括数据上传下载系统、编码系统、编目子系统设计以及其他功能型设计等。主程序线程主要实现程序的初始化以及用户接口等任务,任务监视线程主要实现启动FFmpeg进程以及监视任务列表等,管道监视线程主要实现获取管道信息以及监视管道等过程。
  图1 系统结构设计图
  主程序完成初始化后,创建管道事件和任务监视线程,任务监视线程建立数据库连接生成任务队列,进而生成FFmpeg命令字符串,开始转换编码。FFmpeg转码完成后自动结束,进行下一任务。在FFmpeg的进程执行中,信息分为开始、过程和结束信息,分析开始信息字符串能够得到时长、视频格式、帧大小、视频制式等,进而计算转换完成百分比,返回给监视线程,用于等待控制。
  3.2 数据上下载系统设计
  上载模块主要功能是实现素材的双码流导入,采编过程可参照两种命令实现:高品质:ffmpeg -i X:\input\a.wmv-ab 128-acodec libmp3lame-ac 1 -ar 22050 -r 29.97 -qscale 4 -y X:\output\a.flv和低品质:ffmpeg -i X:\input\a.wmv -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -b 512 -y X:\output\low.flv。以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行。不过前提是要在ffmpeg所在的目录中执行。
  由于网络上传文件一般分为FTP协议方式和HTTP协议方式,而HTTP协议方式操作简单、便于管理,因此经常使用。本文设计采用ASP.NET实现文件批量上载,最大可支持4096Kb文件,修改web.config文件中的RequestLenght等属性值来实现上传大文件作用;下载模块主要实现媒体资料的不同介质存储,通常实现文件下载有不同的方法,可以采用IssusI()Utility、TransmitFile()、WriteFile()、WriteFile()分块下载、Binary Write()等实现下载。测试环境主要是Windows7、Visual Studio2005以及ASP.NET等,下载时间见表1所示。   表1 不同方法下载时间
  文件大小/Kb 方法1/s 方法2/s 方法3/s 方法4/s 方法5/s
  107680
  201638
  310720
  415002
  平均时间 5.533
  11.351
  19.615
  28.165
  21.037 5.676
  11.465
  20.256
  33.554
  17.738 5.192
  10.165
  20.216
  24.156
  14.935 5.315
  11.364
  20.564
  48.264
  21.677 8.126
  15.526
  26.458
  36.565
  21.669
  3.3 基于FFmpeg的编码系统的设计
  在编码系统的设计中重点是检索码流转换和文件格式转换两种需求,任务主要有节目成品入库前编码、素材回调编码和多种码间流转换。比如常用的素材编辑和检索发布的格式主要是MPEG-X和FLV,由于前者的音视频数据在传输时会对带宽造成较大影响,广域网用户往往需要缓冲很长时间才能够进行播放,因此在非编辑状态下多使用FLV格式,这种流媒体格式加载快、视频效果良好。在转换编码时工作流程为MeDIA→ByteIOC ontext→DEMUXER(拆分文件)→DECODE函数→YUV(颜色编码方法)→ENCODE函数→MUXER(合并文件)→BytelOC ontext→MEDIA,YUV(颜色编码方法)→DECODE(函数)→DEMUXER(拆分文件)→BytelOC ontext→MEDIA。此工作流程包括解码播放过程、格式转换过程以及录制过程,实现了采集、编辑以及播放等功能。
  针对基于FFmpeg的编码服务主要有两种实现方案,一种是先将FFmpeg编译为ffmper.exe,接着在ffmpeg.exe的基础上开发,另一种则是直接在FFmpeg项目源码上开发,虽然第二种方法运行效率以及稳定性上有很大的优势,但是这种方法的开发成本过高,且需专业的维护,并不适合用于小型媒资产系统,因此在多采用成本低,开发便捷的第一种方法。以ffmpeg.exe为例进行说明低码率的转换,主要代码为(部分):string tool= Application.StartupPath + “// ffmper.exe”; stcmd= sFileName + “-ab56-ar220500- b512 -r15-s 320 x 240”+dFileName;p.StarInfo.FilkeName=toolpath;FFmpeg编解码运行过程见图2所示。为支持新的视频格式,可下载其第三方库,产生的ffmper.exe以及libavcodec等文件替换其原先的文件,从而完成模块更新并支持其新格式。
  图2 FFmpeg编解码过程
  在编码处理过程中,用户通过用户界面对编码服务器进行调度和配置。编码服务器采用无界面后台程序工作模式进行,无需编码的硬件支持。由于需要进行大量的磁盘读取,同时编码过程需占用较多的CPU资源,因此,编码系统可以设计为单队列、多任务方式进行并行处理,这样可减少对系统资源的占用,提高处理速度。
  3.4 编目系统设计
  编目系统是实现检索功能的基础设计部分,主要是编目、著录原文件,设计需求包括媒体对象、素材目录、出版以及相关人员信息等,初步设计共包括题名、出版日期、内容描述、关键词以及资源类型等15个元素。为简便操作,采用每个资源对应一个资源编号。编目著录过程中应注意两个问题:(1)著录元数据的完整性;(2)音视频著录中部分字段的处理方法及区别。
  3.5 其他系统设计
  其他系统设计主要是存储管理系统、文件检索以及迁移备份等系统的设计,本文采取的存储管理系统是三级存数与SAN存储相结合的分级存储架构,安全性能与效率较高。文件检索系统主要是实现分类检索、精确检索等功能,并且用户能够实现检索结果的下载、播放等操作。迁移系统的设计依照数据的不同使用频次分别移到在线、近线、离线的存储设备中,依照模型涉及到时间、文件用户数量、I/O频率、对比度以及文件大小等参数。编码服务器在数据迁移过程中通过改变素材的封装方式和头文件,尽量减少对素材本身编码和码流的改变,避免重复编码以节约资源。数据的备份文本采用基于数据库的实时热备份技术,采用双网连接和盘阵技术,保证安全性和稳定性。此外媒资系统还具有转码加密、播放解码(密)、查询回放等其他功能。
  4 结束语
  综上所述,媒体资产管理系统通过应用FFmpge技术,系统优化了媒资系统中检索、转换和传输的若干问题,充分保证了数据的有效性和完整性。在今后的技术应用中,针对工作的实际需求,还需要对FFmpge技术的开发应用进行不断完善和探索。
  参考文献:
  [1]邓蕾蕾,张里荃.基于FFmpeg技术的媒体资产管理系统设计[J].吉林大学学报(理学版),2012(06):1218-1222.
  [2]杨丽军.FFmpeg在媒体资产管理系统中的应用[J].现代电子技术,2011(15):147-149.
  [3]刘建敏,杨斌.嵌入式Linux下基于FFmPeg的视频硬件编解码[J].单片机与嵌入式系统应用,2011(06):28-31.
  作者简介:金晶(1978-),男,湖南长沙人,工程师,硕士,研究方向:广电工程、非线性编辑技术、新媒体技术。
  作者单位:湖南广播电视大学教育信息技术中心,长沙 410004
  基金项目:湖南电大校级课题(项目编号:XDK2013-C-4)。
其他文献
为应对气候变暖对农业生产的影响,定量评价气候要素对春小麦生长的影响,运用模糊数学理论和滑动平均模拟法,利用前人建立的气候适宜度模型,进行春小麦气温、降水、日照隶属度模型和气候适宜度模型的研究。结果表明:春小麦全生育期气温、降水适宜度呈下降趋势,而日照无明显变化趋势。生育期内日照适宜度最高,气温次之,降水适宜度最低。苗期降水适宜度最低,抽穗期次之,气温适宜度苗期最低,变异系数最大,表明苗期的降水和气
[本刊讯]7月13日,江苏省社科联与无锡市社科联联合举行的“推动无锡文化建设上新台阶理论研讨会”在锡举行.江苏省和无锡市社科界专家学者在会上分别围绕城市文化品牌及其打
2014年12月14日.习总书记在江苏视察时.首次提出全面建成小康社会、全面深化改革、全面依法治国、全面从严治党的工作布局。习近平总书记在党的群众路线教育实践活动总结大会上
中医药信息在查询过程中经常出现同药异名、异药同名、一名多药、一药多名的情况,如何为广大用户和各级人员提供准确、及时的中医药信息,已成为中医药信息化要解决的主要问题。
《Linux网络操作系统》是高职学校计算机专业学生的一门重要的专业基础课程,本文从虚拟机VMware的角度出发,借助虚拟系统克服了传统教学面临的问题,对本课程的教学模式与实验方
张闻天同志是中国共产党早期主要领导人之一,并在1935年1月召开的遵义会议上当选为党中央总书记.作为杰出的无产阶级革命家,其革命生涯的第一站便是苏州;作为优秀的无产阶级
摘要:随着经济的不断发展,计算机的发展与普及已经不仅仅是高科技的代表,更成为现代人们生活的重要标志,市场化的发展要求对于计算机人才需求结构的变化也给中专学校的教育提出了新的要求,本文就主要分析软件教育在中专的计算机教育中存在的问题,并根据这些存在的问题提出具体的解决措施,旨在不断提升软件教育在中专计算机教育中的比重与效率。关键词:软件教育;中专计算机教育;现状;对策中图分类号:TP3-4文献标识码
作为生产力发展的综合表现.城市经济和县域经济是经济社会发展在不同阶段的产物。在经济进入从高速增长转向中高速增长的“新常态”发展阶段.以市场化为主要导向、以现代服务业
昆山市坚持推动社会主义核心价值观区域化实践.把贯彻落实社会主义核心价值观的精神内核同昆山的经济社会发展实践、“文化强市”建设相结合.打造社会主义核心价值观区域化实践