问题标签 [avassetreader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
157 浏览

ios - AVAssetReader 初始化失败?

我正在尝试通过 AVAssetReader 和 AVAssetWriter 导出 iCloud 资产,但 AVAssetReader 无法使用该资产进行初始化。所有其他视频都工作正常。只有 iCloud 共享相册视频会造成麻烦。AVAssetReader 给我的错误如下:

Error Domain=AVFoundationErrorDomain Code=-11800“操作无法完成” UserInfo={NSLocalizedFailureReason=发生未知错误(-17507),NSLocalizedDescription=操作无法完成,NSUnderlyingError=0x2812d8ae0 {Error Domain=NSOSStatusErrorDomain Code=- 17507 “(空)”}}

有什么原因要修复它还是有其他选择?

0 投票
0 回答
14 浏览

avfoundation - 使用 AVAssetWriter 转换视频时更改信箱颜色

我有一个使用 AVAssetWriter 转换视频的视频转换应用程序。改变它们的格式和大小。

它基于 Apple 的示例代码,看起来类似于此https://gist.github.com/johnnyclem/4850b03555e57f413b23

当我更改正在转换的视频的纵横比时,它会被加装信箱,这很好,但是我想做的是让信箱变成不同的颜色。正如您所期望的那样,目前它始终是黑色的。

我不知道该怎么做。我假设我可以为我正在渲染的框架添加背景颜色。有谁知道我该怎么做?

0 投票
1 回答
49 浏览

avfoundation - 如何向 AVAssetReader copyNextSampleBuffer 添加回调?

我正在尝试读取音频帧并使用 AVAssetReader 对其进行解码。我希望能够异步读取帧并在读取样本缓冲区时添加某种回调。所以调用后:

我希望能够从我的回调中引用和处理这个示例。那可能吗?如果没有,您能否建议我如何使用 AVFoundation/Core Audio 中的其他类来做到这一点?

0 投票
0 回答
19 浏览

ios - 将任意视频文件重新编码为单个标准化 FPS、分辨率、旋转等

在 iPhone 上重新编码从用户照片库中选择的任意视频文件以匹配所需参数的最简单方法是什么?即:720p(方面填充)、人像(无变换)、30fps、h264。

示例:给定具有以下参数的视频:1080x1920,90d 旋转(即使它的宽度小于高度,它也应该被旋转并横向播放),24fps,hvec。它将变为:720p(在这种情况下,纵横比是相同的。如果不同,它将具有裁剪/缩放的纵横比填充)、人像(没有变换)、30fps、h264。

这是我到目前为止所尝试的:

上面的代码实现了 4 个目标中的 2 个。它缩放/裁剪到 720p(纵横比填充)并以正确的格式进行编码。但是,它不会针对 FPS 进行调整或正确移除旋转,从而导致某些视频最终超出帧并显示为空白。

  1. 如果 fps 更高,它将被抽取和调整(60fps -> 30fps)。如果较低,它将以编程方式生成新的填充帧(24fps -> 30fps)。不改变长度(以自然速度播放)。有没有内置的方法来做到这一点?

  2. 在 aspectfill 拟合之前应用视频转换以确保内容始终位于导出资产的视口内的最佳方法是什么?

参考

  1. 如何控制 AVAssetWriter 以正确的 FPS 写入
  2. https://medium.com/samkirkiles/swift-using-avassetwriter-to-compress-video-files-for-network-transfer-4dcc7b4288c5