自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 Objective-C 编码风格指南

本文转自:Objective-C 编码风格指南 | www.samirchen.com背景保证自己的代码遵循团队统一的编码规范是一个码农的基本节操,能够进入一个有统一编码规范的团队则是一个码农的福气。本文主要是对以下几个编码规范的整理:The official raywenderlich.com Objective-C style guideGithub Objective-...

2017-06-27 22:34:00 131

转载 AVAudioFoundation(6):时间和媒体表示

本文转自:AVAudioFoundation(6):时间和媒体表示 | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。基于时间的音视频数据,例如电影文件或视频流,在 AVFoundation 框架中用 AVAsset 来表示。AV Foundation 用于表示时间和媒体的几个底层数据结构,来自 Core Media...

2017-06-24 19:51:00 251

转载 AVAudioFoundation(5):音视频导出

本文转自:AVAudioFoundation(5):音视频导出 | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。要读写音视频数据资源 asset,我们需要用到 AVFoundation 提供的文件导出 API。AVAssetExportSession 提供了比较简单的 API 来满足基本的导出需求,比如修改文件类型...

2017-06-24 19:48:00 914

转载 AVAudioFoundation(4):音视频录制

本文转自:AVAudioFoundation(4):音视频录制 | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。采集设备的音视频时,我们需要组装各路数据,这时可以使用 AVCaptureSession 对象来协调。一个 AVCaptureDevice 对象表示输入设备,比如摄像头或者麦克风。一个 AVCapt...

2017-06-24 19:47:00 13418

转载 AVAudioFoundation(3):音视频编辑

本文转自:AVAudioFoundation(3):音视频编辑 | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。音视频编辑上面简单了解了下 AVFoundation 框架后,我们来看看跟音视频编辑相关的接口。一个 composition 可以简单的认为是一组轨道(tracks)的集合,这些轨道可以是来自不同媒体...

2017-06-24 19:44:00 642

转载 AVAudioFoundation(2):音视频播放

本文转自:AVAudioFoundation(2):音视频播放 | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。要播放 AVAsset 可以使用 AVPlayer。在播放期间,可以使用一个 AVPlayerItem 实例来管理 asset 的整体的播放状态,使用 AVPlayerItemTrack 来管理各个 tr...

2017-06-24 18:06:00 389

转载 AVAudioFoundation(1):使用 AVAsset

本文转自:AVAudioFoundation(1):使用 AVAsset | www.samirchen.com本文主要内容来自 AVFoundation Programming Guide。要了解 iOS 上的音视频相关的内容,首先需要了解的就是 AVFoundation 这个框架。下图是 AVFoundation 框架大的层级结构:在 AVFoundation 框架中,最主...

2017-06-24 17:53:00 230

转载 FFmpeg 入门(7):Seeking

本文转自:FFmpeg 入门(7):Seeking | www.samirchen.com处理 seek 命令我们将为播放器添加 seek 的能力。这个过程中,我们会看到 av_seek_frame 用起来有多方便。我们添加的功能是通过上下左右键能够做快进或快退,其中左右键快进或快退的幅度较小,为 10s,上下键快进或快退的幅度较大,为 60s。所以我们需要在我们的事件处理循环中添...

2017-06-24 13:25:00 143

转载 FFmpeg 入门(6):音频同步

本文转自:FFmpeg 入门(6):音频同步 | www.samirchen.com音频同步上一节我们做了将视频同步到音频时钟,这一节我们反过来,将音频同步到视频。首先,我们要实现一个视频时钟来跟踪视频线程播放了多久,并将音频同步过来。后面我们会看看如何将音频和视频都同步到外部时钟。实现视频时钟与音频时钟类似,我们现在要实现一个视频时钟:即一个内部的值来记录视频已经播放的时间。首...

2017-06-24 13:24:00 288

转载 FFmpeg 入门(5):视频同步

本文转自:FFmpeg 入门(5):视频同步 | www.samirchen.com视频如何同步在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步,我们要怎么办呢?PTS 和 DTS好在音频和视频都有信息来控制播放时的速度和时机。音频流有一个采样率(sample rate),视频流有一个帧率(frame per second)。但是...

