问题标签 [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 回答
1813 浏览

ios - Swift 2:AVAssetReader 和 NSInputStream 音频图

我正在尝试转换 Bob McCune 的 Learning AVFoundation 书中的一个示例,并且在使用 AVAssetReader 和 NSInputStream 时遇到了一些问题。该图应该是纯正弦波,但值似乎以某种方式反映在 X 轴上。

我已经尝试了我能想到的每一次字节交换迭代,但都没有奏效。

Playground 在此处发布到 github: https ://github.com/justinlevi/AVAssetReader

这是图表的样子(取自 Audacity) 音频文件的正弦波图

这是操场上的图表

在此处输入图像描述

0 投票
1 回答
470 浏览

ios - 当前帧的 AVAssetReader/AVAssetWriter 预览

我正在使用AVAssetReader/AVAssetWriter 在 iOS 上转换我的视频。我的问题是:通过实时转换显示当前帧预览的最有效方法是什么。我正在考虑转换CMSampleBufferRef为 UIImage,然后应用到 UIImageView。它有什么更好的方法吗?

0 投票
1 回答
552 浏览

ios - iOS - 在设备上修剪 mp4

我以为我可以使用 anAVAssetReader/Writer来修剪 MP4,但是当我尝试阅读音频(还没有尝试过视频)时,我得到了这个:

AVAssetReaderOutput does not currently support compressed output

有什么方法可以通过磁盘读取 MP4AVAssetReader吗?

0 投票
2 回答
99 浏览

ios - 如何在目标 c 的视频格式中合并视频、uiimage 和 uiwebview 以在社交媒体网站上共享?

我需要在 Objective-C 中合并一个视频UIImageUIWebView一个视频格式的视频,以便在社交媒体网站上分享。我试过AVAssetWriter但无法正确实施。我已经在我UIView的 with中展示了视频,MPMoviePlayerController并添加了 aUIWebView和 aUIImage作为子视图,但现在我需要与 Facebook 分享它。任何人都可以帮助我吗?任何帮助和答案将不胜感激。

0 投票
1 回答
1144 浏览

swift - AVAssetReaderOutput 内存问题

我正在使用 AVAssetReaderOutput(更具体地说是 AVAssetReaderTrackOutput)逐帧处理视频。我使用 copyNextSampleBuffer() 方法获取视频的连续帧。处理后我不保留对帧的任何引用,但是当我循环并读取整个视频时,我看到了渐进式内存消耗,并且内存使用量大约是视频的大小。在处理大 (>1GB) 文件时,这是有问题的。最初我以为我可能有内存泄漏,但我已将问题隔离到 AVAssetReaderTrackOutput 对象。

例如,如果我只是循环播放视频并使用 copyNextSampleBuffer() 方法,我会看到内存消耗问题。在以下代码片段中,asset 是从视频文件初始化的 AVURLAsset 对象:

我曾考虑修改读取方法以在较短的段中读取和处理视频以避免过多的内存使用,但我无法释放 AVAssetReaderTrackOutput 对象消耗的内存。例如,如果我在使用后将对象设置为 nil,则不会根据 Xcode 调试导航器释放内存:

我错过了什么吗?是否有另一种方法来释放似乎被 videoTrackOutput 对象使用的内存?

如果没有,有没有其他方法可以逐帧读取不存在此问题的视频?

0 投票
0 回答
395 浏览

swift - 如何使用 AVFoundation 的 AVAsetReader 将 m4a 解码为 PCM

尝试将 M4A 转换为 PCM 一开始很顺利。我能够转换和读取字节。但是我不确定这是否是正确的方法。当我尝试获取 NSData 中的字节时,我得到了 16384 个字节。

这是我的功能

我尝试将此数据转换为 Int16

这些是我从 M4A 文件解码 PCM 的设置。

PS。我用相同的设置记录文件

0 投票
1 回答
329 浏览

ios - 将 CMSampleBufferRef 处理为数组会导致崩溃

我想更改电影帧的顺序,然后将它们写回新的视频文件。将它们全部放在数组中对我来说会容易得多,但是将缓冲区样本处理到数组的过程会导致真实设备上的崩溃(但在模拟器中没问题)。我在 Xcode 中看到的只是消息:“丢失与 DEVICE_NAME 的连接”在这个过程的中间 - 没有崩溃日志等。

所以让我们从不会导致任何问题的事情开始:打印每帧的时间戳

但是当我尝试以这种方式将样本缓冲区复制到数组时:

或者这样

它崩溃了。我在尝试做一些不可能的事情吗?

0 投票
0 回答
217 浏览

ios - iOS如何为现有视频插入背景

我需要为现有视频制作背景。背景应该是预先提供的图像(png 类型)。

总结,我有一个现有的视频和一个现有的图像。如何将图像作为视频的背景?我正是需要这个功能,然后我会将它导出到一个新的视频文件中。

我检查了主题。看来我需要使用 AVFoundation,但它有太多选择。这些是3:

  • AVAsset -> 导出会话 -> 新 AVAsset
  • 作品
  • AVAssetReader + AVAssetWriter

谁能帮我澄清一个确切的解决方案?所以我可以随它去。非常感谢指南/教程的来源。如果没有,没关系。

0 投票
0 回答
428 浏览

swift - AVAssetReader - 无法解码 MOV

我正在尝试从视频中获取一组帧。这是我的代码:

当我尝试使用.mp4时,它可以正常工作,但是当我想使用.mov(我需要 alpha 通道)时,它会说:

我已尝试使用 Premiere Pro 中支持透明度和像素格式kCVPixelFormatType_32RGBA、kCVPixelFormatType_32BGRA、kCVPixelFormatType_32ARG 和 kCVPixelFormatType_32ABGR的所有编解码器,但仍然出现相同的错误。有什么建议吗?

0 投票
0 回答
198 浏览

macos - 使用“AVAssetReaderTrackOutput”同时读取多个视频文件会吓坏 OSX

我需要将三个短视频文件(每个 3 分钟)中的所有帧读入内存(NSArrayof CMSampleBufferRef)。我使用了典型的方法AVAsset和循环调用。AVAssetReaderAVAssetReaderTrackOutputcopyNextSampleBufferwhile

它适用于 1 个文件 - 所有 3570 个样本都已加载。如果我尝试再加载两个文件(按顺序) - 第二个仅加载 1820 个样本,第三个加载 0,错误为 -1189(无法打开)。我尝试了主线程、后台线程和指定线程(dispatch_queue_t并发或串行 - 效果相同)。

如果我尝试同时加载所有三个(每个都有自己的dispatch_queue_t) - 所有三个加载大约 1800 个样本而没有任何错误(这不是视频的完整长度)。

作为我在 Xcode 中运行我的应用程序后的一个奇怪的副作用 - 我在整个系统中(在 Chrome、Finder、拖动窗口时)得到窗口(和网页)呈现故障。

将所有视频样本从背景中的多个视频加载到数组中以不锁定 UI(同时或顺序)的正确方法是什么?