大香蕉网 详解Android成就之MP4文献转GIF文献

色老大导航
你的位置:色老大导航 > 噜噜 > 大香蕉网 详解Android成就之MP4文献转GIF文献
大香蕉网 详解Android成就之MP4文献转GIF文献
发布日期:2024-09-25 04:29    点击次数:89

大香蕉网 详解Android成就之MP4文献转GIF文献

一 基本收场道理大香蕉网

在先容具体收场经由之前,先粗拙说下基本道理和收场纪律,在管理相对相比复杂的问题,我民风先理清主要道理纪律,不要一运行就被繁琐细节绊住,待具体收场时再一一攻破。底下是主要纪律:

     1、视频文献的读取:包括录制和土产货文献读取 

     2、将需要转机的视频部分分解为 Bitmap 序列

     3、将分解好的 Bitmap 序列编码生成 GIF 文献

二 视频文献的读取

视频文献的读取相比粗拙,没什么颠倒需要说的方位,这里粗拙贴出视频读取的中枢部分代码,详备收场不错Google一下就行了。

三 视频文献的分解

视频文献读取得胜后,接下来要作念的即是分解视频文献,中式需要转机的视频片断,提真金不怕火Bitmap序列。底下来看下具体收场,提真金不怕火 Bitmap 序列即是阐明给定的肇始手艺和终止手艺以及帧率从视频文献中得到相应的 Bitmap,本文主如若欺诈 MediaMetadataRetriever 提供的 API 来收场的,在看代码前不错先看下 MediaMetadataRetriever 的 API 文档,该类的中枢功能即是得到视频的帧和元数据,底下是中枢收场代码:

四 生成 GIF 文献

拿到要生成 GIF 的 Bitmap 序列,接下来需要作念的即是将 Bitmap 序列中的数据按照 GIF 的文献表情编码,生成最终的 GIF 文献。筹谋很明确,接下来就看具体收场经由了。

1. GIF 表情简介

生成 GIF 文献之前有必要先容下 GIF 的存储表情,GIF 表情的关连著作相比多大香蕉网,这里也没必要太详备的先容,仅仅粗拙说下背面范例中会用到的方面。

GIF 图象是基于神采列表的(存储的数据是该点的神采对应于神采列表的索引值),最多只接济 8 位(256 色)。GIF 文献里面分红好多存储块,用来存储多幅图象大要是决定图象发扬举止的截至块,用以收场动画和交互式应用。GIF 文献还通过 LZW 压缩算法压缩图象数据来减少图象尺寸。

GIF 文献里面是按块别离的,包括截至块和数据块两种。截至块是截至数据块举止的,阐明不同的截至块包含一些不同的截至参数;数据块只包含一些 8-bit 的字符流,由它前边的截至块来决定它的功能,每个数据块 0 到 255 个字节,数据块的第一个字节指出这个数据块大小(字节数),盘算数据块的大小时不包括这个字节,是以一个空的数据块有一个字节,那即是数据块的大小0x00。

2. GIF 文献写入

刚运行战争 GIF 文献会以为相比复杂,存储表情、编码表情等齐比 Bitmap 要复杂的多,但其实不错把问题粗拙化调处,生成 GIF 和生成 Bitmap 道理肖似,即是按照端正的表情写文献就行了,无谓太纠结里面细节,不然就会堕入繁琐的细节(俗称钻牛角尖)而忽略了最终看法仅仅为了生成 GIF 文献。底下就来看下有哪些文献部分需要写入的:

提真金不怕火 Bitmap 的像素值

当先需要将上头得到的 Bitmap 的像素值提真金不怕火出来,简便背面把像素值写入到 GIF 文献中,在提真金不怕火像素值的同期,生成 GIF 文献所需要的神采表,生成神采表经由相比复杂,这里就不贴出源码,感兴味的不错Google一下神采量化算法,不感兴味的径直用现成的就好,底下是提真金不怕火像素值的具体收场:

GIF 文献头(Header)

文献头部分悉数 6 个字节,包括:GIF 签字和版块号,GIF 签字由 3 个字符"GIF"构成,共 3 个字节,版块号亦然由 3 个字节构成,不错为"87a"或"89a"(分别为 1987 年和 1989 年版块),收场代码如下:

逻辑屏幕标志符(Logical Screen Descriptor)

文献头的背面是逻辑屏幕标志符(Logical Screen Descriptor),这一部分由 7 个字节构成,界说了 GIF 图象的大小、神采深度、背舒畅以及有无全局神采列表和神采列表的索引数。收场代码如下:

野外 露出

逻辑屏幕标志符部分结构稍许复杂些,如果不知谈每一位代表什么意道理味不错参考:GIF图形文献表情文档 中的逻辑屏幕标志符部分。

全局神采列表(Global Color Table)

全局神采列表必须紧跟在逻辑屏幕标志符背面,每个神采列表索引条件由三个字节构成,按R、G、B的端正陈设,具体生成神采表的收场不错看源码部分,由于生成经由相比复杂,这里就不贴神采表生成的代码了,底下是写入神采表的代码:

图形截至彭胀(Graphic Control Extension)

这一部分是可选的,89a 版块才接济,不错放在一个图象块(包括图象标志符、局部神采列表和图象数据)或文本彭胀块的前边,用来截至跟在它背面的第一个图象(或文本)的渲染( Render )体式,底下收场代码:

图象标志符(Image Descriptor)

一个 GIF 文献内不错包含多幅图象,一幅图象终止之后紧接着下是一幅图象的标志符,图象标志符以 0x2C(',')字符运行,界说紧接着它的图象的性质,包括图象相干于逻辑屏幕界限的偏移量、图象大小以及有无局部神采列表和神采列表大小,由10个字节构成,底下是收场代码:

图象数据(Image Data)

GIF 图象数据使用了 LZW 压缩算法,大大减小了图象数据的大小,具体的 LZW 压缩算法不错Google一下,范例收场部分不错参考著作底部的源码畅通。底下是图像数据的写入收场:

文献完毕器(Trailer)

这一部分惟有一个字节,标志一个GIF文献终止,固定值为 0x3B,收场代码:

牵记

到当今为止,将 MP4 文献转机为 GIF 文献的收场经由基本完成,如果需要对 GIF 文献进行剪辑、添加水印等处理的话大香蕉网,不错在 Bitmap 序列写入 GIF 之前,对 Bitmap 进行相应的处理即可,如果有什么问题宽待磋议学习。但愿本文的本色对人人的学习责任能有所匡助。

您可能感兴味的著作: Android音频录制MediaRecorder之简单的灌音软件收场代码 Android粗拙的欺诈MediaRecorder进行灌音的实例代码 Android应用成就:电话监听和灌音代码示例 Android App调用MediaRecorder收场灌音功能的实例 Android成就四大组件之收场电话箝制和电话灌音 Android使用MediaRecorder收场灌音及播放 Android灌音应用实例教程 一个html5播放视频的video控件只接济android的默许表情mp4和3gp Android 使用VideoView播放MP4的粗拙收场 Android灌音况且输出为Mp4文献的纪律教程

Powered by 色老大导航 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 版权所有