问题标签 [avcomposition]
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.
ios - iOS7 中的 AVAssetImageGenerator 随机失败
我有一个 AVComposition 和一个 AVVideoComposition,我为视频的每半秒左右生成拇指。我将动画工具用于一些叠加层。我在操作队列上执行调用,并在某些类型的编辑后触发。操作队列是串行的而不是异步的,所以进程永远不会并发运行,我已经验证了这一点。下面的代码在串行队列中另一个 NSOperation 的主线程上执行。
现在我的问题是,拇指随机失败,没有模式。我可以运行一次并让它全部成功。我可以使用完全相同的参数再次运行它,并且有些拇指失败了。我可以再次运行它并且有不同的拇指失败。
它似乎与其他线程中正在进行的其他活动有多少有关,例如从 ALAssetLibrary 或 MediaFramework 查询很多项目。
我还将提到这在 iOS6 中有效,没有这个问题。
在生成拇指之前,我确实创建了 AVComposition 和 AVVideoComposition 的副本。
有人对我有任何指示吗?
我很感激。
objective-c - AVPlayerItemVideoOutput 文件不能在 AVComposition IOS7 中使用
我在 IOS6 中有一个可以正常工作的应用程序,在使用 AVComposition 时会在 IOS7 中中断。
这是问题所在:在以前的视图控制器中,我使用AVPlayerItemVideoOutput
&捕获用户屏幕AVAssetWriterInputPixelBufferAdaptor
以生成视频输出文件。在我当前的视图控制器中,我将生成的视频文件添加到 AVComposition 以在此文件和一些音频之间生成视频合成。在 IOS6 中,此过程完美运行,并且 AVExportSession 完成。在 IOS7 中,导出过程未完成(从不调用完成处理程序,状态始终为AVAssetExportSessionStatusExporting
)。
这是我的伪代码:
调试我的代码后,问题归结为正在使用的生成的视频文件。如果我更改asset
为硬编码文件,则导出器完成。有趣的是,生成的视频文件AVPlayerItemVideoOutput
在MPMoviePlayerViewController
. AVPlayerItemVideoOutput
在 IOS7 中或在 IOS7 中是否发生了一些变化AVAssetWriterInputPixelBufferAdaptor
,会阻止输出文件在合成中使用?我需要在合成中添加额外的规格吗?它必须处理不同的帧速率吗?
谢谢您的帮助!
ios7 - 如何实例化具有 AVMediaTypeText 类型的 AVMutableCompositionTrack
我正在尝试放置我正在创建的视频的一部分的一些文本。我意识到我可以使用 CALayers 在整个视频长度上使用带有文本的图层,但是如何仅在视频的一部分上使用呢?经过一些研究,我发现您可以创建一个类型为 AVMediaTypeText 的 AVMutableCompositionTrack,而且这似乎可以解决问题;但是,我找不到任何关于如何声明、实例化此类轨道等的示例?
我这样声明:
现在我如何实际向它添加文本或用字符串实例化它?
任何意见表示赞赏。
ios - 在合并音频时,虽然我希望它叠加,但两个音频都是线性的
因此,我尝试在“for”循环中使用以下代码来覆盖音频,但它们是线性进入的,最后附加的音频首先进入。
我看到他们在 2011 年 WWDC 会议 415 中解释了所有这些 - 在 AVFoundation 中使用媒体及其解决方案将出现在 AVEditIPadDemo 示例中,但我也无法访问该源。如果您能让我访问该代码,那就太好了。谢谢
ios - 在 AVComposition 中处理后丢失音频
我正在使用 AVMutableComposition 组合两种媒体(一个视频一个图形叠加)。该视频是使用 UIImagePickerController 捕获的。
视频录制良好,预览录制时有音频。
使用合成处理和导出会话。视频保存良好(带有覆盖),但没有音频。
IOS 7。
我并没有专门对作品中的音频做任何事情。我只是假设它会与视频文件“一起出现”。这准确吗,还是我需要在乐曲中创建专用音轨?
_麦克风
ios - AVAssetExportSession - 在 IOS 中加入 2 个 mp4 文件
我正在尝试使用以下代码在 ipad2 上加入 2 个预先存在的 mpeg4 视频。
输出如下:
好的,所以根据输出,我的文件没问题并且可以导出,并且 mp4 是受支持的输出类型。
有谁知道为什么它给我错误“该媒体不支持该操作”
objective-c - AVFoundation 如何将字幕轨道添加到 AVComposition
我想向 AVMutableComposition 添加一个 AVMediaTypeSubtitle 类型的轨道,添加本身很容易,但是如何填充这个轨道呢?以后怎么读?!!
我找不到任何与如何读/写 AVMediaTypeSubtitle 类型的音轨有关的东西!
ios - 尝试将 AVComposition 的 TimeRange 插入 AVMutableComposition 时出现错误 -11800
我正在AVFoundation
使用仅音频 - 即没有视频 - 并尝试将几个AVComposition
s 一个接一个地连接在一起,最终得到一个 s AVComposition
。
示例案例:只有两个AVComposition
s。他们每个人都通过创建一个 AVPlayer 玩得很好,因此:
comp
的实例在哪里AVMutableComposition
。(顺便说一句,值得注意的是,它_player
必须是 ivar,否则 ARC 会在播放之前过早地释放它 - 需要一段时间才能找到它。)
这很好 - 执行
结果comp
播放成功。
但是,这失败了:
(self.segments
是一个NSMutableArray
包含元素的自定义子类AVMutableComposition
)
对于self.segments
此代码执行时的每个元素,我在调用该insertTimeRange::::
方法时都会收到此错误:
我找不到有关此错误指示的任何信息 - 似乎只是一个包罗万象的信息 - 我看不出我做错了什么。有任何想法吗?
ios - 使用 AVMutableComposition 进行精确计时
我正在尝试使用 AVMutableComposition 在精确的时间播放一系列声音文件。
当视图加载时,我创建的目的是在 1 秒内均匀地播放 4 个声音。声音的长短无关紧要,我只想在 0、0.25、0.5 和 0.75 秒时触发它们:
合成成功创建,没有错误。后来,当我想播放序列时,我这样做:
出于某种原因,这些声音根本不是均匀分布的——而是几乎同时播放所有声音。我尝试了同样的事情,间隔超过 4 秒,替换了这样的时间计算:
这玩得很完美。任何低于 1 秒的时间间隔似乎都会产生意想不到的结果。我错过了什么?AVCompositions 不应该用于 1 秒以下的时间间隔吗?还是我误解了时间间隔?
ios - 在 AVComposition 中编辑视频时序
我有一个AVComposition
包含多个视频和音频轨道。到目前为止,它是纯编程的,没有 GUI。我希望用户能够通过单击一个按钮将一个轨道前后推动几帧。例如:标题为“-10 帧”的按钮会将轨道向后推 10 帧,而“+10 帧”会将其向前推 10 帧。在使用添加轨道后,我找不到任何实际移动轨道的方法insertTimeRange:ofTrack:atTime:
。
我试图删除它并像这样重新添加它:
而且它实际上并没有移动这么远(虽然我可能做错了什么),但我觉得这是一种非常老套的方式。任何人都知道一种正确的方法来给已经添加的轨道一个新的时间一个AVComposition
?