使用 AVFoundation 快速获取视频帧

2024-05-04

这是我的代码:我想要获取我的视频并将帧数据获取到 SceneKit SCNSphere。

    //NSString videoPath=NSBundle.mainBundle().l
        var videoURL=NSBundle.mainBundle().URLForResource("video", withExtension: "mp4")

        var assetOptions = [AVURLAssetPreferPreciseDurationAndTimingKey : 1]
        videoAsset=AVURLAsset(URL: videoURL, options: assetOptions)
        var error:NSError?

        var videoAssetReader=AVAssetReader(asset: videoAsset, error: &error)

        //var duration = CMTimeGetSeconds(videoAsset.duration)
        //println(videoAsset.duration)
       // println(duration)

        if error != nil
        {
            println(error)
        }

        var tracksArray=videoAsset?.tracksWithMediaType(AVMediaTypeVideo)
        var audio=videoAsset?.tracksWithMediaType(AVMediaTypeAudio)

        println(tracksArray?)
        var videotrack = tracksArray?[0] as AVAssetTrack

        //println(videotrack?.size)
        fps = videotrack.nominalFrameRate
        var videoSetting = [kCVPixelBufferPixelFormatTypeKey : kCVPixelFormatType_32RGBA]

        var videoTrackOutput=AVAssetReaderTrackOutput(track:videotrack as AVAssetTrack , outputSettings:videoSetting)

       // videoTrackOutput.outputSettings=

        if videoAssetReader.canAddOutput(videoTrackOutput)
        {
            println(videoTrackOutput)
            videoAssetReader.addOutput(videoTrackOutput)
            videoAssetReader.startReading()
        }

        var image=GeneralPreview()
        var uiImage=UIImage(CGImage: image)


        if videoAssetReader.status == AVAssetReaderStatus.Reading{

            var sampleBuffer  = videoTrackOutput.copyNextSampleBuffer()
            println(sampleBuffer)

            //var imageData: NSData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer?)
            //var image: UIImage = UIImage(data: imageData)
        }

我刚从 oc 学到这个。在我的代码中,我无法获取最后一个对象样本缓冲区为零! 我不知道为什么?我只想知道我的方法对吗?希望得到帮助!


尝试将 kCVPixelFormatType_32RGBA 更改为 kCVPixelFormatType_32BGRA。这就是对我有用的。

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

使用 AVFoundation 快速获取视频帧 的相关文章

  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • init 中的 Swift 通用约束

    我有通用的 我希望能够用特定的约束来初始化它 约束仅用于初始化 班里的其他人并不关心 这是一个简化的示例 struct Generic
  • 列表不符合 Encodable

    因此 我正在使用领域 并且两个模型之间有以下关系 A unit has many tests Unit model class Unit Object Decodable objc dynamic var id String let tes
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • 如何从任何网站下载视频

    我只是想知道如何从任何网站下载视频的总体思路 我尝试的事情 我检查页面 在视频属性标记中看到 blob URL 将 blob URL 复制粘贴到浏览器中 但无法打开 I also look around the Developer tool
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • 我们可以从 LinkPresentation 框架中的 LPLinkView 中提取图像吗?

    我想在我的应用程序中呈现丰富的链接 并将这些数据发送到我的服务器 我需要访问视图内的图像LPLinkView https developer apple com documentation linkpresentation lplinkvi
  • 将 null 转换为对象?

    我今天遇到了这段代码 AsyncInvoke OnTimeMessageTimer object null ElapsedEventArgs null 有没有什么问题 有时 当方法重载时 您需要这样做 以告诉编译器您正在调用哪一个 null
  • Swift getnameinfo IPv6 结果不可靠

    我有以下扩展sockaddr extension sockaddr Indicates if this is an IPv4 address var isIPv4 Bool return sa family UInt8 AF INET In
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • 面向对象编程语言中的引用默认情况下是否应该不可为空? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将数字分解为单个数字的数组

    如果我有整数 123 并且我想将数字分解为数组 1 2 3 最好的方法是什么 我已经搞乱了很多 并且我有以下工作 var number 123 var digits Array String number map Int strtoul S
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma
  • 我可以指定泛型是值类型吗?

    我知道我们基本上可以通过使用指定我们的泛型是任何引用类型AnyObject class Foo
  • SpriteKit 碰撞检测中 SKSpriteNode 之间的间隙

    我已经尝试解决这个问题很长一段时间了 我有一个具有简单平台物理原理的游戏 其中玩家跌倒在一个方块上 这可以阻止他跌倒 这是可行的 但是玩家停止的位置和实际对象 精灵节点的位置之间存在明显的差距 这是一个屏幕截图 它应该是不言自明的 clas
  • 测试文本字段中的 double 是否有值

    尝试检查从文本字段获得的双变量是否有值 让值 双倍 Double valueTextfield text if value isEmpty X if 值 nil X 如果 值 0 X 我该怎么做呢 您可以使用 Double 的 init 方
  • 在 macOS 上通过 Apache 本地运行 Xcode DocC 文档

    Xcode 13 的 DocC 文档档案可以使用自定义 Apache 托管 htaccess文件中描述的向外部开发人员分发文档 https developer apple com documentation xcode distributi
  • 准确地从屏幕上的像素获取颜色并转换其颜色空间

    我需要从屏幕上的像素获取颜色并转换其颜色空间 我遇到的问题是 将值与数字色度计应用程序进行比较时 颜色值不相同 create a 1x1 image at the mouse position if let image CGImage CG
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck

随机推荐

  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 在opencv中发现凸性缺陷? [根据给定的输入图像崩溃..]

    我有一个计算图像凸包的程序 我正在尝试使用此信息来计算fingers存在于输入图像中 从一些冲浪中我发现做到这一点的方法 数手指 是 寻找轮廓 凸包 凸性缺陷 但我在使用凸性缺陷函数时遇到了麻烦 它编译得很好 但在运行时程序会因某些输入图像
  • Linux 中不使用 C++ 的 C 异常处理

    Linux 是否提供了 C 语言的异常处理而不求助于 C 或者 实现此类异常处理的最佳方法是什么 目标是避免检查每个调用的函数的返回码 而是执行类似于 C 的线程安全且易于移植的操作 您可以通过为其编写信号处理程序来处理信号 GNU 记录的
  • gettext 中的“msgstr”有多个“msgid”

    是否可以制作两个或多个msgids匹配一个msgstr 例如 两者 列表 空 and 你正在接近gettext以错误的方式 它是如何工作的 msgid每个条目都需要 msgctxt是可选的 用于区分两个msgid内容相同但翻译可能不同的记录
  • 将 Recyclerview 与 DiffUtil.ItemCallback 一起使用不会滚动到顶部?

    我会搜索项目 每次从服务器获取时 当我搜索 o 时 它起作用 然后 ot 它再次起作用 作为 o 搜索的结果 我有 20 个项目 如果是 ot 我有 10 个项目 这是这 20 个项目的一部分 我确实删除了 EditText 中的 t 它显
  • 如何将 model.summary() 保存到 Keras 中的文件?

    有model summary 方法 https keras io models about keras models 在喀拉斯 它将表打印到标准输出 是否可以将其保存到文件中 如果您想要摘要的格式 您可以传递print功能为model su
  • 如何从 Grails 应用程序的 URL 中删除应用程序名称?

    我有一个应用程序在这样的 URL 上运行 http myapp mydomain com myapp http myapp mydomain com myapp 我不想要 myappURL 中的部分 那么如何去掉应用程序名称呢 我只想 ht
  • sqlalchemy:无法在拆卸时删除数据库

    我正在尝试使用 pytest 进行 sqlalchemy 但遇到以下问题 pytest fixture scope function def my session my db request from my models import Se
  • 如何使用 ConstraintLayout 将多个视图居中在一起?

    背景 谷歌宣布了一个名为 约束布局 http tools android com tech docs layout editor 这应该是最终的布局 它可以取代所有布局 同时保持平坦 没有嵌套布局 并具有更好的性能 问题 事实是 除了 Go
  • 显示 am4charts.XYChart 中的所有工具提示

    大家好 我正在使用 am4charts XYChart 来显示两个不同供应商的价格 该图表工作正常 并且仅当我们将光标悬停在图表中的点上时 每个点的工具提示才可见 但是我的要求是在渲染图表时应显示图表中所有点的工具提示 它应该一直显示而不悬
  • WSL 发行版对 VSCode 或 IntelliJ IDE 不可见

    几周来我遇到了这个非常奇怪的问题并且无法解决 我通常在 WSL2 上编码 它曾经在这台机器和用户上运行良好 但现在 每当我尝试在 Visual Studio Code 中打开远程资源管理器或尝试在 IntelliJ IDE 中打开 现有文件
  • Google Chrome 扩展:如何通过弹出页面上的 iframe 查看后台页面?

    我已经尝试了一段时间了 但无法让它发挥作用 基本上 当启用扩展时 我想要一个持久页面 无论是否单击浏览器操作图标 它都将保持套接字连接 后台页面就是这样发挥作用的 现在 我希望此背景页面显示在弹出页面中 通过 iframe 或任何替代方案
  • 使用javascript批量上传请求到Google Cloud Storage

    我正在尝试使用 javascript 在批量请求中将多个图像上传到谷歌云存储 我在用着https developers google com storage docs json api v1 how tos batch example ht
  • 在我在类构造函数中设置断点之前,gdb 类是不完整的类型?

    我在 gdb 中调试 Chrome 时总是遇到这个问题 如果我尝试打印某种类型的变量 GDB 不知道其内部结构 gdb p current child get 12 blink NGBlockNode 0xc2f755c1830 gdb p
  • 获取:错误C2668:'sqrt':对重载函数的不明确调用[重复]

    这个问题在这里已经有答案了 尝试根据教科书中给出的示例构建下面的源代码 我使用的是 Visual Studio 2008 编译器似乎不知道如何处理 sieve 1 gt Rebuild All started Project fig21 4
  • 是否可以将 Windows 事件记录到应用程序洞察中?

    我们在一些站点上运行 Application Insights 并且希望聚合 Windows 事件日志中的日志 我们在 Windows Server 2016 上运行 我知道其他日志传送程序 例如 Elastic 可以从 Windows 事
  • 会话对象不更新 ASP.NET

    我在代码的一个时刻设置了一个会话对象 Session my name Dave 稍后在我的代码中 我给用户一个更新此对象的机会 Session my name TextBox1 Text 我重新加载页面并显示一个简短的 hello 语句 如
  • Struts 2 如何从自定义验证器中获取 i18n 消息

    如何从自定义验证器中的 key 获取消息 正如中提到的Struts 2 重用自定义表达式验证器 https stackoverflow com questions 28038827 struts 2 reusing custom expre
  • C# .NET 串口已连接,但无法读取或写入

    我使用 C 和 NET 4 5 以及 Visual Studio 2012 编译器 IDE 来打开串行端口并与之交互 我的代码旨在连接到 US Digital 的 QSB 正交 USB 转换器 这是我用来打开端口并连接的代码 this Po
  • 使用 AVFoundation 快速获取视频帧

    这是我的代码 我想要获取我的视频并将帧数据获取到 SceneKit SCNSphere NSString videoPath NSBundle mainBundle l var videoURL NSBundle mainBundle UR