在 iOS 下检索电影编解码器?

2023-11-21

我正在尝试找到用于压缩电影的编解码器。我确定我是否需要以某种方式使用 CMFormatDescription 并获取 CMVideoCodecType 密钥。我不知道如何通过元数据数组。关于如何检索编解码器有什么想法吗?

AVURLAsset* movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
NSArray *tracks = [movieAsset tracksWithMediaType:AVMediaTypeVideo];

if ([tracks count] != 0) {
    AVAssetTrack *videoTrack = [tracks objectAtIndex:0];

    //
    // Let's get the movie's meta data
    //

    // Find the codec
    NSArray *metadata = [movieAsset commonMetadata];
 }   

检索与电影关联的音频和视频编解码器的 Swift 方法:

func codecForVideoAsset(asset: AVURLAsset, mediaType: CMMediaType) -> String? {
    let formatDescriptions = asset.tracks.flatMap { $0.formatDescriptions }
    let mediaSubtypes = formatDescriptions
        .filter { CMFormatDescriptionGetMediaType($0 as! CMFormatDescription) == mediaType }
        .map { CMFormatDescriptionGetMediaSubType($0 as! CMFormatDescription).toString() }
    return mediaSubtypes.first
}

然后你可以传入AVURLAsset电影的或者kCMMediaType_Video or kCMMediaType_Audio分别检索视频和音频编解码器。

The toString()函数转换为FourCharCode将编解码器格式表示为人类可读的字符串,并且可以作为扩展方法提供FourCharCode:

