使用 AVPlayer 音频播放 AVMutableComposition 不同步

2024-02-23

我有一个带有 2 个音频轨道和 1 个视频轨道的 AVMutableComposition。我使用该合成从 .mov 文件中串接大约 40 个不同的视频剪辑,将每个剪辑的视频内容放入合成的视频轨道中,将音频放入音轨中。我用于音乐的第二个音轨。 我还有一个用于标题图形的同步层。

当我使用 AVPlayer 播放这段乐曲时,音频慢慢变得不同步。大约需要 4 分钟才能开始变得明显。看起来,如果我只将少数较长的剪辑串在一起,问题就不那么明显了,但当有许多较短的剪辑时(在我的测试中约为 40 个),情况就会变得非常糟糕。

暂停和播放不会重新同步音频,但查找会重新同步音频。换句话说,如果我让视频播放到最后,即使我暂停并播放整个视频,在接近尾声时,口型同步也会明显消失,但是,如果我寻求接近尾声的时间,音频就会恢复同步。

我现在的解决方案是每分钟左右寻找 currentTime + 1 帧。由于查找操作的滞后,这会在视频中产生令人不快的跳跃,因此这不是一个好的解决方案。

使用 ExportSession 导出不会出现此问题,音频在输出影片中保持同步。

我想知道 AVPlayer 中新的 masterClock 属性是否是这个问题的答案,如果是,它是如何使用的?


我遇到了同样的问题,并通过以下方式指定时间时间尺度来修复它以及许多其他音频和视频问题:

CMTime(seconds: my_seconds, preferredTimescale: CMTimeScale(600))

之前,我的时间尺度是CMTimeScale(NSEC_PER_SEC)。这让我在以不同的帧速率编写剪辑时感到紧张,再加上 Eddy 在这里提到的音频不同步。

尽管看起来像一个神奇的数字,600 是 24、30、60 和 120 的公倍数。这些是用于不同目的的常见帧速率。公倍数可以避免在合成多个剪辑时出现舍入问题。

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

使用 AVPlayer 音频播放 AVMutableComposition 不同步 的相关文章

  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • CATextLayer 上 iOS 6 中不需要的垂直填充

    背景 我在 iOS 5 中开始了我的项目 并构建了一个带有图层的漂亮按钮 我在按钮上添加了一个 textLayer 并使用以下代码将其居中 float textLayerVerticlePadding self bounds size he
  • 当应用程序进入前台时,如何重新启动基于块的动画?

    我有以下基于块的动画 UIView animateWithDuration 0 5f delay 0 0f options UIViewAnimationOptionRepeat UIViewAnimationOptionAutorever
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 从现有坐标地图套件中查找最近的位置

    我正在为拥有多家商店的客户开发 iPhone 应用程序 目标 C 我有数组中所有商店 20 的坐标 纬度 长 目前我正在考虑循环遍历商店坐标数组并获取从用户当前位置到商店位置的距离 然后将它们添加到数组中并按最小距离进行排序 这是正确的方法
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • 存档期间的位码编译永远不会完成

    我正在准备一个通过 Test Flight 进行临时分发的应用程序 我已经 成功 完成了这篇 Ray Wenderlich 文章中的所有准备步骤 https www raywenderlich com 48750 testflight sd
  • Firebase queryOrderedbyChild 不返回 Null 值

    我有一个根据年龄搜索用户的查询 self ref child users queryOrdered byChild age queryStarting atValue 18 queryEnding atValue 25 observeSin
  • 如何将动画应用到 GMSMarker

    我正在通过使用适用于 iOS V1 1 0 的 Google Maps SDK 将 iOS 地图迁移到 google 地图来更改我的应用程序 并且我尝试在添加 删除时对标记进行动画处理 但我在与此相关的文档中没有找到任何建议 请建议我如何在
  • React-native iOS 不显示图像(pod 问题)

    我正在我的react native应用程序中安装一个包 具体来说 它是来自react navigation的createMaterialTopTabNavigator 但安装成功后 出现崩溃 错误 react navigation mate
  • 如何去除 UIImageView 遮罩后的透明区域?

    在我的一个 iOS 应用程序中 我尝试使用以下命令剪切图像的一部分CGImageMask 我已成功使用以下代码屏蔽图像 UIImage maskImage UIImage referenceImage withMask UIImage ma
  • 更改iOS11中的UISearchBar背景图片

    我想更改我的 UISearchBar 背景图像 当将它添加为我的 UITableView 中的标题视图时 它工作得很好 但是 当我想更改它以将 SearchBar 设置为 navigationItem 的 searchController
  • 在自定义对象中映射 JSON 对象

    我一直在搜索是否可以获取 JSON 字典或数组并将其直接映射到属性与 JSON 标签同名的自定义对象中 但我没有找到任何相关信息 我一直在手动解析 JSON 字典 如下所示 id deserializedObj nil id jsonObj
  • Phonegap - navigator.app.backHistory() 不适用于 HTML 后退按钮

    在我的应用程序中 我使用phonegap 2 6 对于后退按钮 我使用以下函数 document addEventListener backbutton onBackKeyDown false function onBackKeyDown
  • UILocalNotification 播放自定义声音

    我在我的应用程序中实现了本地通知 但我只是想知道是否有一种方法可以播放不属于 iPhone 应用程序主包的一部分的声音 基本上在我的应用程序中 我希望用户录制生成本地通知时播放的声音 而不是播放预先录制的或默认的声音 据我所知 这是可以实现

