问题标签 [avassetexportsession]

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 投票
2 回答
18435 浏览

ios - 如何使用 AVAssetWriter 制作缩小尺寸的视频?

我会制作缩小尺寸的视频,宽度可能为 50 像素,长度为 75 像素。这些是物理维度。

你是怎么设置的?在视频设置中?我认为 AVVideoWidthKey 和 AVVideoHeightKey 更多的是用于分辨率而不是我需要的物理尺寸。

0 投票
1 回答
1061 浏览

iphone - 在设备上导出时 AVAssetExportSession 缺少音轨

我在模拟器上运行导出,一切正常。我在设备上运行它,视频被导出,但没有音频。这让我相信我必须使用设备不支持但 OS X 支持的音频格式,因为模拟器使用 OS X 使用的音频格式。我已经尝试过 m4a、aiff 和 aifc 并且没有运气!有任何想法吗??

0 投票
2 回答
2404 浏览

iphone - 带和不带断点的 AVAssetExportSession

我有低质量转换的简单视频压缩代码。我正在使用 IOS-4.2.1 在 iphone 4 中测试我的代码。问题是当我在没有断点的设备上测试我的代码时,代码无法创建视频(它只是一个零kb 文件或创建的空文件)但是当我使用断点逐行检查此代码时,它会制作一个完美的压缩视频,该视频也可以在 mac 中的 quicktime 播放器上运行。压缩后我制作这个视频文件的 zip。

感谢您的帮助...

0 投票
2 回答
3356 浏览

iphone - 如何使用 AVAssetExportSession 在 AVMutableComposition 之上正确导出 CALayer

我知道之前有人问过这个问题(例如这里这里),但我就是不知道我做错了什么。

我有一个AVMutableComposition我用来将一些视频剪辑与一些CALayer在它们之上动画的 s 组合起来的。

当我拿起我的AVMutableComposition并将它与一个AVSynchronizedLayer用于播放的AVPlayerLayer. 视频正确显示,所有内容都位于应有的位置。

我的问题是,当我尝试导出这个东西时,我尝试使用AVVideoCompositionCoreAnimationTool而不是AVSynchronizedLayer(这就是文档所说的我们应该用于导出的内容)和 AVAssetExportSession,但是出现了问题,因为在我导出的电影中,每个CALayer都有它的坐标系反转。

因此,如果在播放期间,当我导出电影时,0,0 点位于屏幕的左上角,则 0,0 点位于左下角,因此我的动画会发疯。

我阅读了有关此的任何可能的文章,并且还从 Apple 下载了 AVVideoEdit 示例,但我只是看不到发生了什么...

0 投票
3 回答
3324 浏览

ios - 如何从 iOS 设备的 iPod 库中导出 mp3 文件?

在我的 iOS 应用程序中,我试图将iPod 库中的mp3文件导出到设备上应用程序的文档目录中。目前我正在尝试使用AVAssetExportSession但它不适用于mp3文件。它适用于m4a文件。

  • 是否可以使用 AVAssetExportSession 导出 mp3 文件?

  • AVAssetExportSession的合适outputFileType是什么?AVFileTypeAppleM4A适用于 m4a 文件)

谢谢!

0 投票
0 回答
1557 浏览

iphone - 错误:exportAsynchronouslyWithCompletionHandler 不止一次。在avfoundation中恢复导出

您好我正在开发一个 iphone 应用程序,它创建一个 AVAssetExportSession 对象来保存和创建一个视频文件。一切正常,(文件已创建并正确保存在文档文件夹中),除非我尝试恢复保存过程。如果我按下主页按钮退出应用程序(或者如果我收到电话或短信),则方法 exportAsynchronouslyWithCompletionHandler 失败。苹果的文档说:

“如果您尝试覆盖现有文件或在应用程序的沙箱之外写入文件,则导出将失败。如果您需要覆盖现有文件,则必须先将其删除。如果出现以下情况,导出也可能会失败:

有来电

您的应用程序在后台,另一个应用程序开始播放

在这些情况下,您通常应该通知用户导出失败,然后允许用户重新启动导出。”

