音视频开发
文章平均质量分 96
涉及音视频开发相关技术,如ffmpeg,OpenAL,OpenGL等等
CaicaiNo.1
这个作者很懒,什么都没留下…
展开
-
iOS开发-iOS如何本地调试JS
文章目录前言Charles代理HTTPS代理设置WKWebView的缓存机制本地映射html 资源请求远端映射映射到远端映射到本地服务器Safari的调试功能前言最近在排查问题时,遇到Html网页问题,总结下调试经验Charles代理HTTPS代理设置关于 charles 的 https 代理设置,这里简单说明下:打开 Charles,选择上侧菜单栏,选择 SSL Proxying ,安装证书到手机 Mobile Device根据弹框提示,打开网址下载证书,并信赖,然后配置wifi在同一网原创 2021-04-19 22:57:43 · 1473 阅读 · 0 评论 -
iOS开发-Audio Unit错误之CrashIfClientProvidedBogusAudioBufferList
类似堆栈如下:* thread #10, name = 'AURemoteIO::IOThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x201862df8) * frame #0: 0x00000002276974e4 AudioToolbox`CrashIfClientProvidedBogusAudioBufferList + 64 frame #1: 0x00000002277ed378 AudioToolbox`Audio原创 2020-05-17 12:52:20 · 1384 阅读 · 0 评论 -
iOS开发-GCD技术
GCD是iOS开发中常用的线程技术原创 2020-04-29 23:33:06 · 1030 阅读 · 0 评论 -
iOS开发-airpods的音频event适配
文章目录单耳机拿下iOS 7.1 BeforeMPRemoteCommandCenter双耳机取下对于airpods的适配,主要适配其单耳机拿下pause,以及恢复和双耳机取下等情景的适配。单耳机拿下对于这些事件,airpods单耳机拿下属于pause事件Event,我们使用MediaPlayer框架。iOS 7.1 Before在iOS 7.1之前,系统提供了#import <...原创 2020-04-21 16:11:47 · 1419 阅读 · 1 评论 -
音视频开发-RTP协议
文章目录RTP/RTCPRTP协议RTCP 协议附图基于WebRTC的音视频直播框架,使用RTP/RTCP,这里记录下。RTP/RTCP一般情况下,在实时互动直播系统传输音视频数据流时,我们并不直接将音视频数据流交给 UDP 传输,而是先给音视频数据加个RTP 头,然后再交给 UDP 进行传输。为什么要这样做呢?以太网的 MTU 最大传输单元 为 1500字节 约为1.5K,意味着传输一个...原创 2020-04-11 20:39:38 · 920 阅读 · 0 评论 -
音视频开发-H264数据组成
文章目录H264数据构成 NAL起始码、结束码网络传输结构 NALUNAL HeaderNALU顺序H264H264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(MB)组成,一个宏块由16x16的yuv数据组成。宏块作为H264编码的基本单位。一个宏块由一个16×16亮度像素和附加的一个8×8 Cb和一个8×8 Cr彩色像素块组成,...原创 2020-03-19 00:26:58 · 492 阅读 · 0 评论 -
音视频开发-AVAudioSession错误
文章目录[aurioc] 1029: failed: ‘!pri’ (enable 2, outf< 2 ch, 44100 Hz, Float32, non-inter> inf< 2 ch, 0 Hz, Float32, non-inter>)[aurioc] 1029: failed: ‘!int’ (enable 2, outf< 2 ch, ...原创 2019-07-18 15:34:32 · 7650 阅读 · 0 评论 -
音视频开发-AVAudioSession在开发中的应用
文章目录AVAudioSession简介音频的激活音频竞争音频打断恢复AVAudioSessionInterruptionNotificationAVAudioSessionRouteChangeNotification远程控制的监听Media Server Reset 媒体服务器重置AVAudioSessionMediaServicesWereResetNotificationAVAudioSe...原创 2019-07-18 14:04:17 · 7171 阅读 · 0 评论 -
音视频开发-OpenGL ES初探
文章目录简介OpenGL ES 3.0图形管线顶点着色器负责的业务示例代码图元装配光栅化片元着色器/片段着色器负责业务代码案例逐⽚段操作EGL (Embedded Graphics Library )简介OpenGL ES (OpenGL for Embedded Systems)是以⼿持和嵌⼊式为目标的⾼级3D图形应⽤程序编程接口(API). OpenGL ES 是⽬前智能手机中占据统治地位...原创 2019-07-10 23:28:30 · 330 阅读 · 0 评论 -
VTDecompressionSessionInvalidate线程卡死挂起导致的解码问题
VideoToolBox解码时,VTDecompressionSessionDecodeFrame返回错误12902,kVTParameterErr = -12902即参数错误,然后在VTDecompressionSessionInvalidate的时候,就发现线程卡死挂起了同样操作VTDecompressionSessionWaitForAsynchronousFrames也是一样的,VTDecompressionSessionInvalidate里面也操作了VTDecompressionSessio原创 2019-07-10 16:42:02 · 3288 阅读 · 3 评论 -
Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture ...
Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture before using -imageFromCurrentFramebuffer?GPUImage的水印添加遇到的问题原创 2018-12-10 19:07:49 · 976 阅读 · 0 评论 -
音视频开发-矩阵在OpenGL中的运用
在实际开发中,我们常常对图像进行旋转位移等操作,虽然我们知道旋转了多少,位移了多少,但这些操作需要借助向量和矩阵,以代码的形式展现出来原创 2019-07-01 23:28:30 · 248 阅读 · 0 评论 -
音视频开发-CMTime的运用
文章目录CMTimeCMTimeMakeCMTimeMakeWithSecondsCMTime/*! @typedef CMTime @abstract Rational time value represented as int64/int32.*/typedef struct{ CMTimeValue value; /*! @field value The value of ...原创 2019-06-28 13:04:06 · 673 阅读 · 0 评论 -
音视频开发-CMSampleBufferGetSampleAttachmentsArray造成的线程阻塞
背景视频播放中,使用VideoToolBox进行硬解码,再使用OpenGL进行渲染。使用了AVSampleBufferDisplayLayer和VideoToolBox两种方式。前者解码无需我们关心,只需要传入CMSampleBufferRef即可,后者需要自行解码。对于AVSampleBufferDisplayLayer会设置kCMSampleAttachmentKey_DisplayIm...原创 2019-06-25 16:46:50 · 806 阅读 · 0 评论 -
音视频开发-ffmpeg指令(2)
文章目录原创 2019-06-25 13:40:12 · 1849 阅读 · 0 评论 -
音视频开发-ffmpeg指令(1)
文章目录ffmpeg基本信息查询命令录屏命令录制声音录制视频和声音多媒体格式转换分离视频分离音频ffmpeg基本信息查询命令Last login: Mon Jun 24 11:35:04 on ttys002gensees-iMac:~ gensee$ ffmpeg -versionffmpeg version N-94063-g86f04b918c Copyright (c) 2000...原创 2019-06-24 13:00:25 · 1439 阅读 · 0 评论 -
音视频开发-OpenGL图形显示常见问题以及解决办法
渲染过程中可能产⽣生的问题在绘制3D场景的时候,我们需要决定哪些部分是对观察者 可⻅的,或者哪些部分是对观察者不可⻅的.对于不可见的部分,应该及早丢弃.例如在⼀个不透明的墙壁后,就不应该渲染.这种情况叫做”隐藏面消除”(Hidden surface elimination).油画算法先绘制场景中的离观察者较远的物体,再绘制较近的物体.例如下面的图例: 先绘制红色部分,再绘制黄色部分,最后...原创 2019-06-23 12:42:08 · 1434 阅读 · 0 评论 -
音视频开发-ffmpeg编译以及配置
ffmpeg编译使用Git下载git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载完成后,进入FFmpeg源代码目录,运行配置命令gensees-iMac:~ gensee$ cd /Users/gensee/Desktop/ffmpeg/ffmpeg gensees-iMac:ffmpeg gensee$ ./configu...原创 2019-06-21 11:36:44 · 826 阅读 · 0 评论 -
音视频开发-YUV数据
YUV数据类型h264编码中,我们使用YUV数据类型进行传输,从采集端采集的RGB转YUV,通过网络传输到接收端,YUV再转成RGB进行显示。期间涉及数据的压缩,RGB->YUV数据,数据大小比率为2:1,即RGB占用的数据大小为(Width * Height)*3,因为一个像素点需要红黄蓝三种数据表示,而YUV数据则只需要 (Width * Height)*3/2,因为YUV每一个像...原创 2019-06-16 21:33:52 · 363 阅读 · 0 评论 -
音视频开发-向量理解
大学没有好好学习线性代数,无奈只能再次复习。推荐一本书 《3D数学基础:图形与游戏开发》向量数学定义对于数学家而言,向量就是一个数字列表,对于程序员而言则是另一种相似的概念-数组向量与标量...原创 2019-06-11 23:11:03 · 4468 阅读 · 4 评论 -
音视频开发-OpenGL渲染流程以及固定存储着色器
文章目录OpenGL渲染架构正投影透视投影固定存储着色器存储着色器初始化单元着色器平面着色器上色着色器默认光源着色器点光源着色器纹理替换矩阵着色器纹理调理着色器纹理光源着色器OpenGL基本7种基本图元OpenGL点线OpenGL三角形OpenGL三角形环绕方式OpenGL 三角带OpenGL三角形扇OpenGL 工具类GLBatchOpenGL渲染架构顶点着色器使用 Attributes ...原创 2019-06-02 16:44:34 · 499 阅读 · 0 评论 -
音视频开发-OpenGL下坐标系统理解
文章目录左手坐标系和右手坐标系坐标系将坐标系统组合在一起模型变换视变换左手坐标系和右手坐标系注意OpenGL中坐标系中的物体、世界、照相机坐标系都属于右手坐标系,而规范化设备坐标系使用左手坐标系坐标系OpenGL希望每次顶点着色后,我们的可见顶点都为标准化设备坐标(Normalized Device Coordinate,NDC),也就是说每个顶掉的x,y,z值都在-1到1之间,超出这个...原创 2019-06-02 09:19:37 · 3430 阅读 · 2 评论 -
音视频开发-OpenGL概念理解
顶点着色器 Vertex shader相当于告诉opengl图形的顶点,由此得知形状,才能进一步进行填充颜色等等。相当于一个骨架顶点着色器的计算也是由GPU负责片元着色器 Fragment shader也称之为片段着色器,像素着色器,对每个像素的显示进行处理,即一张图片,有很多像素点,每个像素点都需要经过片元着色器才能进行显示,所以需要大量计算,故使用GPU进行计算,而CPU擅长判断(基于...原创 2019-07-10 22:18:08 · 4844 阅读 · 3 评论