问题标签 [avvideocomposition]

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 回答
5309 浏览

ios - Swift 3:如何使用 AVVideoComposition 导出带有文本的视频

我正在尝试使用AVVideoComposition在视频顶部添加一些文本并保存视频。这是我使用的代码:

创建一个AVMutableComposition and AVVideoComposition

II 设置图层

.保存视频AVMutbaleVideoComposition

然后我运行方法中的所有三个方法viewDidLoad进行快速测试。问题是当我运行应用程序时,导出的结果是没有标题的原始视频。

我在这里想念什么?

更新

我注意到 在代码的第二subTitle1Text.backgroundColor部分添加一个属性会使导出时对应 的颜色 出现在视频顶部。CGRectsubTitle1Text.frame

(见图片)

当修改此代码以使用AVSynchronizedLayer所需图层进行播放时,可以在视频顶部看到带有文本的视频。所以也许这AVFoundation本身就是一个错误。

我想我只能选择使用customVideoCompositorClass. 这样做的问题是渲染视频需要很多时间。这是一个使用AVVideoCompositing的示例

0 投票
0 回答
397 浏览

ios - AVVideoComposition 不会将文本添加到视频 - iOS 10.3

我最近发布了一个关于使用 textOverlay(使用AVVideoComposition)导出视频的问题。我正在尝试CATextLayer使用以下方法将叠加层快速应用于视频:

问题 当我使用 atextfield分配 a时let subTitle1Text : CATextLayer,我得到了带有文本的所需输出视频。但是,如果我要用一些静态文本替换该subTitle1Text.string属性,例如subTitle1Text.string = "Sheep"我在字幕上没有任何文本。

当我预览这个时,AVPlayer我可以在视频上看到预期的文本,但在保存视频时AVExportSession没有添加字幕。

所以我的问题是,这种异常行为的原因是什么?

0 投票
0 回答
690 浏览

ios - AVMutableVideoComposition frameDuration 不起作用

我有一个AVMutableVideoComposition并且我想设置导出帧速率(例如 10 fps):

videoComposition.frameDuration = CMTimeMakeWithSeconds(1, 10);

我还有其他各种指令,例如对构图进行转换,它们都可以工作,但是,导出的视频只是忽略此属性并以原始视频的帧速率导出。

这是我的代码:

我也尝试过AVAssetExportPresetPassthrough而不是AVAssetExportPresetHEVCHighestQuality作为导出会话预设,但没有任何改变。

为什么会被frameDuration忽略,以及如何在不使用其他 3rd 方库(例如SDAVAssetExportSession )的情况下使其工作?

我已经看到设置 AVMutableComposition 的 frameDuration但那里没有解决方案。但是,当我检查SDAVAssetExportSession' 的源时,它frameDuration就像我一样使用该属性(请参阅https://github.com/rs/SDAVAssetExportSession/blob/master/SDAVAssetExportSession.m#L308),但由于某种原因我的不是在职的。但既然这样有效,即使 Apple 的 AVKit 存在错误,也必须有一种解决方法。我错过了什么?

0 投票
1 回答
1102 浏览

ios - CIImage 在应用于 CIFilter 时被调整大小

我正在尝试为我的视频添加全屏水印。

不幸的是,水印图像(红色矩形)被 CIFilter 调整了大小,我找不到让它全屏显示的方法。

有没有办法设置 CIImage 的大小?

错误

我也尝试过将 CIImage 放大,但这也不起作用。

我真的不知道该怎么办,我已经花了几周时间试图简单地将水印渲染到视频中,但不幸的是,这只是不想工作。

0 投票
1 回答
938 浏览

ios - 向视频添加水印非常慢

我正在使用 AVComposition 为视频渲染水印。这个过程大约需要 15 秒,这对于 20 秒的视频来说似乎不太合适。我的导出设置是:

这就是我添加水印的方式:

这就是我最终转换视频的方式:

所以我现在的问题是,如何提高将水印合并到视频的性能?对于任何类型的最终用户来说,15 秒是完全不可接受的。此外,我需要通过 Internet 传输此视频,因此加载屏幕将显示其美感,总共大约 20 秒以上。

0 投票
2 回答
1365 浏览

ios - AVPlayer resizeAspect 仅适用于 iPhone X

resizeAspect 因为视频重力仅适用于我,在使用 iPhone X 时。

由于某些原因,黑色纵横比只会添加到顶部而不是底部。这是我不使用 iPhone X 时的样子(图片为白色)

苹果手机

它应该是这样的:

正常状态

如您所见,在 iPhone X 上,一切看起来都像预期的那样干净和平衡。

这是我播放视频的方式:

0 投票
0 回答
321 浏览

swift - 设置 AVAssetExportSession 的 videoComposition 时视频旋转不申请 AVAsset

我只是想在捕获视频后将其旋转 90 度。我遵循了这个线程中的答案:iOS 如何在使用 AVAssetWriter 捕获视频时正确处理方向

当我的资产完成写入后,我调用该方法来设置视频的属性,然后将其导出。

这是 getVideoComposition 函数。请注意,我通过删除任何会检查方向或尺寸的逻辑来强制旋转,否则会这样做。它应该始终应用旋转:

但是没有应用旋转。

我不知道这是否有帮助,但我打印了 vidComp 的说明:

0 投票
1 回答
4483 浏览

ios - Swift:来自调试器的消息:由于内存问题而终止

这个问题与Ios Xcode Message from debugger: Terminated due to memory issue不同。我正在使用不同的设备,并且我的应用程序在前台被杀死,此外我无法使用 Instruments 查看分配。

我正在尝试将许多 AVAsset 的短间隔合并到一个视频文件中。我需要对它们应用额外的过滤器和转换。

我实现了类,它可以采用一种资产并完全按照我的意愿制作所有东西,但是现在,当我尝试对许多(cca 7 aasets 仍然可以)做同样的事情时,更短的资产(完整的持续时间可能比一个更短资产),应用程序崩溃,我只收到“来自调试器的消息:由于内存问题而终止”日志。

我无法使用大多数 Instruments 工具,因为应用程序会立即崩溃。我尝试了很多方法来解决它,但我没有成功,我非常感谢一些帮助。

谢谢

相关代码片段在这里:

创作作品:

和 AVVideoCompositing 类的一部分:

0 投票
2 回答
1142 浏览

ios - AVVideoComposition 应用过滤器处理程序不调用

我想在视频中添加叠加图像。我使用 AVVideoComposition 和 CIFilter 来执行此操作,但未调用 AVAsynchronousCIImageFilteringRequest 处理程序。我放了一些断点(行 debugPrint“Here”,request.finish),但 XCode 没有达到断点。 在此处输入图像描述

我有视频,但没有水印。

0 投票
0 回答
888 浏览

ios - 更新 AVPlayerItem 视频合成

我和我的团队在一个问题上停留了几天。

我们有which与 custom 一起AVPlayer玩。AVPlayerItemAVVideoComposition

用户可以决定是删除还是保留该组合物。我正在尝试通过调用来删除组合

但以一种意想不到的方式,即使将 nil 分配给videoComposition属性,它也会继续使用相同的组合。

我们如何在AVVideoComposition不切换的情况下删除AVPlayerItem

任何帮助将不胜感激。
最好的问候,
Roi 和团队