问题标签 [video-toolbox]

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 投票
3 回答
1794 浏览

ios - 为什么 AVSampleBufferDisplayLayer 因操作中断 (-11847) 而失败?

我正在使用AVSampleBufferDisplayLayer解码和显示从服务器流式传输的 H.264 视频。当我的应用程序进入后台然后返回前台时,解码过程被搞砸了并且AVSampleBufferDisplayLayer失败了。我看到的错误是:

有没有其他人遇到过这样的问题AVSampleBufferDisplayLayer?这是什么意思?

当我收到错误时,我尝试销毁AVSampleBufferDisplayLayer并创建一个新的,但随后我开始从 H.264 解码器收到其他错误:

在失败之前我没有收到任何这些错误AVSampleBufferDisplayLayer

0 投票
1 回答
1147 浏览

video - 如何设置 VTCompressionSession 的 MaxH264SliceBytes 属性

iOSVTCompressionSession有一个属性是kVTCompressionPropertyKey_MaxH264SliceBytes. 但是,我无法设置kVTCompressionPropertyKey_MaxH264SliceBytes. VTCompressionSession它返回 -12900 错误代码 (kVTPropertyNotSupportedErr),并且 VTCompressionProperties.h 文件中的描述说“如果 H.264 编码器支持,该值会尽可能限制编码器生成的切片的字节大小。”

所以我知道某些编码器设置支持使用此属性。有人知道那个设置是什么吗?

谢谢。

0 投票
6 回答
52439 浏览

objective-c - 如何使用 VideoToolbox 解压 H.264 视频流

我在弄清楚如何使用 Apple 的硬件加速视频框架来解压缩 H.264 视频流时遇到了很多麻烦。几周后,我想通了,想分享一个广泛的例子,因为我找不到。

我的目标是给出一个在WWDC '14 session 513中介绍的 Video Toolbox 的全面、有启发性的示例。我的代码不会编译或运行,因为它需要与基本的 H.264 流(如从文件读取的视频或从在线流等)集成,并且需要根据具体情况进行调整。

我应该提到,除了我在谷歌搜索该主题时学到的知识外,我对视频编码/解码的经验很少。我不知道关于视频格式、参数结构等的所有细节,所以我只包括了我认为你需要知道的内容。

我正在使用 XCode 6.2 并已部署到运行 iOS 8.1 和 8.2 的 iOS 设备。

0 投票
2 回答
993 浏览

ios - VideoToolbox 无法正确解码 MFT 编码的 H264

有没有人遇到过 VideoToolbox 无法正确解码 Media Foundation Transform (MFT) 编码的 H264 的问题?解码后的帧有一半以上的绿色块失真。我尝试了Livy Stork 的示例来解码 MFT 编码的 H264,它通过网络从 Windows 7 桌面上运行的 PC 视频端点传输。我正在使用 Xcode 6.3 并在 iOS 8 设备上运行它。

线索:当 MFT 编码的 H264 来自在 Windows 8 或 8.1 桌面/平板电脑上运行的 PC 视频端点时,相同的算法可以正常工作。根据MSDN,大多数编解码器属性在 Windows 7 中不受支持,但我无法弄清楚哪个属性有所不同......

0 投票
0 回答
338 浏览

ios - iOS:VideoToolBox解压h263视频异常

我正在使用VideoToolBox进行H263解压。但是在解码4CIF视频流时,输出像素数据都是0值,并且没有错误信息。

我不知道为什么会这样,因为具有 CIF 分辨率的视频流已正确解压缩。

有没有人有同样的问题?

这是我的一段代码:


我尝试使用 VideoToolBox 压缩 H263,我以 4CIF 的分辨率进入会话,并将 4CIF NV12 图像推送到压缩会话,但 H263 流的输出是 CIF 分辨率!

VideoToolBox在压缩和解压缩上都不能支持4CIF H263 Video吗?

0 投票
0 回答
1353 浏览

