随笔分类 - iOS
摘要:本文转自:[Objective C 编码风格指南 | www.samirchen.com][2] 背景 保证自己的代码遵循团队统一的编码规范是一个码农的基本节操,能够进入一个有统一编码规范的团队则是一个码农的福气。 本文主要是对以下几个编码规范的整理: [The official raywender
阅读全文
摘要:本文转自:[AVAudioFoundation(6):时间和媒体表示 | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][3]。 基于时间的音视频数据,例如电影文件或视频流,在 AVFoundation 框架中用 来表示
阅读全文
摘要:本文转自:[AVAudioFoundation(5):音视频导出 | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][3]。 要读写音视频数据资源 asset,我们需要用到 AVFoundation 提供的文件导出 AP
阅读全文
摘要:本文转自:[AVAudioFoundation(4):音视频录制 | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][3]。 采集设备的音视频时,我们需要组装各路数据,这时可以使用 对象来协调。 一个 对象表示输入设备,
阅读全文
摘要:本文转自:[AVAudioFoundation(3):音视频编辑 | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][7]。 音视频编辑 上面简单了解了下 框架后,我们来看看跟音视频编辑相关的接口。 一个 composi
阅读全文
摘要:本文转自:[AVAudioFoundation(2):音视频播放 | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][3]。 要播放 可以使用 。在播放期间,可以使用一个 实例来管理 asset 的整体的播放状态,使用
阅读全文
摘要:本文转自:[AVAudioFoundation(1):使用 AVAsset | www.samirchen.com][2] 本文主要内容来自 [AVFoundation Programming Guide][3]。 要了解 iOS 上的音视频相关的内容,首先需要了解的就是 这个框架。 下图是 框架大
阅读全文
摘要:本文转自:[FFmpeg 入门(7):Seeking | www.samirchen.com][2] 处理 seek 命令 我们将为播放器添加 seek 的能力。这个过程中,我们会看到 用起来有多方便。 我们添加的功能是通过上下左右键能够做快进或快退,其中左右键快进或快退的幅度较小,为 10s,上下
阅读全文
摘要:本文转自:[FFmpeg 入门(6):音频同步 | www.samirchen.com][2] 音频同步 上一节我们做了将视频同步到音频时钟,这一节我们反过来,将音频同步到视频。首先,我们要实现一个视频时钟来跟踪视频线程播放了多久,并将音频同步过来。后面我们会看看如何将音频和视频都同步到外部时钟。
阅读全文
摘要:本文转自:[FFmpeg 入门(5):视频同步 | www.samirchen.com][2] 视频如何同步 在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步,我们要怎么办呢? PTS 和 DTS 好在音频和视频都有信息来控制播放时的速度和时机。音频
阅读全文
摘要:本文转自:[FFmpeg 入门(4):线程分治 | www.samirchen.com][2] 概览 上一节教程中,我们使用 SDL 的音频相关的函数来支持音频播放。SDL 起了一个线程来在需要音频数据的时候去调用我们定义的回调方法。现在我们要做的是用线程的方法去改造视频显示这块的逻辑。这样一来会使
阅读全文
摘要:本文转自:[FFmpeg 入门(2):输出视频到屏幕 | www.samirchen.com][2] SDL 我们这里使用 SDL 来渲染视频到屏幕。SDL 是 Simple Direct Layer 的缩写,是一个优秀的跨平台多媒体库,你可以从 [http://www.libsdl.org][3]
阅读全文
摘要:本文转自:[FFmpeg 入门(1):截取视频帧 | www.samirchen.com][2] 背景 在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装: 或者你可以参考[在 Mac OS 上编译 FFmpeg][5]使用源码编译和安装 FFmpeg
阅读全文
摘要:本文转自:[AVAudioSession(4):响应音频中断事件 | www.samirchen.com][2] 本文内容主要来源于 [Responding to Interruptions][3]。 当一个音频中断到来时,会关闭你的 Audio Session,这通常就意味着停止或暂停你的音频播放
阅读全文
摘要:本文转自:[AVAudioSession(3):定制 Audio Session 的 Category | www.samirchen.com][2] 本文内容主要来源于 [Working with Categories][3]。 对于 Audio Session 来说,与之对应的 Category
阅读全文
摘要:本文转自:[AVAudioSession(2):定义一个 Audio Session | www.samirchen.com][2] 本文内容主要来源于 [Defining an Audio Session][3]。 Audio Session 的默认行为 AVAudioSession 的默认行为如
阅读全文
摘要:本文转自:[AVAudioSession(1):iOS Audio Session 概览 | www.samirchen.com][2] 本文内容主要来源于 [Audio Session Programming Guide][3]。 Audio Session 概览 在 iOS 系统中,开发者可以通
阅读全文
摘要:本文转自:[直播中累积延时的优化 | www.samirchen.com][2] 对于交互性要求较高的直播业务来说,采集推流端和观看端的延时太高是不可接受的。在 [直播协议的选择:RTMP vs. HLS][3] 一文中提到了采用 RTMP 协议做直播业务,一般可以将延时控制在 1 3s 或者更低。
阅读全文
摘要:本文转自:[直播中的首屏加载优化 | www.samirchen.com][2] 直播中的首屏加载时间指的是进入直播间时从播放器加载到第一帧画面渲染出来的时间,这个时间是直播体验中的一项重要的指标。这篇文章就简要介绍一下优化直播首屏加载时间的一些经验。 客户端业务侧优化 说到优化,首先要看客户端上进
阅读全文
摘要:视频 视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。 但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流
阅读全文

浙公网安备 33010602011771号