AVSampleBufferDisplayLayer 如何显示 H.264

2023-11-26

我想分享我几天来学到的知识。没有太多可找到的。

我仍然对声音感到困惑。欢迎提出意见和建议。 ;-)


这是我的代码片段。声明一下

@property (nonatomic, retain) AVSampleBufferDisplayLayer *videoLayer;

首先设置视频层

self.videoLayer = [[AVSampleBufferDisplayLayer alloc] init];
self.videoLayer.bounds = self.bounds;
self.videoLayer.position = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
self.videoLayer.videoGravity = AVLayerVideoGravityResizeAspect;
self.videoLayer.backgroundColor = [[UIColor greenColor] CGColor];

//set Timebase
CMTimebaseRef controlTimebase;
CMTimebaseCreateWithMasterClock( CFAllocatorGetDefault(), CMClockGetHostTimeClock(), &controlTimebase );

self.videoLayer.controlTimebase = controlTimebase;
CMTimebaseSetTime(self.videoLayer.controlTimebase, CMTimeMake(5, 1));
CMTimebaseSetRate(self.videoLayer.controlTimebase, 1.0);

// connecting the videolayer with the view

[[self layer] addSublayer:_videoLayer];

向图层提供视频数据

__block AVAssetReaderTrackOutput *outVideo = [AVAssetReaderTrackOutput assetReaderTrackOutputWithTrack:video outputSettings:dic];

if( [assetReaderVideo startReading] )
{
    [_videoLayer requestMediaDataWhenReadyOnQueue: assetQueue usingBlock: ^{
        while( [_videoLayer isReadyForMoreMediaData] )
        {
            CMSampleBufferRef *sampleVideo = [outVideo copyNextSampleBuffer];

            [_videoLayer enqueueSampleBuffer:sampleVideo.data];
        }
    }];
}

有关更多详细信息:WWDC 2014 中的第 513 次会议内容非常丰富。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVSampleBufferDisplayLayer 如何显示 H.264 的相关文章

  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • Xcode 中的 iOS 9 警告 - 此文件设置为针对早于项目部署的版本进行构建。功能可能有限

    我刚刚将我的 Mac 更新到最新的操作系统 并将 Xcode 更新到最新版本 现在我收到此警告 但我不知道该由谁来删除它 也不知道它的真正含义是什么 有人可以向我解释一下吗 Thanks Select Main storyboard in
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 来自相机的 MediaCodec 视频流方向和颜色错误

    我正在尝试流式传输视频捕获直接从相机适用于 Android 设备 到目前为止 我已经能够从 Android 相机捕获每一帧预览帧 byte data Camera camera 函数 对数据进行编码 然后成功解码数据并显示到表面 我用的是安
  • iOS 循环对象的属性并添加操作

    我有一个具有几个类似属性的类 UISliders 我想添加用户开始和结束使用每个滑块时的操作 每个滑块都将链接到同一个选择器 因此我考虑只是迭代它们 而不是编写 10 个几乎相同的代码块 问题是 最有效的方法是什么 我尝试过这样的事情 在运
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实
  • 在故事板中的视图控制器之间滑动手势

    我希望添加左右滑动手势来在视图控制器之间进行更改 这是否可能 并且有没有一种简单的方法可以在故事板中执行此操作 谢谢 故事板允许您在两个视图控制器之间设置 Segues 我想说首先在视图之间附加 Segues 给它一个标识符 然后使用类似的
  • RemoteIO 音频单元播放回调中的 AudioBufferList 内容

    我想 拦截 音频数据传送到 iOS 设备扬声器的过程 我相信这可以使用 RemoteIO 音频单元和回调来完成 在下面的playbackCallback中 ioData实际上包含任何音频数据吗 static OSStatus playbac
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 在 iOS5 中使用 UISegmentedControl 切换 ViewController

    我正在尝试一些非常简单的事情 但不知何故我无法让它发挥作用 我尝试做的就是使用 UISegmentedControl 在 2 个视图控制器之间切换 就像您可以在 App Store 应用程序的 突出显示 选项卡中看到的那样 我正在使用 iO
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • 使用 iPhone 摄像头检测心率 [重复]

    这个问题在这里已经有答案了 可能的重复 使用摄像头检测心率 https stackoverflow com questions 9274027 detecting heart rate using the camera 我正在研究 iOS
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 多次添加同一个子视图来查看

    我不知道这是否可行 但我想做的是将子视图多次添加到视图中 我尝试过这样的事情 self view addSubview newView newView center CGPointMake 160 100 self view addSubv
  • 无法将“SDWebImageActivityIndi​​cator”类型的值分配给“ST_SDWebImageIndicator”类型?

    I have multiple flavours targets in my Xcode project I am also using SDWebImage in my app Everything was working fine un
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • 将带有地理位置数据的照片保存到照片库 Swift 3

    如何使用地理位置元数据将照片保存到照片库 我已请求 并允许 应用程序访问用户位置 private func allowAccessToUserLocation locationManager CLLocationManager locati