随机推荐

  • 欧芹表单验证 - 事件监听器

    好的 所以我已经到处寻找这个 但仍然无法让它工作 似乎没有人尝试过 但我确信它可以做到 我想在我的 Twitter 引导项目中使用 Parsley 验证插件 我已经阅读了文档 但仍在学习 JQuery 所以它超出了我的理解范围 我正在合理化
  • 猫鼬一对多

    你能解释一下如何组织猫鼬模型来创建一对多连接吗 需要单独收藏 假设我有商店和物品 store js var mongoose require mongoose module exports mongoose model Store name
  • Python查找列表中n个连续的数字

    我想知道如何查找列表中的一行中是否存在一定数量的连续数字 例如 例如 如果我正在寻找两个 1 那么 list 1 1 1 4 6 original list list true true 1 4 6 after my function ha
  • lxml cssselect 解析

    我有一个包含以下数据的文档 div class ds list b 1 b A domesticated carnivorous mammal i Canis familiaris i related to the foxes and wo
  • 得到 Y 处的多项式 X? (Python 3.10、NumPy)

    我正在尝试根据 Python 3 10 中以系数降序给出的多项式计算某个 Y 值处的所有可能的实 X 值 我希望将生成的 X 值以list 我尝试过使用roots 的功能numpy图书馆 如答案之一所示这个帖子 https stackove
  • PayPal 自适应付款 - 错误 520009 - 帐户受到限制

    如果这是一个愚蠢的问题 请提前道歉 我确实尝试四处挖掘 但找不到答案 我正在尝试设置链式支付 在沙箱环境中 但收到错误 520009 帐户受到限制 尝试了几个电子邮件地址 它们都给我这个错误 电子邮件地址未在 Paypal 中注册 但据我所
  • 等待ajax响应相同的功能

    我知道类似的问题已经发布过很多次了 但是我读过很多 但找不到我的问题的答案 我有一个等待 ajax 请求响应的函数 很多人会问为什么 好吧 我正在使用一个执行函数的 Wizard Jquery 插件onLeaveAStepFunction当
  • 如何在 GridView 文本框中放置必填字段验证器

    我有一个GridView和一些TemplateField含有的物品TextBox控制 我想在其上添加一个必填字段验证器 这是我的代码
  • 颤动导航栏

    我刚刚开始应用程序开发 正在为导航栏而苦苦挣扎 下面的那个很好 但是上面的那个不好 我想删除按钮上方的灰色空间 你能帮助我吗 Code override Widget build BuildContext context return ne
  • 在 django 中记录格式化程序

    来自Django 文档 https docs djangoproject com en 1 7 topics logging examples 这是日志记录的示例格式 formatters verbose format levelname
  • 公开自托管服务时以编程方式从配置文件中读取 WCF 行为元素

    我的 app config 中有这样的配置
  • Symfony2 计算与另一个实体相关的实体字段

    我有 2 个实体 作者和书籍 1 个作者可能有很多书 我想在表格中显示每个作者有多少本书 每个作者的数量不同 我已经看过了this https stackoverflow com questions 17665271 counting th
  • PHP usort 不会对类进行排序

    这是要排序的元素数组的示例 items array 0 gt object stdClass 8 public id gt string 110 length 3 public brand id gt string 18 length 2
  • Python print 与 Javascript console.log()

    在Python中 print 1 2 n 3 4 会打印 1 2 3 4 在 JavaScript 中 console log 1 2 n 3 4 prints 1 2 n 3 4 与上面的 Python 等效的 Javascript 语句
  • 无法打开相机连接到相机时发生错误:0

    我开始开发一个应用程序 我需要使用手机的相机 当我使用 Camera open 方法时 无论是否带有cameraId 它都会返回错误 连接到相机时发生错误 0 我的 AndroidManifest xml 是
  • 如何在html页面中以格式化的方式显示html代码[重复]

    这个问题在这里已经有答案了 我的网站是一个简单的教育网站 我想以格式化的方式在我的网页中显示 HTML 代码 就像在编辑器中一样 我的意思是 HTML 标签应该以与剩余文本等不同的颜色显示 这是来自另一个网站的代码片段 我想要我的网页的输出
  • 使用 google guava 的 CacheBuilder 的 scala 2.10 类型不匹配

    我正在 scala 2 10 1 中为我的一些实体编写通用缓存 目前 我正在使用 google Guava 的 CacheBuilder 因为 scala 生态系统中没有太多选择 Code trait CachedEntity E lt K
  • SurfaceView隐藏屏幕上的其他组件

    我正在创建一个 FrameLayout 类型的布局 在其中添加两个视图 两个视图分别是GLSurfaceView和SurfaceView的对象 根据有关 SurfaceView 的 Android 开发人员文档 表面是 Z 排序的 因此它位
  • 如何用 pandas DataFrame 中之前和后续值的平均值替换 NaN?

    如果我有一些缺失值 并且我想用之前和之后值的平均值替换所有 NaN 我该怎么做 我知道我可以使用pandas DataFrame fillna with method ffill or method bfill 用前面或后面的值替换 NaN
  • 使用 AVPlayer 音频播放 AVMutableComposition 不同步

    我有一个带有 2 个音频轨道和 1 个视频轨道的 AVMutableComposition 我使用该合成从 mov 文件中串接大约 40 个不同的视频剪辑 将每个剪辑的视频内容放入合成的视频轨道中 将音频放入音轨中 我用于音乐的第二个音轨