- 博客(134)
- 收藏
- 关注
原创 ffmpeg命令行main函数简析
以命令行ffmpeg -i input.mp4 -crf 22 -preset veryslow -o output.mp4为例,main函数首先调用ffmpeg_parse_options(),解析命令参数,打开输入,输出文件,并初始化相关滤镜,然后调用transcode()开始处理。transcode()的大体流程见下图: 1.2.3.4....
2018-04-07 23:03:41 1386
原创 ijkplayer解码后缓冲队列简析
因为ios硬解b帧并没有经过重排序,研究了下ijkplayer的处理,在此做个小记录。 硬解后回调如下:static void VTDecoderCallback(void *decompressionOutputRefCon, void *sourceFrameRefCon, OSStatus ...
2018-02-27 20:02:11 2355
翻译 ISO/IEC 14496-12翻译(ISO Base Media File Format)
介绍The ISO Base Media File Format是被设计用来容纳一个为了便于交互,管理,展示的灵活,可扩展性的的多媒体文件的timed媒体信息。这个描述可以是本地的,或者是一个通过网络或其他传送机制的流。这个文件结构是面向对象的,一个文件可以被非常简单地解压到多个对象中,这些对象的结构直接从他们的类型中推测。当使能高效支持时,这些文件格式是独立于任何特殊网络协议而设计的
2018-02-06 18:18:51 3135
翻译 CIE 1931 颜色空间(来自维基百科)
原文地址:https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space CIE 1931颜色空间是第一个对离散电子可见光谱和人类对色彩的物理感知进行量化关联的定义。这些定义了颜色空间的数学关系对于色彩管理是必不可少的工具,特别在处理彩色打印,亮
2018-01-29 23:02:14 5476
原创 xcode在引入ffmpeg库时的错误解决方法
1.”inflate”,referenced from:… symbol(s)not found for x86_64等 解决方法:与压缩,解压缩有关的链接问题,都可以通过 -lz解决:target->build settings->Linking->other linker flags中添加-lz标志。2.”_iconv”,referenced from:… symbol(s)not found
2018-01-22 12:59:02 872
原创 添加头文件搜索路径的方法
target->building setting->Search Paths->Header Seaech Paths中添加,如: $(SRCROOT)/../Player//ffmpeg/include
2017-12-09 14:01:08 9785
原创 “does not contain bitcode.”的错误解决办法
target —> Built Seeting —>搜索 bitcode —>将Yes置为No
2017-12-09 13:56:03 708
原创 Effective Objective-C读书笔记
第3章 接口与API设计第15条:用前缀避免命名空间冲突1.OC没有命名空间机制; 2.避免此问题的唯一方法是:为所有名称都加上适当前缀; 3.Apple宣称其保留使用所有“两字母前缀”的权利,所以你自己选用的前缀应该是三个字母; 4.不仅是类名,应用程序中的所有名称都应加前缀(包括纯C函数和全局变量)。第16条:提供“全能初始化方法”1.
2017-11-18 12:13:41 542
原创 ios文档网址
仅做记录,以备查看而已: 1.blocks https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html#//apple_ref/doc/uid/TP400075022.OpenglES https://developer.ap...
2017-11-16 13:16:34 374
原创 ios app增加ituns文件共享功能
在plist文件的“Application supports iTunes file sharing”这一项的值设置成YES。
2017-10-25 17:56:51 857
原创 链接错误: "std::basic_string<char, std::char_traits<char>等错误
解决办法:将libstdc++.dylib换成libstdc++.6.0.9.dylib即可
2017-10-21 16:50:56 9248
翻译 Dispatch Queues
Grand Central Dispatch (GCD) dispatch queues是一个执行多任务的强大工具。Dispatch queues让你执行任意blocks的代码,无论它是同步或异步。你可以使用dispatch queues在分开的线程上执行几乎所有的任务。dispatch queues相对于threaded code的优势是他们更加简单和高效。该章节提供dispatch queues
2017-10-02 21:58:34 693
翻译 Concurrency Programming Guide
Introduction并发表示多个事情在同一时间发生。伴随着多核CPU的增多和每个处理器的核的数量的上升,软件开发需要新的途径来利用这些优势。虽然像OS X and iOS这些操作系统有能力并发运行多个程序,大部分运行在后台的程序只需要少量连续的处理时间。是当前前台程序捕捉用户事件让处理器保持忙碌。如果一个程序有很多的工作但全让一个核来做,其他的处理资源就被浪费掉了。在以前,在一个app中引进并发
2017-10-01 22:24:17 401
翻译 并发和OpenGL ES
在计算中,并发通常指在同一时间多个处理器中执行任务。通过并行执行工作,任务可以更快的完成,apps可以更快响应用户。一个良好设计的OpenGL ES app已经展示了一种特殊形式的并发–app运行在app上而OpenGL ES运行在GPU上。在OpenGL ES Design Guidelines介绍的许多技术都是致力于创建能展现强大的CPU-GPU并发的OpenGL apps。设计一个并发app意
2017-10-01 16:28:45 522
翻译 CALayer
CALayer一个管理基于图像内容的对象,它能让你处理context的动画。OverviewLayers经常被用来提供views的存储支持,但它也可以不需要view的情况下用来展示content。一个layer的主要工作是管理你提供的视觉content,但layer本身也有可设置的视觉属性,例如背景颜色,边框和阴影。为了更进一步管理visual content,layer也维护它的content展现
2017-10-01 10:26:16 210
翻译 使用OpenGL ES和GLKit绘图
GLKit框架提供view和view controller类,他们移除了setup和maintenance代码,这些代码在其他情况下绘制和启动OpenGL ES content是需要的。GLKView class管理OpenGL ES的基础施设,为你的绘制代码提供一个地方,GLKViewController class为一个GLKit view中的平滑启动OpenGL ES content提供一个渲
2017-09-26 20:10:25 1148
翻译 有关OpenGL ES
About OpenGL ESOpenGL 用来处理2D和3D视觉数据。这是一个多种用途的公开标准的图像库,它支持2D和3D数字内容创建,机械和结构设计,虚拟建模,飞行模拟,视频游戏等等。你可以使用OpenGL来配置一个3D图形流水线并提交数据。顶点将被传送,lit(?),装配进入图元,并光栅化来创建一个2D图片。OpenGL被设计用来将函数调用转换为图形命令,这些命令将被送到底层的图形处理硬件。因
2017-09-26 13:13:54 444
原创 ios brew安装记录
1.安装命令:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local –strip 12.可以执行brew -v命令查看是否安装成功。3.使用brew下载:brew install automake 可能会提示:Error: Unknown command: install 执行b
2017-09-08 16:37:21 853
转载 iOS 编译包含 bitcode 的 fdk-aac 静态库(包含 arm64)(转)
转载自:http://blog.csdn.net/chaoyuan899/article/details/51701100不多说了,这里是编译脚本。下载下来这个编译脚本后,修改一下 CFLAGS 选项,添加 -fembed-bitcode ,如下:细心的话,你设置一下 XCode 的 bitCode 选项的 enable 为 YES 的话,在 sourcetree 里查看批文件的修改也可看到其实修改
2017-09-08 15:32:29 752
转载 ios编译ffmpeg
转载自:http://www.cocoachina.com/ios/20150514/11827.html最近刚接触ffmpeg,找了很多相关的编译资料,都没有编译成功,前几天在 github上找到一个脚本(https://github.com/kewlbear/FFmpeg-iOS-build-script),就可完美编译准备条件先下载文件:https://github.com/libav/gas
2017-08-19 20:03:43 630
翻译 翻译:AVAssetReaderTrackOutput
AVAssetReaderTrackOutput定义了从一个单一AVAssetTrack对象中读取媒体数据的接口。Overview1.你可以使用AVAssetReader的addOutput:方法添加一个AVAssetReaderTrackOutput实例到一个asset reader中,这样就可以读取一个asset track的媒体数据。这个track里面的采样值可以以原来保存的格式被读取出来,也
2017-07-31 11:51:53 1186
翻译 翻译:AVAssetReader
你可以使用一个AVAssetReader对象来获得一个asset的媒体数据,无论这个asset是file-based或者多个sources的媒体数据的组合(as with an AVComposition object)。OverviewAVAssetReader lets you: 1.直接从storage中读取裸的未解码的采样数据,得到解码后能够渲染的采样数据。2.混合asset中多个audi
2017-07-31 10:55:06 397
翻译 API翻译:glBindFramebuffer
NameglBindFramebuffer 绑定一个named framebuffer object。C Specificationvoid glBindFramebuffer( GLenum target, GLuint framebuffer);Parameterstarget 指定framebuffer object要绑定的target。这个常量标识必须是GL_FRAMEBUFF
2017-07-28 14:09:54 1677
翻译 API翻译:EAGLSharegroup
class EAGLSharegroup一个EAGLSharegroup管理一个或多个EAGLContext对象所关联的资源。它在一个EAGLContext初始化时创建,在最后一个EAGLContext被释放时抛弃。作为一个不透明的对象,他没有可以访问的API.Overview当前,the sharegroup manages textures, buffers, framebuffers, and
2017-07-27 16:34:41 915
翻译 API翻译:EAGLContext
class EAGLContext一个EAGLContext对象管理一个OpenGL ES渲染上下文——状态信息,命令和OpenGL ES渲染时需要的资源。要执行OpenGL ES指令,你需要一个当前渲染上下文。Overview 渲染的资源,例如纹理或者renderbuffers,是被一个EAGLSharegroup 对象管理的,该EAGLSharegroup与EAGLContext对象关联。当你
2017-07-27 16:13:20 452
翻译 API翻译:glVertexAttribPointer
NameglVertexAttribPointer 定义一个顶点属性数据的数组。C Specificationvoid glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * point
2017-07-26 11:25:03 449
翻译 API翻译:glEnableVertexAttribArray
NameglEnableVertexAttribArray 使能或禁止一个已生成的顶点属性数组。C Specificationvoid glEnableVertexAttribArray( GLuint index);void glDisableVertexAttribArray( GLuint index);Parametersindex 指定一个将被使能或禁止的已生成的顶点属性数组的
2017-07-26 10:16:44 630
翻译 翻译:AVPlayerItemOutput二
@class AVPlayerItemOutput@method copyPixelBufferForItemTime:itemTimeForDisplay:- (nullable CVPixelBufferRef)copyPixelBufferForItemTime:(CMTime)itemTime itemTimeForDisplay:(nullable CMT
2017-07-23 11:34:51 473
翻译 翻译:AVPlayerItemVideoOutput
@class AVPlayerItemVideoOutput@method initWithPixelBufferAttributes:- (instancetype)initWithPixelBufferAttributes:(nullable NSDictionary<NSString *, id> *)pixelBufferAttributes NS_DESI
2017-07-23 10:46:00 1454
翻译 翻译:AVPlayerItemOutput
@class AVPlayerItemOutput@abstractAVPlayerItemOutput是一个封装了它的子类的通用API的抽象类。@discussion1.AVPlayerItemOutput实例允许你获得一个在AVPlayer播放过程中的AVAsset的一个独立的采样值。为了在当多个AVPlayerItemOutput应用在单一source时能优雅降档(grace
2017-07-22 17:26:36 1237
翻译 dispatch_queue_t翻译
@header Dispatch是一个抽象的模式,通过简单但有效的API来表达并发。在core中,dispatch提供blocks可以提交到的串行先进先出队列。提交到dispatch queues的Blocks将在一个被系统管理的线程池中调用。不能保证哪一个线程会调用哪一个block,但是能保证提交到FIFO dispatch queue的block一定会在某个时间被调用。当多个拥有blocks的
2017-07-20 19:56:49 540
翻译 CADisplayLink翻译
class CADisplayLinkCADisplayLink对象是一个时间对象,它允许你的应用将它的渲染同步到显示的刷新速率上?(不太通顺)Overview1.你的应用程序初始化一个新的display link,提供一个target对象和一个selector,selector将在屏幕更新时调用。为了同步你的显示循环,你的应用将它添加到一个run loop中(通过 add(to:forMode:)
2017-07-20 19:26:47 365
翻译 NSRunLoop翻译
Class NSRunLoopNSRunLoop声明了管理输入的objects的程序接口。一个NSRunLoop对象处理各种输入源,比如来自窗口系统鼠标和键盘的输入事件,还有NSPort和 NSConnection等。NSRunLoop也处理 NSTimer事件。Overview你的应用不能创建或显式地管理NSRunLoop对象。每个NSThread对象,包括应用的main thread,拥有一个N
2017-07-20 18:46:39 312
翻译 AVPlayer翻译
@class AVPlayer@abstract AVPlayer为single-item playback提供了一个playback接口。@discussion 1.AVPlayer对本地和远端的媒体文件都运行的非常好,为多个客户提供合关于快速播放或者需要等待额外的数据才能继续进行的合适信息。2.与视觉相关的items将给一个AVPlayer实例展现在一个CoreAnimat
2017-07-20 14:04:06 445
翻译 AVPlayerItem翻译
@class AVPlayerItem@abstract 一个AVPlayerItem携带一个AVAsset引用和展示这个asset的设置。@discussion 1.注意对media assets的检查是由AVAsset完成的。2.为了多个客户可以安全的增加或删除他们的key-value观察者对象,AVPlayerItem使在播放过程中动态发生的变化的通知串行地在同一个分发队
2017-07-20 12:03:35 438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人