随机推荐

  • @Nullable/@NotNull 与 IntelliJ IDEA、Maven 和 JSR 305

    我真的很喜欢代码检查功能 现在可以使用 JSR 305 或 Jetbrains 的 IntelliJ 专有注释 不幸的是 这两种实现 JSR 305 和 Jetbrains 不能很好地混合 IntelliJ 显然只理解它自己专有的注释集并将
  • DOM 文本节点是否保证不会被解释为 HTML?

    有谁知道 DOMNode类型的Text保证不会被浏览器解释为HTML 更多详细信息如下 背景 我正在为一个朋友构建一个简单的网络评论系统 并且我一直在考虑XSS攻击 我不认为过滤或转义 HTML 标签是一个非常优雅的解决方案 很容易想出一个
  • C C++内存泄漏的原因

    C C 内存泄漏的原因是什么 除了通常分配内存而忘记释放它 如果在分配和释放之间引发异常 就会发生内存泄漏 void f1 int ptr new int do something which may throw an exception
  • Tabula-py - 导入错误:没有名为 tabula 的模块

    我正在尝试使用 Tabula py 来阅读 pdf 我通过安装 tabula pypip install tabula py 我还安装了所需的依赖项 requests pandas pytest flake8 我的代码目前如下 import
  • 如何进行 SPARQL 查询来查找属性的最高值?

    假设我有一个像 age 这样的谓词 其中所有年龄三元组的值都是整数 哪个 SPARQL 查询会返回数据中年龄最高的主题 你只需要做order by desc与年龄谓词然后limit只得到第一个 PREFIX ns
  • 从同一个 FileInputStream 读取字符串和二进制

    我有一个文件 开头包含一些纯文本 结尾包含二进制内容 二进制内容的大小由我读取的某些纯文本行决定 我当时用的是BufferedReader读取各个行 但是它没有公开任何方法来引用读取字节数组 这readUTF for a DataInput
  • Azure DocumentDB 按 ID 查询非常慢

    我有一个 16GB 的集合 有 2 个分区 当我通过 ID 查询文档时 速度非常慢 但是通过索引字段查询速度很快 两者都是跨分区查询 如果我通过查询传递分区键 速度会很快 但分区键并不总是可用于我的查询 在 Azure 门户中使用 NET
  • 如何对使用 jspdf 和 html2canvas 生成的文件进行 Base64 编码?

    我正在尝试对附加代码中生成的文档进行编码 但没有任何反应 不会生成错误 但也不会对文件进行编码 并且ajax request从未被执行过 正确的方法是什么 html2canvas document getElementById workAr
  • 使用“--without-heartbeat”标志运行的芹菜工作人员对应用程序的影响

    讨论here高层讨论了与 celery 工人一起运行的一些影响 without hearbeat without gossip without mingle flags 我想知道是否 without heartbeat标志会影响工作人员检测
  • Python Statsmodels Mixedlm(混合线性模型)随机效应

    我对 Statsmodels Mixedlm 的输出有点困惑 希望有人能解释一下 我有一个大的单户住宅数据集 包括每个房产的前两次销售价格 销售日期 我已经对整个数据集进行了地理编码 并获取了每个属性的海拔 我试图了解不同城市之间海拔与房价
  • Runtime.maxMemory() 和 -Xmx

    我期望 Runtime maxMemory 准确返回 Xmx 但它返回一个较低的值 那么它返回什么呢 Xmx 标志的解释取决于 VM 一些虚拟机 包括 HotSpot 对有效值施加下限 这个选项 CCC 提案不应提及 Xmx 标志 这样 参
  • 在 Windows 版 Safari 中启用调试菜单

    我在 Safari 3 中找到了很多关于此问题的信息 但在版本 4 中情况明显发生了变化 我只是碰巧通过实验偶然发现了答案 因此将其发布在这里供其他人使用 在 Windows 版 Safari 5 1 7 中进行检查 点击右上角Settin
  • 正确设置 3d 图中的轴限制[重复]

    这个问题在这里已经有答案了 我在 matplotlib 中为 3d 图设置限制时遇到问题 我发现无论我如何设置 x y 和 z 轴的限制 3dplots 的绘图例程都会添加额外的缓冲区 from mpl toolkits mplot3d i
  • 在linux上用什么来使python程序可执行

    我刚刚安装了一个linux系统 Kubuntu 想知道是否有一个程序可以使python程序在linux上可执行 只需将其放在脚本的第一行 usr bin env python 使文件可执行 chmod x myfile py 执行与 myf
  • 我是否应该在统一缓冲区或着色器存储缓冲区对象内使用“vec3”?

    The vec3type 是一个非常好的类型 它只占用3个浮点数 而我有只需要3个浮点数的数据 我想在 UBO 和 或 SSBO 的结构中使用一个 layout std140 uniform UBO vec4 data1 vec3 data
  • LDAP授权

    我开始使用 LDAP 为某些现有系统实现授权和身份验证机制 在开发阶段 我面临着一个艰难的设计决策 用户角色应该存储在哪里 如果我使用 RDBMS 看起来会有三个表 user role and 用户角色映射角色和用户 请建议可用的解决方案
  • 有条件地在数组中添加元素(...)

    我的系统将配置数组发送到如下函数 callThatFunction array k1 gt v1 k2 gt v2 kn vn 我想根据某些情况创建一个键值对 我可以在不为数组创建变量的情况下执行此操作 这会破坏其他人创建的干净配置语法 吗
  • 世博会:“此环境中不支持身份验证/操作”

    我开发了一个react native expo 移动应用程序并尝试使用google帐户登录firebase 但出现错误 auth operation not supported in this enviroment 此应用程序运行的环境不支
  • 让源映射与评估的代码一起使用

    我有一个构建脚本 它通过 uglifyjs 运行我的所有代码 执行一系列奇特的缓存操作 并最终运行eval code 在一些 JavaScript 文件上 我正在尝试启动并运行整个过程源地图 但只要我使用 我似乎就无法让它工作eval 如果
  • AVSampleBufferDisplayLayer 如何显示 H.264

    我想分享我几天来学到的知识 没有太多可找到的 我仍然对声音感到困惑 欢迎提出意见和建议 这是我的代码片段 声明一下 property nonatomic retain AVSampleBufferDisplayLayer videoLaye