问题标签 [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 投票
1 回答
2438 浏览

ios - iOS 上的 VideoToolbox 示例?

我看到各种文章指出 iOS8 能够对 h264 进行硬件编码。

然而,我很难找到任何真正的代码示例,而且我很难找到一个开始的地方。

例如,理想情况下,我希望能够创建可用于 HLS 流的 h264 编码段。

我从哪里开始使用 videotoolbox?

0 投票
0 回答
359 浏览

h.264 - VTDecompressionSessionCreate 给出错误 -12911

我正在使用视频工具箱来解码通过 RTSP 接收的 H264 帧。一切顺利,但使用 5 天后(无需重新启动手机)尝试创建新的解压缩会话时出现错误 -12911。如果我删除并重新安装该应用程序,它不会恢复,只有当我重新启动手机时。

有没有人遇到过这个问题?

0 投票
1 回答
1356 浏览

video-toolbox - VTCompressionSessionCreate 总是崩溃

当我想通过使用 VTCompressionSessionCreate 创建 VTCompressionSessionRef 时,这是崩溃,谁能告诉我为什么??????

崩溃时状态始终为-12912。

0 投票
0 回答
259 浏览

ios - AVSampleBufferDisplayLayer 像素化和滞后

我正在尝试使用 AVSampleBufferDisplayLayer 和 ffmpeg 在 iOS 上播放网络流。我已经在How to use VideoToolbox to decompress H.264 video stream的帮助下显示了视频。

然而,当视频流中有大量运动时,我会得到很多延迟、像素化,并且图片看起来非常块状。有没有人遇到过这个?

0 投票
2 回答
1001 浏览

ios - 带有 VTDecompressionSession 的 AVSampleBufferDisplayLayer

我一直在努力解决 AVSampleBufferDisplayLayer 的动作非常不稳定。当我的直播流中有运动时,它会像素化并半冻结,同时显示多个帧。但是,一旦我添加了以下代码,一切都解决了:

请注意,我之前确实创建了解压会话,但实际上我并没有在回调中做任何事情。我仍在调用 enqueueSampleBuffer: 在 AVSampleBufferDisplayLayer 上,这就是视频在屏幕上的显示方式。

您是否必须为 AVSampleBufferDisplayLayer 调用 VTDecompressionSessionDecodeFrame 才能正确显示?我认为 AVSampleBufferDisplayLayerr 会在内部使用 VTDecompressionSessionDecodeFrame。这是因为在 iOS 模拟器上吗?

0 投票
1 回答
661 浏览

encode - 使用 VideoToolbox API 在 iOS 上的 H.264 硬件加速编码不受比特率限制

在 iOS 上使用带有属性 kVTCompressionPropertyKey_AverageBitRate 的 VideoToolbox API 的 H.264 硬件加速编码的比特率不受限制。

据观察,尽管编码器的比特率配置正确,但 H.264 硬件加速编码的比特率有时高达 4mbps(对于 1280x780、640x360)。这个高比特率值不在可接受的范围内。*有一个用于设置比特率的属性,即 videoToolbox 中可用的 kVTCompressionPropertyKey_AverageBitRate。文档说“这不是硬限制;比特率可能会超过这个峰值”。

我尝试了以下两件事: 1. 将比特率和设置数据速率设置为一些硬编码值,作为 init 中 VTCompressionSessionCreate 的 encoderSpec 属性的一部分。删除了初始化后比特率的任何重新配置​​/设置。2. 使用 VTSessionSetProperty 运行时设置比特率和设置数据率

两者似乎都不起作用。

有没有办法将比特率限制在一定范围内?任何帮助是极大的赞赏。

0 投票
1 回答
1176 浏览

ios - 使用视频工具箱从 iOS 硬件加速编码的输出回调中获取压缩状态为 -12902(kVTParameterErr)

我尝试使用 CVPixelBufferCreateWithPlanarBytes。我没有看到 CVPixelBufferCreateWithPlanarBytes、VTCompressionSessionEncodeFrame 返回任何错误。但是输出回调给出了一个错误 kVTParameterErr。所有 API 的所有参数似乎都很好。注意:同一段代码在 mac 上运行良好。

0 投票
1 回答
1620 浏览

ios - H.264:VTDecompressionSessionDecodeFrame 失败,代码为 12909

我正在显示来自 IP 摄像机的 RTSP 流。我想avcodec_decode_video2用 VideoToolbox 框架替换这个方法。我对视频数据处理有点陌生,所以我有点迷茫......

我已经从这里这里测试了这两种解决方案,但我最终以这种方法失败VTDecompressionSessionDecodeFrame

我怀疑这是来自会话,因为如果我VTDecompressionSessionCanAcceptFormatDescription在创建会话后立即调用它,结果是NO.

这是我的会话的创建方式:

我也不确定要使用的数据。我可以在 AVPacket.data、AVCodecContext.extradata、AVPacket.buf->data 之间进行选择。谁能告诉我应该使用哪一个(也许还有另一个)?

提前谢谢,

PS.:这是我的第一篇文章;让我知道它是否没有正确呈现/解释。

0 投票
0 回答
2015 浏览

ios - FFmpeg 在 iOS 上启用 videotoolbox

我为 iOS 构建了 FFmpeg 并启用了 VideoToolbox,但是在解码视频使用函数 avcodec_decode_video2 时,它不使用 VideoToolbox,并且在 iPhone 上非常慢。我在这里使用示例 demuxing_decoding:https ://ffmpeg.org/doxygen/trunk/demuxing_decoding_8c-example.html 并尝试设置 VideoToolbox 解码但没有成功。

有没有人遇到过这个问题?

0 投票
1 回答
657 浏览

objective-c - 是否可以使用 iOS 8 中的 Video Toolbox 解压缩所有 H.264 视频流?

我遇到了一些 h.264 视频文件,它们在使用 Video Toolbox 解码时在屏幕上显示大面积绿色而没有任何错误,而我可以成功解码大多数其他 h.264 视频文件。