基于FFMPEG的自动识别格式的图片输出方法技术

技术编号:13068489 阅读:78 留言:0更新日期:2016-03-24 04:11
本发明专利技术提供一种基于FFMPEG的自动识别格式的图片输出方法,包括:根据用户配置信息进行初始化操作以创建图片保存线程;将基于FFMPEG的帧图像中的YUV数据发送至所创建的图片保存线程;进行图片保存操作,根据所述用户配置信息中的图片保存格式将图片信息写入所述图片保存线程中的输出文件内;以及释放所占用的资源。本发明专利技术实现了实时保存用户自定义格式和图片信息,操作简单且能快速有效的记录既定格式以及分辨率的图片,支持bmp,jpg,jpeg,png,gif等格式,解决了现有根据不同图片格式进行编码以及对不同分辨率进行数据提取的复杂性。

【技术实现步骤摘要】

本专利技术涉及图片输出技术,特别是涉及一种基于FFMPEG的自动识别格式的图片输出方法
技术介绍
目前,数字化,网络化,智能化,可视化是社会发展,智能监控的整体趋势,在一定程度上提高了信息传递的速度和质量。随着网络市场环境的不断成熟,信息可视化逐步成为我们生活中不可或缺的一份子,一种网络视频可视化工具已成为社会发展及智能监控的方向。可视化工具在某种意义上将我们要提取的信息以一种图片或者视频的方式展示出来,通过所显示的目标或者差异,多方位比对,使我们能够直观的感知我们感兴趣的部位或者片断,一目了然,清清楚楚,同时能够快速吸引人们的目光关注及关注力度。FFMPEG (Fast Forward Moving Picture Expert Group)是一个视频流和音频流的开源免费平台,现有人们在FFMPEG中输出图片需要根据不同的图片格式调用不同的方法进行图片的输出,操作麻烦,还不能对输出图片进行分辨率的调整。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于FFMPEG的自动识别格式的图片输出方法,用于解决现有技术中根据格式调用不同方法来输出图片的操作麻烦和不能对输出图片进行分辨率调整的问题。为实现上述目的及其他相关目的,本专利技术提供一种基于FFMPEG的自动识别格式的图片输出方法,包括:根据用户配置信息进行初始化操作以创建图片保存线程;将基于FFMPEG的帧图像中的YUV数据发送至所创建的图片保存线程;进行图片保存操作,根据所述用户配置信息中的图片保存格式将图片信息写入所述图片保存线程中的输出文件内;以及释放所占用的资源。优选地,根据用户配置信息进行初始化操作,包括:读取并记录所述用户配置信息中的图片保存格式;创建图片保存线程;加载FFMPEG库,定义帧空间结构体、与所述帧空间结构体关联的数据空间、流结构体、编码结构体、以及输出码流域结构体。优选地,将输出文件名、原始图片尺寸、以及图片保存尺寸随着所述YUV数据一起发送至所创建的图片保存线程。优选地,进行图片保存操作,包括填充所述初始化操作中所定义的各结构体:初始化所述输出码流域结构体;根据所述图片保存格式获取对应的编码格式,查找编码器,并填充所述编码结构体;根据所述图片保存格式填充所述流结构体,并将所述编码器打开。优选地,填充所述流结构体包括:填充所述流结构体中的码率、帧率、分辨率、编码格式以及输出格式的标志。优选地,进行图片保存操作,还包括图片信息的填充:定义缓冲帧空间结构体并申请相关联的一帧图像所需的内存空间;将图片信息以原始图片尺寸填充至所述缓冲帧空间结构体内的内存空间。优选地,将图片信息以原始图片尺寸填充至所述缓冲帧空间结构体内的内存空间,包括:对应填充所述缓冲帧空间结构体的格式、尺寸、以及数据字段。优选地,进行图片保存操作,还包括调整分辨率:第一步,判断所述原始图片尺寸和图片保存尺寸是否相同,若相同则执行第二步;若不相同则申请一帧图像所需的调整内存空间,初始化并申请调整结构体,将图片以所述图片保存尺寸进行调整,释放所述调整结构体和所述调整内存空间;第二步,将所述图片信息以所述图片保存尺寸填充至所述帧空间结构体关联的数据空间,将所述缓冲帧空间结构体和与其相关联的内存空间释放。优选地,进行图片保存操作,还包括保存图片:根据所述输出码流域结构体的输出格式以写方式打开所述图片保存线程中对应所述输出文件名的输出文件,若所述输出文件已打开则进行下一步;写文件头;定义并初始化数据包结构体,进行图像编码;将编码成功后的数据包写入输出文件;写文件尾。优选地,释放所占用的资源,包括:释放所述帧空间结构体和与其关联的数据空间;关闭所打开的编码器;关闭所打开的输出文件;释放所述流域结构体。如上所述,本专利技术的一种基于FFMPEG的自动识别格式的图片输出方法,具有以下有益效果:本专利技术的基于FFMPEG的自动识别格式的图片输出方法,实现实时保存用户自定义格式和图片信息,操作简单且能快速有效的记录既定格式以及分辨率的图片,支持bmp,jpg,jpeg, png, gif等格式,解决了现有根据不同图片格式进行编码以及对不同分辨率进行数据提取的复杂性。本专利技术的图片输出方法能够快速将YUV数据压缩成用户自定义的格式,支持非等比分辨率的转换,无需用户采样提取数据,兼容性高,便于其他程序调用,无需用户调用FFMPEG进行处理程序,在很大程度上节约了用户根据文件名调用不同算法所占用的资源。【附图说明】图1显示为基于FFMPEG的自动识别格式的图片输出方法的流程图。图2显示为图1中步骤S11的流程图。图3显示为图1中步骤S13的流程图。图4显示为图3中步骤S131的流程图。图5显示为图3中步骤S132的流程图。图6显示为图3中步骤S133的流程图。图7显示为图3中步骤S134的流程图。图8显示为图1中步骤S14的流程图。元件标号说明S11 ?S14 步骤S111 ?S113 步骤S131 ?S134 步骤S1311 ?S1314 步骤S1321 ?S1322 步骤S1331 ?S1333 步骤S1341 ?S1346 步骤S141 ?S144 步骤【具体实施方式】以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。请参阅图1,本专利技术提供一种基于FFMPEG的自动识别格式的图片输出方法,实现快速有效的图片保存,解决现有技术中根据格式调用不同方法的麻烦,同时也为图片分辨率转化提供了可能。本专利技术根据用户给定的格式及图片信息自动保存图片,具有科学合理,操作简单且快速有效的记录既定格式及分辨率的图片,支持多种图片格式。下面结合附图对本专利技术基于FFMPEG的自动识别格式的图片输出方法进行说明。如图1所示,本专利技术一种基于FFMPEG的自动识别格式的图片输出方法,包括如下步骤:执行步骤S11,初始化,根据用户配置信息进行初始化操作,结合图2所示,具体的初始化操作包括:执行步骤S111,读用户配置信息,记录下用户配置信息中的图片保存格式,是否需要分辨率转换,转换后分辨率信息。执行步骤S112,创建图片保存线程。执行步骤S113,FFMPEG初始化,结构体定义,FFMPEG库加载,初始化、定义一帧图像的帧空间结构体AVFrame及与此帧空间结构体AVFrame挂钩的数据空间,定义流结构体AVStream、编码结构体AVCodec、输出码流域结构体AVFormatContext。接着执行步骤S12。执行步骤S12,YUV数据发送,将基于FFMPEG的帧图像中的YUV数据发送至步骤S11中所创建的图片保存线程。获取解码后码流送往图片保存线程。在发送YUV数据本文档来自技高网...

【技术保护点】
一种基于FFMPEG的自动识别格式的图片输出方法,其特征在于,包括:根据用户配置信息进行初始化操作以创建图片保存线程;将基于FFMPEG的帧图像中的YUV数据发送至所创建的图片保存线程;进行图片保存操作,根据所述用户配置信息中的图片保存格式将图片信息写入所述图片保存线程中的输出文件内;以及释放所占用的资源。

【技术特征摘要】

【专利技术属性】
技术研发人员:王丹王夷刘其峰刘龙飞王小虎
申请(专利权)人:上海熙菱信息技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1