2017-06-24 13:22:00 422

转载 FFmpeg 入门(4):线程分治

本文转自:FFmpeg 入门(4):线程分治 | www.samirchen.com概览上一节教程中,我们使用 SDL 的音频相关的函数来支持音频播放。SDL 起了一个线程来在需要音频数据的时候去调用我们定义的回调方法。现在我们要做的是用线程的方法去改造视频显示这块的逻辑。这样一来会使得代码的机构更模块化,这样改动起来会更简单,尤其是当我们想添加音视频同步逻辑时。我们从哪开始呢?首...

2017-06-24 13:19:00 143

转载 FFmpeg 入门(2):输出视频到屏幕

本文转自:FFmpeg 入门(2):输出视频到屏幕 | www.samirchen.comSDL我们这里使用 SDL 来渲染视频到屏幕。SDL 是 Simple Direct Layer 的缩写,是一个优秀的跨平台多媒体库,你可以从 http://www.libsdl.org 下载 SDL 的库。SDL 有很多可以将图像绘制都屏幕的方法,其中有一个专门用于将视频渲染到屏幕进行播放,...

2017-06-24 13:15:00 245

转载 FFmpeg 入门(3):播放音频

本文转自:FFmpeg 入门(3):播放音频 | www.samirchen.com音频SDL 提供了播放音频的方法。SDL_OpenAudio 函数用来让设备播放音频,它需要我们传入一个包含了所有我们输出需要的音频信息的 SDL_AudioSpec 结构体数据。在展示接下来的代码之前,我们先说说 PC 上是如何处理音频的。数字音频包含了一长串「音频采样(sample)」,每一个采...

2017-06-24 13:15:00 163

转载 FFmpeg 入门(1):截取视频帧

本文转自:FFmpeg 入门(1):截取视频帧 | www.samirchen.com背景在 Mac OS 上如果要运行教程中的相关代码需要先安装 FFmpeg,建议使用 brew 来安装:// 用 brew 安装 FFmpeg:brew install ffmpeg或者你可以参考在 Mac OS 上编译 FFmpeg使用源码编译和安装 FFmpeg。教程原文地址:http:...

2017-06-24 13:14:00 825

转载 AVAudioSession(4):响应音频中断事件

本文转自:AVAudioSession(4):响应音频中断事件 | www.samirchen.com本文内容主要来源于 Responding to Interruptions。当一个音频中断到来时,会关闭你的 Audio Session,这通常就意味着停止或暂停你的音频播放。产生中断通常是因为另一个和你的应用存在竞争性音频行为的应用此时被激活,而这个应用设置的 Category 不...

2017-06-24 10:52:00 724

转载 AVAudioSession(3):定制 Audio Session 的 Category

本文转自:AVAudioSession(3):定制 Audio Session 的 Category | www.samirchen.com本文内容主要来源于 Working with Categories。对于 Audio Session 来说,与之对应的 Category 是阐释其音频行为的关键信息。比如:你的 App 的声音是否应该受到手机的静音键的控制、你的 App 使不使用...

2017-06-24 10:51:00 348

转载 AVAudioSession(2):定义一个 Audio Session

本文转自:AVAudioSession(2):定义一个 Audio Session | www.samirchen.com本文内容主要来源于 Defining an Audio Session。Audio Session 的默认行为AVAudioSession 的默认行为如下:音频播放能力是开启的,但是音频录制能力是关闭的。当用户通过静音键切换到静音模式时,你的音频会被静音。...

2017-06-24 10:49:00 149

转载 AVAudioSession(1):iOS Audio Session 概览

本文转自:AVAudioSession(1):iOS Audio Session 概览 | www.samirchen.com本文内容主要来源于 Audio Session Programming Guide。Audio Session 概览在 iOS 系统中,开发者可以通过 AVAudioSession 相关的 API 来处理 App 内部、App 之间以及设备级别的音频行为。比...

2017-06-24 10:48:00 112

转载 直播中累积延时的优化

