* 音视频入门文章目录 * 预热 上一篇 [PNG文件格式详解]详细介绍了 PNG 文件的格式. PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节文件署名(89 50 4E 47 0D 0A 1A 0A,十六进制),用来识别 PNG 格式. 数据块中有 4 个关键数据块: 文件头数据块 IHDR(header chunk):包含有图像基本信息,作为第一个数据块出现并只出现一次. 调色板数据块 P…
* 音视频入门文章目录 * GIF 编码知识 GIF 包含的数据块: 文件头(Header) 逻辑屏幕标识符(Logical Screen Descriptor) 全局颜色表(Global Color Table) Application Extension Comment Extension 图形控制扩展(Graphic Control Extension) 图像标识符(Image Descriptor) 局部颜色表(Local Color Table) 基于颜色表的图像数据(Image Da…
* 音视频入门文章目录 * RGB-to-PNG 回顾 上一篇 [手动生成一张PNG图片] 根据 [PNG文件格式详解] 一步一步地手动实现了将 RGB 数据生成了一张 PNG 图片. 有许多开源的 PNG 相关的库可以简化开发: svpng libattopng lodepng libpng 使用开源库的方式 svpng Demo 例子: void test_rgb(void) { unsigned char rgb[256 * 256 * 3], *p = rgb; unsigned x,…
* 音视频入门文章目录 * GIFLIB The GIFLIB project 上一篇 [手动生成一张GIF图片], 自己生成了一张 GIF 动态图 rainbow.gif. 下面,使用 GIFLIB 分离出 GIF 每一帧的 RGB ,然后将分离出的 RGB 再合成 GIF. GIF to RGB GIFLIB 项目里的 gif2rgb.c 已经实现了解码 GIF -> RGB.不过 gif2rgb.c 只保存了最后一帧图片的 RGB,这里需要改造. gif2rgb.c gif2rgb.c 在…
* 音视频入门文章目录 * 静态图 -> 动态图 前面 [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…
* 音视频入门文章目录 * PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节文件署名(89 50 4E 47 0D 0A 1A 0A,十六进制),用来识别 PNG 格式. 用十六进制查看器打开任意一个 PNG 文件,都是可以看到这样的头部: PNG 定义了两种类型的数据块:一种是 PNG 文件必须包含.读写软件也都必须要支持的关键块(critical chunk):另一种叫…
* 音视频入门文章目录 * JPEG 文件格式解析 JPEG 文件使用的数据存储方式有多种.最常用的格式称为 JPEG 文件交换格式(JPEG File Interchange Format,JFIF).而 JPEG 文件大体上可以分成两个部分:标记码(Tag)和压缩数据. 标记码由两个字节构成,其前一个字节是固定值 0xFF,后一个字节则根据不同意义有不同数值.在每个标记码之前还可以添加数目不限的无意义的 0xFF 填充,也就说连续的多个 0xFF可以被理解为一个 0xFF,并表示一个标记码的…
* 音视频入门文章目录 * 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…
* 音视频入门文章目录 * BMP 图像四字节对齐 表示 BMP 位图中像素的位元是以行为单位对齐存储的,每一行的大小都向上取整为4字节(32 位 DWORD)的倍数.如果图像的高度大于 1,多个经过填充实现对齐的行就形成了像素数组. 完整存储的一行像素所需的字节数可以通过这个公式计算: 每一行的末尾通过填充若干个字节的数据(并不一定为 0)使该行的长度为 4 字节的倍数.像素数组读入内存后,每一行的起始地址必须为 4 的倍数.这个限制仅针对内存中的像素数组,针对存储时,仅要求每一行的大小为 4…
* 音视频入门文章目录 * BMP 文件格式解析 BMP 文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 位图文件头(14个字节) 位图信息头(40个字节) 颜色信息 图形数据 文件头与信息头一共是 54 字节 RGB 数据部分: RGB24 文件存储的顺序是 RGB, RGB, RGB ...... RGB BMP 文件 RGB 数据存储的顺序是 BGR, BGR, BGR ... BGR 位图文件头 位图文件头分 4 部分,共 14 字节 名称 占用空间 内容 示例数据 bfTyp…
* 音视频入门文章目录 * 图片 & 像素点 & RGB 平时浏览的图片看不出像素点: 图片放大时,可以看出图片是一个个像素点组成的: 每个像素点的颜色可以用 RGB 表示: RGB 拼图 既然图片是像素点组成的,而像素点的颜色可以用 RGB 来表示,那我们可以用 RGB 来拼出自己的图片! 1. 设定目标 这是我们想要使用 RGB 像素点拼出来的图片: 彩虹的颜色: 颜色名 RGB 十六进制 RGB24 二进制 红 255, 0, 0 0XFF0000 11111111 00000000…
概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -> 抖音快手短视频 音视频的发展正在向各个行业不断扩展,从教育的远程授课,交通的人脸识别,医疗的远程就医等等,音视频方向已经占据一个相当重要的位置. 大家从现在招聘网站上的岗位任职要求应该也能感受到这一点,一名合格的音视频开发人员,少则年薪 30 万起,多则可以达 100万以上. 但是成体系的音视频入门进阶…
* 音视频入门文章目录 * 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 & YCbCr 简介 YUV,是一种颜色编码方法.常使用在各个视频处理组件中. YUV 在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽. Y 表示明亮度(Luminance或Luma),也就是灰阶值,U 和 V 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色. Y'CbCr 不是一种绝对的色彩空间,是一种针对 RGB 资讯所做的编码.真正的颜色显示是根据实际 RGB 色盘(colorant…
* 音视频入门文章目录 * RGB-TO-BMP 回顾 将 RGB 数据转成 BMP 图片: 了解 BMP 文件格式 准备 BMP 文件头信息 准备 BMP 信息头 BMP 存储 RGB 的顺序是 B-G-R BitmapInfoHeader 中的 biHeight 字段,biHeight 为正,位图自底向顶扫描,biHeight 为负,位图自顶向底扫描. BMP 图像四字节对齐 实际开发过程,通常会使用第三方开源库来简化开发,屏蔽一些底层的复杂度,节省大量编写代码的时间. 使用开源库的方式 l…
* 音视频入门文章目录 * RGB 简介 RGB 色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红.绿.蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一. RGB格式 RGB16 格式 RGB16 数据格式主要有两种:RGB565 和 RGB555. 1. RGB565 每个像素用 16 比特位表示,占 2 个字节,R,G,B 分量分别使用 5 位.6…
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View. 1. ImageView 绘制图片 这个想必做过Android开发的都知道如何去…
1.多张jpg图合成gif动画 /** * 把多张jpg图片合成一张 * @param pic String[] 多个jpg文件名 包含路径 * @param newPic String 生成的gif文件名 包含路径 */ private synchronized void jpgToGif(String pic[], String newPic) { try { AnimatedGifEncoder e = new AnimatedGifEncoder(); e.setRepeat(0); e…
#include<stdio.h>#include<math.h> //程序中调用幂函数pow(),需包含头文件math.h//void main(){ int i,n; printf("Please enter n:"); scanf("%d",&n); for(i=0;i<=n;i++) //循环执行n+1次// printf("pow (2,%d)=%.f\n",i,pow(2,i)); //输出2的乘…
把一个压缩格式和一张图片合成,按照后缀来判断他打开是图片还是解压文件,后缀是jpg打开的就是一张图片,后缀是rar打开的就是一个压缩包,里面存放你放的东西   :例如(秘密) 准备一张图片,test.jpg.准备目标文件,比如test.txt.目标是把test.txt隐藏在图片里面. 把要隐藏的文件 test.txt 压缩.生成 test.rar 压缩包(7z测试可用) 打开命令提示符 如果两个文件都存放在D:下.输入命令:copy /b D:test.jpg + D:test.rar D:te…
大家如果有做过音视频相关的项目,那么肯定对 H.264 相关的概念了解的比较通透,这里我为什么还要写这样一篇文章呢?一来是为了对知识的总结,二来是为了给刚入门音视频的同学一个参考. 基础概念 H.264 又称为 MPEG-4 , 它是一种面向块,基于运动补偿的视频编码标准,是目前市面上最常用的一种视频编码格式,在 Android 中你可以通过 MediaCodec.createEncoderByType("video/avc") 的形式来创建一个编码器,也可以通过软编 avcodec_…
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) : 通过三种方式绘制图片 Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件 Android 音视频开发(三):使用 AudioTrack 播放PCM音频 Android 音视频开发(四):使用 Camera API 采集视频数据 Android 音视频开发(…
<Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View 2. 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件 3. 在 Android 平台使用 Camera API 进行视频的采集,分别使用 SurfaceView.TextureView 来预览 Ca…
通过"javaCV入门指南:序章 "大家知道了处理音视频流媒体的前置基本知识,基本知识包含了像素格式.编解码格式.封装格式.网络协议以及一些音视频专业名词,专业名词不会赘述,自行搜索即可. 本章将正式开始javaCV之旅,先看一下官方文档里的介绍 JavaCV是计算机视觉领域的开发人员(OpenCV.FFmpeg.libdc1394.PGR FlyCapture.OpenKinect.li.lsense.CL PS3 Eye Driver.videoInput.ARToolKitPlu…
Android 音视频从入门到提高 —— 任务列表 http://blog.51cto.com/ticktick/1956269(以这个学习为基础往下面去学习) Android 音视频开发学习思路------Android OpenGL ES 开发 https://www.cnblogs.com/renhui/p/7452572.html https://blog.csdn.net/column/details/13062.html?&page=2     一步步学OpenGL 1 Androi…
1.先下载安装Qt 我们使用的版本是4.8. 可以自行百度下载也可以从下面的网盘地址下载: Qt库和编译器下载: 链接:http://pan.baidu.com/s/1hrUxLIG 密码:0181 Qt Creator下载: 链接:http://pan.baidu.com/s/1miPgpfi 密码:1hb6 下载后得到这三个文件: 其中 MinGW-gcc440_1.zip 是mingw编译器 qt-win-opensource-4.8.2-mingw.exe 是Qt的库 qt-creato…
摘要:本期直播主题是<云会议带你入门音视频世界>,华为云媒体服务产品部资深专家金云飞,与开发者们交流华为云会议在实时音视频行业中的集成应用,帮助开发者更好的理解华为云会议及其开放能力. 本期直播主题是<云会议带你入门音视频世界>,华为云媒体服务产品部资深专家金云飞,与开发者们交流华为云会议在实时音视频行业中的集成应用,帮助开发者更好的理解华为云会议及其开放能力.并通过Server端Demo和App端Demo的实际操作演示,深入了华为云会议的集成方法. 华为云会议的5种产品形态,支持…
继续上一篇中未翻译完成的部分,主要包括下面三个部分: 1,扩展:WebRTC多方通话. 2,MCU Multipoint Control Unit. 2, 扩展:VOIP,电话,消息通讯. 注意:翻译的时候不是逐字逐句的,而是按照自己的理解翻译的,同时为了便于理解,也加入一些自己组织的语言. 转载请说明出处: http://www.cnblogs.com/lingyunhu. 英文来自:http://www.html5rocks.com/en/tutorials/webrtc/infrastru…
下面这篇介绍webrtc的文章不错,我花了大半天翻译了一下. 翻译的时候不是逐字逐句的,而是按照自己的理解翻译的,同时为了便于理解,也加入一些自己组织的语言. 本文主要介绍webrtc的信令,stun,turn,转载请说明出处(博客园RTC.Blacker). 英文来自:http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ WEBRTC支持点对点通讯,但是WEBRTC仍然需要服务端,因为: 1,为了协调通讯过程客户端之间需要交…