问题标签 [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.
ios - Swift 3:如何使用 AVVideoComposition 导出带有文本的视频
我正在尝试使用AVVideoComposition
在视频顶部添加一些文本并保存视频。这是我使用的代码:
我 创建一个AVMutableComposition and AVVideoComposition
II 设置图层
三.保存视频AVMutbaleVideoComposition
然后我运行方法中的所有三个方法viewDidLoad
进行快速测试。问题是当我运行应用程序时,导出的结果是没有标题的原始视频。
我在这里想念什么?
更新
我注意到 在代码的第二subTitle1Text.backgroundColor
部分添加一个属性会使导出时对应 的颜色 出现在视频顶部。CGRect
subTitle1Text.frame
当修改此代码以使用AVSynchronizedLayer
所需图层进行播放时,可以在视频顶部看到带有文本的视频。所以也许这AVFoundation
本身就是一个错误。
我想我只能选择使用customVideoCompositorClass
. 这样做的问题是渲染视频需要很多时间。这是一个使用AVVideoCompositing的示例
ios - AVVideoComposition 不会将文本添加到视频 - iOS 10.3
我最近发布了一个关于使用 textOverlay(使用AVVideoComposition
)导出视频的问题。我正在尝试CATextLayer
使用以下方法将叠加层快速应用于视频:
问题
当我使用 atextfield
分配 a时let subTitle1Text : CATextLayer
,我得到了带有文本的所需输出视频。但是,如果我要用一些静态文本替换该subTitle1Text.string
属性,例如subTitle1Text.string = "Sheep"
我在字幕上没有任何文本。
当我预览这个时,AVPlayer
我可以在视频上看到预期的文本,但在保存视频时AVExportSession
没有添加字幕。
所以我的问题是,这种异常行为的原因是什么?
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 存在错误,也必须有一种解决方法。我错过了什么?
ios - 向视频添加水印非常慢
我正在使用 AVComposition 为视频渲染水印。这个过程大约需要 15 秒,这对于 20 秒的视频来说似乎不太合适。我的导出设置是:
这就是我添加水印的方式:
这就是我最终转换视频的方式:
所以我现在的问题是,如何提高将水印合并到视频的性能?对于任何类型的最终用户来说,15 秒是完全不可接受的。此外,我需要通过 Internet 传输此视频,因此加载屏幕将显示其美感,总共大约 20 秒以上。
swift - 设置 AVAssetExportSession 的 videoComposition 时视频旋转不申请 AVAsset
我只是想在捕获视频后将其旋转 90 度。我遵循了这个线程中的答案:iOS 如何在使用 AVAssetWriter 捕获视频时正确处理方向
当我的资产完成写入后,我调用该方法来设置视频的属性,然后将其导出。
这是 getVideoComposition 函数。请注意,我通过删除任何会检查方向或尺寸的逻辑来强制旋转,否则会这样做。它应该始终应用旋转:
但是没有应用旋转。
我不知道这是否有帮助,但我打印了 vidComp 的说明:
ios - Swift:来自调试器的消息:由于内存问题而终止
这个问题与Ios Xcode Message from debugger: Terminated due to memory issue不同。我正在使用不同的设备,并且我的应用程序在前台被杀死,此外我无法使用 Instruments 查看分配。
我正在尝试将许多 AVAsset 的短间隔合并到一个视频文件中。我需要对它们应用额外的过滤器和转换。
我实现了类,它可以采用一种资产并完全按照我的意愿制作所有东西,但是现在,当我尝试对许多(cca 7 aasets 仍然可以)做同样的事情时,更短的资产(完整的持续时间可能比一个更短资产),应用程序崩溃,我只收到“来自调试器的消息:由于内存问题而终止”日志。
我无法使用大多数 Instruments 工具,因为应用程序会立即崩溃。我尝试了很多方法来解决它,但我没有成功,我非常感谢一些帮助。
谢谢
相关代码片段在这里:
创作作品:
和 AVVideoCompositing 类的一部分:
ios - 更新 AVPlayerItem 视频合成
我和我的团队在一个问题上停留了几天。
我们有which与 custom 一起AVPlayer
玩。AVPlayerItem
AVVideoComposition
用户可以决定是删除还是保留该组合物。我正在尝试通过调用来删除组合
但以一种意想不到的方式,即使将 nil 分配给videoComposition
属性,它也会继续使用相同的组合。
我们如何在AVVideoComposition
不切换的情况下删除AVPlayerItem
?
任何帮助将不胜感激。
最好的问候,
Roi 和团队