您的位置 首页 开关

根据FFmpeg的高清视频修改模块的设计方案

1相关背景视频分析在体育领域中的应用非常广泛,教练员和运动员可以通过控制比赛录像分割、回放、暂停等操作,仔细研究比赛细节,并对运动员的技战术特点进行分析和总结,作为第一手资料指导运动员日常训练及比赛。

1 相关布景

视频剖析在体育领域中的运用十分广泛,教练员和运动员能够经过操控竞赛录像切割、回放、暂停等操作,细心研讨竞赛细节,并对运动员的技战术特色进行剖析和总结,作为第一手资料辅导运动员日常练习及竞赛。跟着多媒体技能以及视频编解码技能的不断发展,高清视频作为一种能够为研讨运动员技战术水平供给强力支撑的重要东西,越来越遭到各国教练团队的注重。

MTS 视频格局是一种新式的高清视频格局, 其视频编码一般选用H264 格局,音频编码选用AC-3 格局,分辨率为全高清规范1920*1080.因为MTS 视频格局选用的H264 编码的复杂性,决议了解码MTS 对硬件的兼容才能的高要求,高清片源在许多现有的播映器上播映会呈现中止、失帧的现象,因而有必要转化为兼容性更强的MPEG 格局。运用本来根据DrectShow 技能开发的国家击剑队视频办理体系进行MTS 格局视频编码时会呈现无法辨认视频格局的问题,而且因为DrectShow 进行视频编码的功率过低,导致处理高清视频时刻过长,影响了体系工作功率。

为处理此问题,本文在原视频办理体系的根底上,运用在Windows 环境下编译FFmpeg 发生的二进制库,对原有的视频修正模块进行改善,完结了MTS 格局高清视频源的剪切和向MPEG 格局的紧缩转化,并运用XML Parser 组件将编排完结视频的时刻线信息保存到XML 文档,完结高清体育视频的修正、贮存和办理。

2 FFmpeg 编码

2.1 FFmpeg 简介

FFmpeg 是一款强壮的开源免费跨渠道音视频编码器与解码器的调集,归于自由软件,选用GPL 或LGPL 许可证,支撑MPEG、MTS、MPEG4 等40 多种编码, MPEG、Matroska、OGG 等90 多种解码,是一个集录制、转化、音/ 视频编解码功用为一体的、完好的开源处理计划。FFmpeg 的开发根据Linux 操作体系, 也可在大多数操作体系中编译和运用, 而且编码功率很高,因而根据以上长处,本体系挑选FFmpeg 作为完结视频修正模块的根底。

2.2 FFmpeg 在Windows 环境下的编译

FFmpeg 是一款根据Linux 体系的跨渠道开源项目,选用gcc编译器,在Windows 环境下编译FFmpeg 不能运用BCB 或VC++ 等专用编译器,需求先下载编译东西链mingw 装置包,并装备相应的环境变量。此外还需装置Msys 来模仿Linux 环境,并装置yasm.

exe 的32.bit 版别(对应自己的操作体系)来编译FFmpeg 里边的汇编代码。

装置完毕之后修正C :\MinGW\msys\1.0\msys.bat 文件,在最终一行参加VS2010 的相对路径,参加这行后编译FFmpeg 时会多出windows 下调用dll 对应的lib,其间常用的有四个库文件:libavcodec、libavformat、libavutil 和libswscale.其间libavcodec 库中寄存的是用于音视频解码和编码的decode/encode 模块,libavformat 库中寄存的是用于兼并/ 别离音频和视频流的muxer/demuxer 模块,libavutil 库中寄存的是内存操作等辅助性模块。

2.3 FFmpeg 编码的完结

本视频修正模块主要是调用音频/ 视频编解码库libavcodec中的相应函数来完结格局转化与剪切功用。在运用FFmpeg 编码之前, 首要需求初始化libavcodec 库,注册一切的编解码器以及文件格局,导入编码器码率、帧速率、编码像素格局等参数,然后寻觅编码器并翻开进行编码。经过用预设的视频参数为结构体AVCodecContext 中的各个成员参数来赋值,完结编码参数的设置。编码的中心函数是avcodec_encode_video( )。体系每收集一帧的数据, 就送给avcodec_encode_video( ) 函数编码成H.264 视 频流。编码进程中详细的函数和编码流程如图1 所示。

3 根据FFmpeg 的视频修正模块的完结

改善之后的高清视频修正模块的结构如图2 所示。

FFmpeg 选用了主程序+ 中心库的编程形式。FFmpeg 中心库躲藏了其内部各种函数的详细格局的完结, 对外供给了一致的调用办法。针对此规划形式的特色,本视频修正模块具有以下规划特色:经过直接调用FFmpeg 中心库中的函数来完结对视频的修正操作,一起还对libavformat 库中的MPEG 文件格局处理部分的代码进行了修正,使之完结按固定码率的输出。体系的视频修正界面选用非线性布局,操作时刻轴上需求记载的信息有视频编排的入点时刻和出点时刻( 准确到秒), 每次在进行视频文件处理时,中间层会首要判别用户是否时刻线有改动,若有改动则履行剪切部分代码,将时刻轴上的入点信息和出点信息作为调用中心库函数的参数导入结构体AVCodecContext.体系调用avcodec_encode_video() 等相关函数对视频进行编码,若用户勾选了需求格局转化则转化为MPEG 格局,否则按原格局输出。转化完结之后还需将生成的新文件的句柄替换到有关的数据结构之中,最终再将修正的详细信息经过XML Parser 组件生成XML 文档。详细进程如图3所示。

4 高清视频剖析体系

参加高清视频修正模块之后的国家击剑队视频剖析体系如图4 所示。

本文运用了击剑队规范高清测验视频中的一段长4 分05秒的片段对视频修正模块进行了测验,该片源的图画分辨率为1920*1080,码率为12414kbps, 帧率25 帧/ 秒,源文件巨细为363MB,运用本体系截取了一段2 分钟的视频进行格局转化,编码体系正确辨认了源文件,并输出了一个138MB 的MPEG 文件。播映器上实践的播映作用标明,改视频修正模块能正确的将高清MTS格局源文件按用户要求剪切并紧缩转化为可流通播映的MPEG 格局,根本契合了规划要求。

5 完毕

本文详细论述了根据FFmpeg 的高清视频修正模块的规划和完结,在剖析了原有根据DrectShow 技能开发的修正模块存在的缺乏的根底上,剖析和提出了根据FFMpeg 的改善计划,并介绍了该计划的详细完结,该处理计划在坚持了FFmpeg 高效的编码速率、较好的编码质量的一起,做到了与原有体系其他模块的兼容,编排出来的视频契合国家击剑队练习运用的各项要求。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/240928.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部