欢迎来到天天文库
浏览记录
ID:31361211
大小:111.00 KB
页数:8页
时间:2019-01-09
《媒体资产管理系统中基于ffmpeg技术的应用设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、媒体资产管理系统中基于FFmpeg技术的应用设计 摘要:媒体资产管理(MediaAssetManagement,简称MAM)是指利用信息技术手段,对数字媒体资产所做的存储、管理、挖掘和再利用,实现媒体资产价值的优化。媒资系统在设计中为保证系统具有最大兼容性,就要对编码转换子系统进行改进,本文对FFmpeg技术相关理论及FFmpeg技术在媒体资产管理系统中的应用做一些探讨。 关键词:媒体资产管理;FFmpeg技术;编码解码 中图分类号:TP315 媒体资产管理系统是指对各类视频、音频资料的存储、编目、资产发布的综合信息系统,能够实现创建、编目、存储等,提高媒体资源利用率。媒体资
2、产管理系统的实现可以分为数据上下载系统设计、编码系统设计、编目系统设计以及存储管理系统设计等,为了保证实现兼容性,需要编码系统能完成多种格式之间的转换,因此FFmepeg技术不失为一个优化的选择。 1FFmpeg技术概述 FFmpeg是一个基于Linux操作系统,集录制、转换以及流化音视频为一体的解决方案,能够在绝大多数的操作系统中使用,包含了非常先进的音频/视频编解码库libavcodec,支持多种编码和解码。FFmpeg由视频文件转换命令行工具、多媒体服务器、媒体播放器、普通格式解析器以及音视频编码器等组成。8 FFmpeg命令行的基本格式是FFmpeg.exe[optio
3、ns]-iinput_file[options]output_file,FFmpeg参数由输入文件和文件两部分组成,输入文件名称前加下短线“-”,另外输入文件和输出文件可以自带可选参数,如参数-ss,格式为-sshh;mm;ss;xxx,设置转换的起点位置,如-ss00:30.000;参数-t,格式为-thh;mm;ss;xxx,转换持续的时间,如-t00:05.00.00;参数-vcodor,格式为-vcodor编码器,设置视频编码器,如-vcodorwrnv2等。 2FFmpeg视频转换的关键技术 FFmpeg视频转换的关键技术包括FFmpeg编码/解码的实现和格式转换的流程
4、。在技术实现方面,素材的格式转换功能主要是调用音频/视频编码库libavcodec中的相应函数来实现,需要注意的是在采用FFmpeg编码之前需要先初始化libavcodec库,导入帧速率、编码器码率以及编码像素格式等参数,接着再进行编码。结构体AVCodecContext中的各个成员参数通过预设的视频参数来赋值,系统每一帧的数据都变为视频流。编码过程为(部分):av_register_all()→av_find_stream_info()→avcodec_alloc_frame()→pCodec=avcodec_find_encoder(CODEC_ID_H264)→av_read_
5、frame()→avformat_close_mputfile().FFmpeg解码过程为(部分):av_register_all()→av_find_decoder()→avcodec_open→avcodec_encode_video→显示视频→avcoder_close()。8 FFmpeg采用了核心库+主程序的编程模式,实现内部各种函数的具体格式,也实现了对视频的编辑操作,修改部分文件格式处理的代码,系统的视频编辑界面采用非线性布局,能够非常精确的记录视频剪辑的时间。具体流程为:是否需要视频剪切(是)→是否需要格式转换(是)→编辑后关闭文件→更新各项统计参数→保存生成新文件
6、的函数→调用XMLParser组件生成文档。 3FFmpeg在媒体资产管理系统中的技术实现 3.1设计思路 通过FFmpeg.exe命令执行完成媒体转码,能够在主程序与FFmpeg进程中建立输出管道,来管理转换过程。主程序进程启动主程序线程、管道监视线程以及任务监视线程三个线程,包括数据上传下载系统、编码系统、编目子系统设计以及其他功能型设计等。主程序线程主要实现程序的初始化以及用户接口等任务,任务监视线程主要实现启动FFmpeg进程以及监视任务列表等,管道监视线程主要实现获取管道信息以及监视管道等过程。 图1系统结构设计图 主程序完成初始化后,创建管道事件和任务监视线程,
7、任务监视线程建立数据库连接生成任务队列,进而生成FFmpeg命令字符串,开始转换编码。FFmpeg转码完成后自动结束,进行下一任务。在FFmpeg的进程执行中,信息分为开始、过程和结束信息,分析开始信息字符串能够得到时长、视频格式、帧大小、视频制式等,进而计算转换完成百分比,返回给监视线程,用于等待控制。 3.2数据上下载系统设计 上载模块主要功能是实现素材的双码流导入,采编过程可参照两种命令实现:高品质:ffmpeg-iX:\input\a.wmv-
此文档下载收益归作者所有