本文转自:直播中累积延时的优化 | www.samirchen.com对于交互性要求较高的直播业务来说,采集推流端和观看端的延时太高是不可接受的。在 直播协议的选择:RTMP vs. HLS 一文中提到了采用 RTMP 协议做直播业务,一般可以将延时控制在 1-3s 或者更低。但是如果在直播中发生卡顿、播放暂停等情况时,也会不断积累推流端和观看端的延时。这种累积延时要怎么优化呢?优化...

2017-06-23 22:26:00 1084

转载 直播中的首屏加载优化

本文转自:直播中的首屏加载优化 | www.samirchen.com直播中的首屏加载时间指的是进入直播间时从播放器加载到第一帧画面渲染出来的时间,这个时间是直播体验中的一项重要的指标。这篇文章就简要介绍一下优化直播首屏加载时间的一些经验。客户端业务侧优化说到优化,首先要看客户端上进入直播间的业务场景是什么样的?一般而言,都是从一个直播列表页面,点击某一个直播卡片(Cell)即进入...

2017-06-23 22:25:00 203

转载 理解音视频 PTS 和 DTS

视频视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。由于压缩处理的方式不同,视频中的画面帧就分为了不同的...

2017-06-23 22:14:00 114

转载 在 Mac OS 上编译 OBS

本文转自:在 Mac OS 上编译 OBS | www.samirchen.com安装环境第一步,做准备工作,安装编译 OBS 所需要的环境,流程如下:// 给当前用户添加 /usr/local 文件夹的写权限,否则后面可能在安装其他环境时可能因为权限问题可遇到错误:sudo chown -R <your-user-name> /usr/localsudo chmo...

2017-06-22 22:53:00 193

转载 在 Mac OS 上编译 FFmpeg

本文转自:在 Mac OS 上编译 FFmpeg | www.samirchen.com安装 Xcode 和 Command Line Tools从 App Store 上安装 Xcode,并确保在 Xcode 的 Preferences -> Downloads -> Components 下安装好 Command Line Tools。当然你也可以从 https:/...

2017-06-22 22:46:00 121

转载 直播协议的选择:RTMP vs. HLS

文章转自:直播协议的选择:RTMP vs. HLS前言随着直播业务的兴起,越来越多的直播平台开始涌现,这火热的程度好像一个应用不带上直播业务出来都不好意思跟人打招呼。想要做一个直播业务,主要包括三个部分:采集推流端、流媒体服务端、播放端。这里不多说,就主要结合 iOS 平台,从观看端出发,介绍一下对直播协议的选择。通常在 iOS 平台做直播业务,会有两种协议可供选择:HLS 和 R...

2017-06-22 17:18:00 110

转载 关于视频的一些概念

文章首发自:关于视频的一些概念视频相关概念视频文件格式文件格式这个概念应该是我们比较熟悉的,比如我们常见的 Word 文档的文件格式是 .doc,JPG 图片的文件格式是 .jpg 等等。那对于视频来说,我们常见的文件格式则有:.mov、.avi、.mpg、.vob、.mkv、.rm、.rmvb 等等。文件格式通常表现为文件在操作系统上存储时的后缀名,它通常会被操作系统用来与相应的...

2017-06-22 16:28:00 374

转载 [ZF2][2]Zend Framework 2 入门教程

本文是基于官方入门教程列出概要理解,详细细节参见官方入门教程:http://framework.zend.com/manual/2.1/en/index.html1.在 zf2 所给的 skeleton application 中创建自己的 Module。1.1) Setup Module:* 目录结构要符合规则。因为 zf2 的 ModuleManager 等...

2013-03-08 11:21:00 202

转载 [ZF2][1]Zend Framework 2 开发环境相关

1、ZF2是一个面向大型应用的PHP框架。有如下特性:模块化(ModuleManager)、事件驱动(EventManager)、服务管理器(ServiceManager)、依赖注入(Dependency Injection)、社会化编程(托管于 Github)。2、使用ZF2之前,先确保 PHP、Apache、MySQL 这些都安装配置好了。Zend Framework 2...

2013-03-08 11:15:00 76

转载 Test

Hello world!转载于:https://www.cnblogs.com/samirchen/archive/2013/03/05/2944247.html

2013-03-05 14:05:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除