extension FourCharCode {
    func toString() -> String {
        let n = Int(self)
        var s: String = String (UnicodeScalar((n >> 24) & 255))
        s.append(UnicodeScalar((n >> 16) & 255))
        s.append(UnicodeScalar((n >> 8) & 255))
        s.append(UnicodeScalar(n & 255))
        return s.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 下检索电影编解码器? 的相关文章

  • Flutter - 选择 TextFormField 时键盘不显示

    我目前遇到一个问题 当我选择任何一个时 键盘不会出现TextFormFielda 内的小部件Form小部件 这是表单的代码 位于我的内部CreateAccountForm有状态的小部件 import package flutter mate
  • NSCalendar 返回明年第一周上周一的错误日期

    我使用下面的代码使用随机日期来计算上周一 哪个工作文件但我的代码在明年日期中断 下面是相同的代码 NSDate date NSDate dateWithTimeIntervalSince1970 1483620311 228 NSLog c
  • UIStackView分布均匀填充

    所以 我有一个UIStackView其中包含四 4 UIViews 如果我删除其中一 1 个UIViews 其他三 3 个将填满UIStackView 我的问题 如何添加最大高度UIView这样它就不会填满整个空间UIStackView即使
  • Admob 广告无法快速显示

    您好 我正在尝试将 admob 广告添加到已使用 swift 上传到应用商店的应用程序中 我在 admob 中制作了一个应用程序并复制了 appid 和广告 id 并显示了各自的横幅广告和插页式广告 这里的问题是当我写这行时 request
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • AFNetworking XML 请求问题

    我在用着AFNetworking 2使用 JSON 响应 它工作正常 现在我必须将其转换为 XML 而不是使用 JSON 因为服务器响应是 XML 格式的 在我搜索之后 我找到了这段代码 但它不起作用 与 Charles 我发现请求是错误的
  • NSString stringWithContentsOfFile 失败,错误代码似乎错误

    我正在尝试将文件加载到字符串中 这是我正在使用的代码 NSError error nil NSString fullPath NSBundle mainBundle pathForResource filename ofType html
  • 无法连接到 iTunes Store(获取应用内购买列表)

    我正在尝试从我的应用程序的应用程序内购买项目商店中获取列表 这是我所做的 安装了新的配置文件并启用了应用内购买 替换配置文件很棘手 但我认为我的设置是正确的 验证税务和银行信息是否正常 该应用程序已在商店出售 创建测试用户 在测试设备上以测
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • dyld:无法加载插入的库

    当我尝试运行 UI 和单元测试时 出现异常 dyld 无法加载插入的库 private var containers Bundle Application AutoTestingApp app Frameworks IDEBundleInj
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • watchOS 错误:控制器接口描述中的未知属性

    我将 WKInterfacePicker 添加到情节提要中 并将其连接到界面控制器中的 IBOutlet 运行应用程序时 它在控制台中显示一条错误消息 控制器的接口描述 watchPicker 中的未知属性 Code interface I
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • 模态转场需要点击 2 次而不是 1 次

    我的 UITableView 需要点击 2 次才能显示所选单元格的详细信息页面 一次用于选择 另一次用于显示详细信息视图 我希望有一个 CLI 直接显示所单击单元格的详细视图 我在 UITableViewManager m 中使用此方法的模
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S

随机推荐

  • 将 backstack 与 ViewPager 结合使用

    我正在使用 ViewPager 在我的 Android 应用程序中实现滑动 但是 我希望当用户使用后退按钮而不是结束活动时显示前一个片段 有什么办法可以做到这一点吗 谢谢 塞巴斯蒂安 我有类似的问题 这就是我解决的方法 我有一个包含 6 个
  • 如何使用 python lambda 捕获异常

    假设 Python 版本 gt 3 并调用函数列表 我想编写一个处理异常的 lambda 函数 事实是 它不起作用 当函数中抛出异常时 程序返回并且调用堆栈看不到executeFunction in it 怎么办呢 def executeF
  • 检查文本文件中是否存在字符串

    所以我有 def CheckUserExists user with open C database txt r as file if re search user file read return True else return Fal
  • MySQL并发更新

    我有一个小型 POS 系统 服务器端使用 PHP 和 MySql InnoDB 当 销售 完成时 执行以下查询来更新库存数量 UPDATE products SET qty qty qty ustatus 1 WHERE pid pid 这
  • 正确使用SetThreadAffinityMask

    有 12 个核心 12 个线程正在运行 我想将 1 个线程绑定到每个核心 这就是我在每个线程的开头所说的 int core 12 SetThreadAffinityMask GetCurrentThread 1 lt
  • VBA 取消过滤范围

    我正在使用这段代码 Sheets Sheet1 AutofilterMode False 使用 VBA 取消筛选 Excel 工作表中的数据 重点是清除所有筛选器 这似乎并不总是有效 有更好的方法吗 谢谢你 如果有帮助的话 该表是从 Sql
  • 如何通过多个sudo和su命令找到原始用户?

    通过 sudo 或 su 运行脚本时 我想获取原始用户 无论是否有多个 这都应该发生sudo or su彼此内部运行 特别是sudo su Results Use who am i awk print 1 OR logname因为没有其他方
  • (通用)lisp 中的 Unix 信号处理

    我对这个主题做了一些研究 但发现了一些空白 在 Common Lisp 中似乎有依赖于实现的方法来进行 Unix 信号处理 但是是否有一个包可以提供跨实现的信号处理方法 我主要想监听 SIGINT 并在我的应用程序中正常关闭 我在 Linu
  • Apache HttpClient 4.3.5 设置代理

    看来我可以在构建 new 时指定代理HttpClient with HttpHost proxy new HttpHost someproxy 8080 DefaultProxyRoutePlanner routePlanner new D
  • 浮点相等测试和额外精度:此代码会失败吗?

    讨论开始于我对另一个问题的回答 下面的代码确定机器厄普西隆 float compute eps float eps 1 0f while 1 0f eps 1 0f eps 2 0f return eps 在评论中有人建议1 0f eps
  • 形状类似于指南针指针或 Safari 徽标的内部部分

    我正在尝试仅使用 CSS 制作以下形状 我知道使用图像或 SVG 实现此形状会容易得多 但我正在尝试使用 CSS 实现它以进行概念验证 下面是我迄今为止尝试过的代码 它通过使用创建一个菱形形状transform rotate 45deg 但
  • 在 OSX 上运行 NUnit 测试的步骤

    如何在 Mac 上运行 VS2010 中开发的 NUnit 测试 这似乎是一个非常简单和幼稚的问题 但我一直在努力寻找所有步骤 我已经通过搜索网络来找到确切的步骤来完成尽职调查 我的 Mac 上有 Mono 但没有 monodevelop
  • 为什么我不能在 Xcode 8 中使用新的内联 #imageLiteral 语法? “返回结果中的预期表达式”

    我正在尝试使用新的 imageLiteralXcode 8 中资产文件夹中的内联图像分配 而不是整个UIImage named 语法它只是显示的图像 如图所示 但是当我这样做时 当它是一个函数时 我会收到错误 返回结果中的预期表达式 这是一
  • Android 主题中的 textAllCaps

    我有一个主题 希望所有活动的文本视图都大写 所以我在样式中设置 textAllCaps 然后将其应用到我的主题中的 textViewStyle 如下所示
  • 使用 Jquery 鼠标悬停时放大图像?

    我试图在鼠标悬停时放大图像 并在鼠标移开后将尺寸缩小到正常大小 我有以下内容 image img live mouseover function var this this this attr width 25 this attr heig
  • 如何使用JPA本机查询选择多个具有相同名称的列?

    我在通过 JPA 使用 sql 本机查询选择一些数据时遇到了一些麻烦 那是因为我有 3 个具有相同名称的列 descricao 当我通过执行选择操作时创建本地查询的方法实体管理器接口找到的第一列值将覆盖其他列值 例如 当我在对象数组中得到这
  • java 方法调用的成本有多高

    我是一个初学者 我总是读到重复代码是不好的 然而 似乎为了不这样做 您通常必须进行额外的方法调用 假设我有以下课程 public class BinarySearchTree
  • 菜单上没有添加控制器,也无法在 MVC 4.5 中添加视图

    我刚刚下载了新的 nopCommerce 3 2 MVC 4 应用程序 当我在 Visual Studio 中打开解决方案时 我无法添加控制器 添加 菜单中没有 控制器 选项 当我在控制器内部右键单击时 也没有 添加视图 它似乎将解决方案中
  • 在映射数组时如何为 React 子项指定键

    我在反应联系人列表组件中有一个方法 我在其中返回另一个组件 我已经让它工作了 但我很好奇是否有更好的方法来构建我如何使用密钥 具体来说 我从下面的方法中询问这行代码 数据被硬编码为示例以开始 return
  • 在 iOS 下检索电影编解码器?

    我正在尝试找到用于压缩电影的编解码器 我确定我是否需要以某种方式使用 CMFormatDescription 并获取 CMVideoCodecType 密钥 我不知道如何通过元数据数组 关于如何检索编解码器有什么想法吗 AVURLAsset