博客园 - JG2014
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=156265
2018-09-24T05:38:13Z
JG2014
https://www.cnblogs.com/yjg2014/
feed.cnblogs.com
https://www.cnblogs.com/yjg2014/p/9695347.html
android音频输出输入延迟问题 - JG2014
参考android本篇文章: https://developer.android.com/ndk/guides/audio/audio-latency?hl=zh-cn
2018-09-24T05:38:00Z
2018-09-24T05:38:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】参考android本篇文章: https://developer.android.com/ndk/guides/audio/audio-latency?hl=zh-cn <a href="https://www.cnblogs.com/yjg2014/p/9695347.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/9695341.html
Android上一种效果奇好的混音方法介绍 - JG2014
本文将对几种音频混音的方法进行详细的介绍和比较,读完之后你应该可以对混音有个基本的认识,针对不同情形知道应该采用哪种具体的处理方法了。 如果对音频的一些基础知识还不是很了解的建议先去阅读一下上一篇文章:写给小白的音频认识基础 。 混音的原理 音频混音的原理: 空气中声波的叠加等价于量化的语音信号的叠
2018-09-24T05:34:00Z
2018-09-24T05:34:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】本文将对几种音频混音的方法进行详细的介绍和比较,读完之后你应该可以对混音有个基本的认识,针对不同情形知道应该采用哪种具体的处理方法了。 如果对音频的一些基础知识还不是很了解的建议先去阅读一下上一篇文章:写给小白的音频认识基础 。 混音的原理 音频混音的原理: 空气中声波的叠加等价于量化的语音信号的叠 <a href="https://www.cnblogs.com/yjg2014/p/9695341.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6144977.html
H264(NAL简介与I帧判断) - JG2014
1、NAL全称Network Abstract Layer, 即网络抽象层。 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上
2016-12-08T07:00:00Z
2016-12-08T07:00:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】1、NAL全称Network Abstract Layer, 即网络抽象层。 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上 <a href="https://www.cnblogs.com/yjg2014/p/6144977.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6135749.html
iOS面向编码|iOSVideoToolbox:读写解码回调函数CVImageBufferRef的YUV图像 - JG2014
iOS面向编码|iOSVideoToolbox:读写解码回调函数CVImageBufferRef的YUV图像 本文档基于H.264的解码,介绍读写Video Toolbox解码回调函数参数CVImageBufferRef中的YUV或RGB数据的方法,并给出CVImageBufferRef生成灰度图代
2016-12-05T14:17:00Z
2016-12-05T14:17:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】iOS面向编码|iOSVideoToolbox:读写解码回调函数CVImageBufferRef的YUV图像 本文档基于H.264的解码,介绍读写Video Toolbox解码回调函数参数CVImageBufferRef中的YUV或RGB数据的方法,并给出CVImageBufferRef生成灰度图代 <a href="https://www.cnblogs.com/yjg2014/p/6135749.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6127454.html
移动直播技术秒开优化经验 - JG2014
现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流? 偏远地区的观众如何高清流畅观看直播? 直播卡顿时如何智能切换线路? 如
2016-12-02T13:43:00Z
2016-12-02T13:43:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流? 偏远地区的观众如何高清流畅观看直播? 直播卡顿时如何智能切换线路? 如 <a href="https://www.cnblogs.com/yjg2014/p/6127454.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6126976.html
检测iOS的APP性能的一些方法 - JG2014
首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用到子线程监控主线程的方式来了,下面我对这些方法做些介绍: Time Profiler 可以查看多个线程里那些方法费时过多的方法。先将右侧Hide System Libraries打上勾,
2016-12-02T10:46:00Z
2016-12-02T10:46:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用到子线程监控主线程的方式来了,下面我对这些方法做些介绍: Time Profiler 可以查看多个线程里那些方法费时过多的方法。先将右侧Hide System Libraries打上勾, <a href="https://www.cnblogs.com/yjg2014/p/6126976.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6121330.html
利用预渲染加速iOS设备的图像显示 - JG2014
最近在做一个UITableView的例子,发现滚动时的性能还不错。但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。后来在《Improving Image Drawing Performance on i
2016-12-01T03:54:00Z
2016-12-01T03:54:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】最近在做一个UITableView的例子,发现滚动时的性能还不错。但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。后来在《Improving Image Drawing Performance on i <a href="https://www.cnblogs.com/yjg2014/p/6121330.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6119199.html
关于直播,所有的技术细节 - JG2014
本文由 著名直播平台都在使用的云计算公司 UCloud 流媒体研发团队撰写! 网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发
2016-11-30T10:37:00Z
2016-11-30T10:37:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】本文由 著名直播平台都在使用的云计算公司 UCloud 流媒体研发团队撰写! 网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发 <a href="https://www.cnblogs.com/yjg2014/p/6119199.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6104183.html
如何处理监控类直播中遇到的奇葩问题 - JG2014
一、问题背景 问题表现:近期一客户用网络摄像头推流到观止云,但推上来的视频总是一卡一卡的,排除了我方CDN自身问题后,我们把排查视线转移到客户推上来的rtmp流。 需要的工具:srs_rtmp_dump、tcpdump、wireshark 客户推流工具:网络摄像头,推送RTMP流 二、问题排查过程
2016-11-26T06:44:00Z
2016-11-26T06:44:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】一、问题背景 问题表现:近期一客户用网络摄像头推流到观止云,但推上来的视频总是一卡一卡的,排除了我方CDN自身问题后,我们把排查视线转移到客户推上来的rtmp流。 需要的工具:srs_rtmp_dump、tcpdump、wireshark 客户推流工具:网络摄像头,推送RTMP流 二、问题排查过程 <a href="https://www.cnblogs.com/yjg2014/p/6104183.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6104177.html
什么是网络直播延时:起播延时及优化 - JG2014
1一、直播延时 直播延时主要分为直播起播延时,直播内容延时。 直播起播延时:从发出指令,到显示画面,所消耗的时间。 直播内容延时:用户端播放的画面和现场画面的时间差。 二、各类直播的起播延时 起播延时超过1s,用户能明显感觉到停顿,影响主观体验。 各种直播类型的起播延时见下: 1 三、各类直播起播延
2016-11-26T06:42:00Z
2016-11-26T06:42:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】1一、直播延时 直播延时主要分为直播起播延时,直播内容延时。 直播起播延时:从发出指令,到显示画面,所消耗的时间。 直播内容延时:用户端播放的画面和现场画面的时间差。 二、各类直播的起播延时 起播延时超过1s,用户能明显感觉到停顿,影响主观体验。 各种直播类型的起播延时见下: 1 三、各类直播起播延 <a href="https://www.cnblogs.com/yjg2014/p/6104177.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6101212.html
移动直播技术秒开优化经验 - JG2014
现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流? 偏远地区的观众如何高清流畅观看直播? 直播卡顿时如何智能切换线路? 如
2016-11-25T05:16:00Z
2016-11-25T05:16:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流? 偏远地区的观众如何高清流畅观看直播? 直播卡顿时如何智能切换线路? 如 <a href="https://www.cnblogs.com/yjg2014/p/6101212.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6062206.html
直播技术细节3 - JG2014
解析优化 参见之前介绍的DNS过程,如下图: 基于可控和容灾的需要,移动端代码一般不会hardcode 推流、播放的服务器IP地址,而选用域名代替。在IP出现宕机或网络中断的情况下,还可以通过变更DNS来实现问题IP的剔除。而域名的解析时间需要几十毫秒至几秒不等,对于新生成热度不高的域名,一般的平均
2016-11-14T07:55:00Z
2016-11-14T07:55:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】解析优化 参见之前介绍的DNS过程,如下图: 基于可控和容灾的需要,移动端代码一般不会hardcode 推流、播放的服务器IP地址,而选用域名代替。在IP出现宕机或网络中断的情况下,还可以通过变更DNS来实现问题IP的剔除。而域名的解析时间需要几十毫秒至几秒不等,对于新生成热度不高的域名,一般的平均 <a href="https://www.cnblogs.com/yjg2014/p/6062206.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6060304.html
直播技术细节2 - JG2014
国内常见公开的直播协议有几个:RTMP、HLS、HDL(HTTP-FLV)、RTP,我们来逐一介绍。 RTMP协议: 是Adobe的专利协议,现在大部分国外的CDN已不支持。在国内流行度很高。原因有几个方面: 1、开源软件和开源库的支持稳定完整。如斗鱼主播常用的OBS软件,开源的librtmp库,服
2016-11-13T14:57:00Z
2016-11-13T14:57:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】国内常见公开的直播协议有几个:RTMP、HLS、HDL(HTTP-FLV)、RTP,我们来逐一介绍。 RTMP协议: 是Adobe的专利协议,现在大部分国外的CDN已不支持。在国内流行度很高。原因有几个方面: 1、开源软件和开源库的支持稳定完整。如斗鱼主播常用的OBS软件,开源的librtmp库,服 <a href="https://www.cnblogs.com/yjg2014/p/6060304.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6060285.html
直播技术细节1 - JG2014
qq:564702640 I帧表示关键帧。你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成。(因为包含完整画面) P帧表示这一帧跟之前的一个关键帧(或P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差
2016-11-13T14:52:00Z
2016-11-13T14:52:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】qq:564702640 I帧表示关键帧。你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成。(因为包含完整画面) P帧表示这一帧跟之前的一个关键帧(或P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差 <a href="https://www.cnblogs.com/yjg2014/p/6060285.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/6044025.html
微信读书 iOS 性能优化总结 - JG2014
微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来。最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对性的性能问题优化。本文将从发现问题、解决问题和预防问题三个方面进行总结。 如何发现性能问题 不同于一
2016-11-08T10:07:00Z
2016-11-08T10:07:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来。最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对性的性能问题优化。本文将从发现问题、解决问题和预防问题三个方面进行总结。 如何发现性能问题 不同于一 <a href="https://www.cnblogs.com/yjg2014/p/6044025.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/5980128.html
直播-拉流和推流概述 转载 - JG2014
拉流(播放): 根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据; 解析二进制数据,从中找到相关流信息; 根据不同的封装格式(如FLV、TS)解复用(demux); 分别得到已编码的H.264视频数据和AAC音频数据; 使用硬解码(对应系统的API)或软解码(FF
2016-10-20T03:18:00Z
2016-10-20T03:18:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】拉流(播放): 根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据; 解析二进制数据,从中找到相关流信息; 根据不同的封装格式(如FLV、TS)解复用(demux); 分别得到已编码的H.264视频数据和AAC音频数据; 使用硬解码(对应系统的API)或软解码(FF <a href="https://www.cnblogs.com/yjg2014/p/5980128.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/5877081.html
iOS异常捕获 - JG2014
文章目录 一. 系统Crash 二. 处理signal 下面是一些信号说明 关键点注意 下面是一些信号说明 关键点注意 下面是一些信号说明 关键点注意 三. 实战 四. Crash Callstack分析 – 进⼀一步分析 五. demo地址 六. 参考文献 前言 今天在ios高级群,有朋友问到iO
2016-09-16T12:08:00Z
2016-09-16T12:08:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】文章目录 一. 系统Crash 二. 处理signal 下面是一些信号说明 关键点注意 下面是一些信号说明 关键点注意 下面是一些信号说明 关键点注意 三. 实战 四. Crash Callstack分析 – 进⼀一步分析 五. demo地址 六. 参考文献 前言 今天在ios高级群,有朋友问到iO <a href="https://www.cnblogs.com/yjg2014/p/5877081.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/5857647.html
Objective-C Runtime 运行时之四:Method Swizzling - JG2014
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。 Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行
2016-09-09T10:10:00Z
2016-09-09T10:10:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。 Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行 <a href="https://www.cnblogs.com/yjg2014/p/5857647.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/5520200.html
App启动加载广告页面思路 - JG2014
需求 很多app(如淘宝、美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页。今天我们就来开发一个广告页面,效果如下。 效果图.gif 效果图.gif 思路 1.广告页加载思路。广告页的内容要实时显示,
2016-05-23T07:34:00Z
2016-05-23T07:34:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】需求 很多app(如淘宝、美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页。今天我们就来开发一个广告页面,效果如下。 效果图.gif 效果图.gif 思路 1.广告页加载思路。广告页的内容要实时显示, <a href="https://www.cnblogs.com/yjg2014/p/5520200.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/yjg2014/p/5511377.html
关于CoreData和SQLite多线程访问时的线程安全问题 - JG2014
数据库读取操作一般都是多线程访问的。在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱。IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来解释对SQLite的线程安全访问。 一:FMDB的线程安全:
2016-05-20T03:13:00Z
2016-05-20T03:13:00Z
JG2014
https://www.cnblogs.com/yjg2014/
【摘要】数据库读取操作一般都是多线程访问的。在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱。IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来解释对SQLite的线程安全访问。 一:FMDB的线程安全: <a href="https://www.cnblogs.com/yjg2014/p/5511377.html" target="_blank">阅读全文</a>