所以我尝试取消导出,然后在用户重新打开应用程序时重新启动它。第二次调用 exportAsynchronouslyWithCompletionHandler 时出现此错误:

“由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法调用exportAsynchronouslyWithCompletionHandler:不止一次。'”

似乎 [asset CancelExport] exportAsynchronouslyWithCompletionHandler 保持活动状态后,有可能吗?我还尝试第二次调用将资产导出到另一个视图控制器,但结果是一样的。我如何在中断后重复保存而不丢失我的资产(它是由另一个视图控制器构建的,如果没有新的用户交互,我无法重建它)?

这是我的代码:

-(无效)保存{

}

-(无效)sospendi{

}

0 投票
1 回答
6247 浏览

ios - AVVideoCompositionCoreAnimationTool 和 CALayer 在纵向模式下?

我正在尝试在 iOS 4.3 上使用 AVMutableComposition、AVMutableVideoComposition 和 AVVideoCompositionCoreAnimationTool 将 CALayer 烘焙成纵向模式视频(导出时)。这一切都适用于景观。但是,如果我以纵向拍摄视频,则 AVVideoCompositionCoreAnimationTool 将忽略视频轨道上的变换。也就是说,对于纵向模式视频,我将 AVMutableCompositionTrack.preferredTransform 设置为来自原始资产视频轨道的 preferredTransform 值。只要我不使用 AVVideoCompositionCoreAnimationTool,它就可以工作,并且视频以纵向模式出现。但是,一旦我添加了 AVVideoCompositionCoreAnimationTool 和 CALayer,文件就会以横向形式出现。(CALayer 显示正确,但其后面的视频在其一侧,并且文件的纵横比关闭)。我' 我尝试将变换应用到 CALayer,并在 ACVideoComposition 中设置变换。这些都不会改变所生成文件的方向(它仍然是 480x369,而不是 360x480)。有没有办法使用 AVVideoCompositionCoreAnimationTool 渲染纵向模式视频?

首先我设置了一个 AVMutableComposition 和 AVMutableVideoComposition

还有一个带有标题的 CALayer

最后我将 CALayer 添加到 AVMutableVideoComposition

并出口!

此代码在横向模式下工作,如果我删除线也可以在纵向模式下工作videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];

0 投票
1 回答
7361 浏览

objective-c - AVURLAsset loadValuesAsynchronouslyForKeys:completionHandler:永远不会在设备上触发

我正在使用下一个片段同步地加载值,所以加载 = NO 永远不会触发。我对 AVAssetExportSession exportAsynchronously 也有同样的问题。 这一切都不仅仅适用于设备。

请帮忙!我的大脑正在融化。

0 投票
1 回答
1900 浏览

ios - 如何使用 AVAssetExportSession 将 wav 文件导出到 22kHz 的 m4a?

我有一个 22kHz 的波形文件,想要一个 22kHz 的 m4a 文件。带有预设 AVAssetExportPresetAppleM4A 的 AVAssetExportSession 会自动将我的 wav 转换为 44kHZ。我尝试了不同的预设和 nil 来创建 ExportSession,但没有成功。

有没有办法设置 AVAssetExportSession 的自定义导出属性,或者我需要一种完全不同的方法,如如何将 WAV 文件转换为 M4A 中所述的方法??

这是我到目前为止的代码,如果你想要一个 44kHz 文件,它会很好用:

如果我只是错过了一些东西,那就太好了。

提前致谢, 多姆

0 投票
1 回答
624 浏览

ios - 在 AVExportSession 中暂停视频


我有一个视频必须在不同的时间点暂停,然后制作成一个新视频。
我在 AVMutableComposition 中使用 insertEmptyTimeRange 暂停视频,然后使用 AVExportSession、exportAsynchronousWithCompletionHandler 将其导出。
但是在completionHandler中我不断收到状态AVAssestExportSessionStatusFailed,错误代码-1800操作无法完成,操作系统由于未知原因,操作无法完成。
任何帮助都会很棒,无论是我暂停视频还是导出视频。

谢谢,