* 音视频入门文章目录 * 静态图 -> 动态图 前面 [18-手动生成一张GIF图片] 和 [19-使用giflib处理GIF图片] 生成的 GIF 每一帧都是一个颜色,平时用到的 GIF 每一帧都是图片,下面就做一张每一帧都是图片的 GIF. 准备了 4 张静态图 .bmp . .png . .jpg . .gif(静态的GIF): BMP PNG JPG GIF Android.bmp Huawei.png Fuchsia.jpg iOS.gif 每张图片显示 1 秒,生成 GIF: im…
* 音视频入门文章目录 * BMP 文件格式解析 BMP 文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 位图文件头(14个字节) 位图信息头(40个字节) 颜色信息 图形数据 文件头与信息头一共是 54 字节 RGB 数据部分: RGB24 文件存储的顺序是 RGB, RGB, RGB ...... RGB BMP 文件 RGB 数据存储的顺序是 BGR, BGR, BGR ... BGR 位图文件头 位图文件头分 4 部分,共 14 字节 名称 占用空间 内容 示例数据 bfTyp…
* 音视频入门文章目录 * PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节文件署名(89 50 4E 47 0D 0A 1A 0A,十六进制),用来识别 PNG 格式. 用十六进制查看器打开任意一个 PNG 文件,都是可以看到这样的头部: PNG 定义了两种类型的数据块:一种是 PNG 文件必须包含.读写软件也都必须要支持的关键块(critical chunk):另一种叫…
* 音视频入门文章目录 * libyuv libyuv 是 Google 开源的实现各种 YUV 与 RGB 之间相互转换.旋转.缩放等的库.它是跨平台的,可在 Windows.Linux.Mac.Android 等操作系统,x86.x64.arm 架构上进行编译运行,支持 SSE.AVX.NEON 等 SIMD 指令加速. 准备工作 一张图片 下载 rainbow-700x700.bmp BMP 图片 或者 自己准备一张图片(知道分辨率,如:700x700) FFmpeg 工具包 FFmpeg…
* 音视频入门文章目录 * 介绍开源库 使用第三方开源库来简化开发,屏蔽一些底层的复杂度,节省大量编写代码的时间. libyuv: Google 开源的实现各种 YUV 与 RGB 之间相互转换.旋转.缩放的库. yuv2rgb:C library for fast image conversion between yuv420p and rgb24. 使用开源库 libyuv FFmpeg 生成代码所需文件: ffmpeg -i rainbow.bmp -video_size 700x700…
* 音视频入门文章目录 * YUV & RGB 相互转换公式 YCbCr 的 Y 与 YUV 中的 Y 含义一致,Cb 和 Cr 与 UV 同样都指色彩,Cb 指蓝色色度,Cr 指红色色度,在应用上很广泛,JPEG.MPEG.DVD.摄影机.数字电视等皆采此一格式. 因此一般俗称的 YUV 大多是指 YCbCr . RGB to YUV(YCbCr) RGB 范围 [0,255],Y 范围 [16,235] ,UV 范围 [16,239].如果计算结果超过了取值范围要进行截取. Y = 0.25…
* 音视频入门文章目录 * RGB-TO-BMP 回顾 将 RGB 数据转成 BMP 图片: 了解 BMP 文件格式 准备 BMP 文件头信息 准备 BMP 信息头 BMP 存储 RGB 的顺序是 B-G-R BitmapInfoHeader 中的 biHeight 字段,biHeight 为正,位图自底向顶扫描,biHeight 为负,位图自顶向底扫描. BMP 图像四字节对齐 实际开发过程,通常会使用第三方开源库来简化开发,屏蔽一些底层的复杂度,节省大量编写代码的时间. 使用开源库的方式 l…
* 音视频入门文章目录 * BMP 图像四字节对齐 表示 BMP 位图中像素的位元是以行为单位对齐存储的,每一行的大小都向上取整为4字节(32 位 DWORD)的倍数.如果图像的高度大于 1,多个经过填充实现对齐的行就形成了像素数组. 完整存储的一行像素所需的字节数可以通过这个公式计算: 每一行的末尾通过填充若干个字节的数据(并不一定为 0)使该行的长度为 4 字节的倍数.像素数组读入内存后,每一行的起始地址必须为 4 的倍数.这个限制仅针对内存中的像素数组,针对存储时,仅要求每一行的大小为 4…
* 音视频入门文章目录 * 图片 & 像素点 & RGB 平时浏览的图片看不出像素点: 图片放大时,可以看出图片是一个个像素点组成的: 每个像素点的颜色可以用 RGB 表示: RGB 拼图 既然图片是像素点组成的,而像素点的颜色可以用 RGB 来表示,那我们可以用 RGB 来拼出自己的图片! 1. 设定目标 这是我们想要使用 RGB 像素点拼出来的图片: 彩虹的颜色: 颜色名 RGB 十六进制 RGB24 二进制 红 255, 0, 0 0XFF0000 11111111 00000000…
概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -> 抖音快手短视频 音视频的发展正在向各个行业不断扩展,从教育的远程授课,交通的人脸识别,医疗的远程就医等等,音视频方向已经占据一个相当重要的位置. 大家从现在招聘网站上的岗位任职要求应该也能感受到这一点,一名合格的音视频开发人员,少则年薪 30 万起,多则可以达 100万以上. 但是成体系的音视频入门进阶…