ios - CVPixelBufferPoolCreatePixelBuffer 中的内存泄漏

目前我正在调试一些代码。它的作用是将电影文件读入帧数组,对帧应用一些转换并将所有内容编译回视频文件。我已经修复了我自己调用的所有内存泄漏,剩下的一个非常严重。处理后它会留下近 400 mb 的内存。这是泄漏的屏幕截图。

CVPixelBufferPoolCreatePixelBuffer 中的内存泄漏

如您所见,更高级别的调用仅在 VideoToolbox 库中。然而,我什至没有将这个库包含在我的项目中。我不相信 Apple 的库会出现这种泄漏,对此我无能为力。

这是唯一使用调用树中提到的与 h264 和解码相关的代码的代码。

0 投票
1 回答
2260 浏览

ios - AVFoundation 与 VideoToolbox - 硬件编码

所以这是一个更具理论性的问题/讨论,因为我无法通过阅读其他 SO 帖子和来自网络的资源得出明确的答案。似乎有很多选择:

Brad Larson 对 AVFoundation 的评论

视频解码加速

视频工具箱

如果我想在 iOS 上对 H.264 (mov) 文件进行硬件解码,我可以简单地使用 AVFoundation 和 AVAssets,还是应该使用 VideoToolbox(或任何其他框架)。使用这些时,我如何在运行项目时对硬件性能进行分析/基准测试?- 只是在 XCode 的“调试导航器”中查看 CPU 使用率?

简而言之,我基本上是在问 AVFoundation 和 AVAssets 是否执行硬件编码?它们是否足够,我如何对实际性能进行基准测试?

谢谢!

0 投票
1 回答
5802 浏览

ios - 如何为 VTCompressionSession 设置比特率

我正在努力将我们的应用程序从一些专有编解码器转移到 iOS 本机 h264 编码器(VideoToolbox.framework)并且有疑问:

有没有办法为压缩数据设置比特率或数据率?

这是我创建编码器会话的方式:

我玩过很多不同的价值观,kVTCompressionPropertyKey_AverageBitRate但这对我没有任何帮助,我也尝试 kVTCompressionPropertyKey_DataRateLimits过不同的价值观,但也没有任何运气。

欢迎任何想法,建议

0 投票
1 回答
627 浏览

ios - 在 WWDC2014 中使用 VTCompressionSession

这个库的文档基本上不存在,所以我真的需要你的帮助。

目标:我需要 H264 编码(最好同时使用音频和视频,但只是视频就可以了,我只需播放几天就可以让音频工作)所以我可以将它传递到 MPEG 传输流中。

我所拥有的:我有一个记录和输出样本缓冲区的相机。输入是相机后盖和内置麦克风。

几个问题:A. 是否可以让相机以 H264 格式输出 CMSampleBuffers?我的意思是,2014 年的它是从 VTCompressionSessions 生成的,但是在编写我的 captureOutput 时,我看到我已经得到了一个 CMSampleBuffer... B.如何设置 VTCompressionSession?会话如何使用?一些关于此的总体顶级讨论可能会帮助人们了解这个几乎没有文档记录的库中实际发生的事情。

代码在这里(如果需要,请询问更多;我只放 captureOutput 因为我不知道其余代码的相关性):

谢谢大家!

0 投票
1 回答
1620 浏览

c++ - OSX、VideoToolbox、压缩会话

环境

  • OSX优胜美地
  • 代码 6.4
  • C++

用例

给定一个由单个关键帧和多个相应的增量帧组成的 h264 GOP,解码 GOP,然后编码单个4.2Mbit关键帧

问题描述

我能够解码 GOP 并对关键帧进行编码,但是,生成的关键帧质量低(低比特率),也就是说,尽管我专门将比特率设置为 4.2Mbit(这可以在下面的代码快照中可以看到),记住我只需要一个关键帧,有没有办法设置 VideoToolBox 编码器以输出高比特率关键帧?

ctx.keyFrame最终质量非常低