问题标签 [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.
ios - VTCompressionSessionCreate 适用于 iOS 9 但不适用于 iOS 8
这些简单的代码行(应用程序中没有其他任何内容)在 iOS 9(iPhone 6 和 iPhone 4S)上运行良好,但在 iOS 8(iPhone 5 和 iPod Touch 5G)上运行良好:
我也尝试过使用较低的分辨率,尝试提供部分或全部可选参数,在所有情况下它都适用于 iOS 9,但在 iOS 8 上失败并出现错误 -12902 (kVTParameterErr)。很高兴知道某些参数是错误的,但是在 iOS 9 上哪个参数不被认为是错误的?
请注意,VTCopyVideoEncoderList 确实给了我一个列表,其中所有情况下都存在 avc1 (H264) 编码器。
知道发生了什么吗?
memory-leaks - IOS9-VTDecompressionSessionDecodeFrame 上的内存泄漏
我使用视频工具箱来解码 IOS8.x 上的 h264 数据。这段代码在IOS 9.x上运行时,每次调用VTDecompressionSessionDecodeFrame都会出现内存泄漏,在Instruments工具中看不到任何内存泄漏!
ios - How to set frame rate when using iOS VTCompression to encode video
In my work, I try to use iOS VideoToolBox to encode my video from capture. It worked . But when I try to set the fps, it can not work, the video encode stream's fps always is 30.
In my code, I used this code to try to set fps (but it not work)
ios - 如何将一帧的nalus组合成一个nalu?
在我的情况下,iOS 硬件编码器有时会生成一个 nalu,有时会生成两个构成访问单元/图片的 nalus。当为一张图片生成两个 nalus 时,我通过将第一个 nalu 的起始代码替换为这两个 nalus 的总大小的大小并删除第二个 nalu 的起始代码并将其附加到第一个 nalu 的末尾来将它们组合起来。就这样,0x00000002aaaa 和 0x00000002bbbb 变成了 0x00000004aaaabbbb。但视频在屏幕上显示模糊。那么有人可以教我如何正确组合 nalus 吗?十分感谢。
像这样的一帧有两个 nalus(与此链接中的数据几乎相同(https://forums.developer.apple.com/thread/14212?sr=stream),所以我只是复制它):
在这里,我想结合#1 和#2。
ios - 如何使用 iOS VideoToolbox 和 FFMPEG 对 MP4 流文件进行硬编码?
伙计们!
我在 github 中找到了一个演示:-VideoToolboxDemo。而且我还在stackoverflow how-to-use-videotoolbox-to-decompress-h-264-video-stream中发现了一个问题,有人在github中实现了这个问题:https://github.com/lileilei1119/VTDemo
但是他们在寻找 SPS 和 PPS 方面存在差异。
VideoToolboxDemo 是:
它使用来自 FFMPEG 的 pCodecCtx 的额外数据来查找像 0x00 00 01(或 0x00 00 00 01)这样的起始代码
但是stackoverflow中的介绍是:
使用数据包的数据?
这两种方法我都试过了,还是找不到SPS和PPS的起始码。有谁知道为什么?我的文件有问题吗?
我的 mp4 文件是 http://7u2m53.com1.z0.glb.clouddn.com/201601131107187320.mp4
ios - 解码 H264:VTDecompressionSessionCreate 失败,错误代码为 -12910 (kVTVideoDecoderUnsupportedDataFormatErr)
在 iPad 上运行代码时,使用 VTDecompressionSessionCreate 时出现错误 -12910 (kVTVideoDecoderUnsupportedDataFormatErr),但在 sim 上没有。我正在使用 Avios ( https://github.com/tidwall/Avios ),这是相关部分:
这里pps
和sps
是包含 PPS 和 SPS 帧的缓冲区。
如上所述,奇怪的是它在模拟器上完全可以正常工作,但在实际设备上却不行。两者都在 iOS 9.3 上,我正在模拟与设备相同的硬件。
什么可能导致此错误?
而且,更一般地说,我在哪里可以找到 VideoToolbox 的 API 参考和错误文档?在 Apple 的网站上确实找不到任何相关内容。
macos - VideoToolbox 可以原生解码 H264 Annex B 吗?错误代码 -8969 错误数据
我的目标是将 iDevice 的屏幕镜像到 OSX,尽可能无延迟。
据我所知,有两种方法:
Airplay Mirroring
(例如反射器)CoreMediaIO
通过 Lightning(例如 Quicktime Recording)
我选择了第二种方法,因为(据我所知)连接的 iDevice 可以在一次性设置后自动识别为 DAL 设备。
如何做到这一点的主要资源是这个博客:https ://nadavrub.wordpress.com/2015/07/06/macos-media-capture-using-coremediaio/
该博客非常深入地介绍了如何使用CoreMediaIO
,但是AVFoundation
一旦您将连接的 iDevice 识别为AVCaptureDevice
.
这个问题:如何通过USB镜像iOS屏幕?已经发布了一个关于如何抓取 iDevice 提供的 H264(附件 B)muxxed 数据流的每一帧的解决方案。
但是,我的问题是VideoToolbox
无法正确解码(错误代码 -8969,BadData),即使代码不应该有任何差异。
vtDecompressionDuctDecodeSingleFrame 在 /SourceCache/CoreMedia_frameworks/CoreMedia-1562.240/Sources/VideoToolbox/VTDecompressionSession.c 第 3241 行发出 err=-8969 (err)(VTVideoDecoderDecodeFrame 返回错误)
完整代码:
objective-c - 如何使用 VideoToolbox 将音频与视频一起编码为 h264 格式?
我可以使用视频工具箱框架将从相机设备捕获的视频压缩为 h264 格式,但是当我尝试在 VLC 播放器中播放该 h264 文件时,我无法听到视频的音频。我认为音频压缩也应该在代码中完成。
但是我怎么没有找到任何资源?
ios - VideoToolbox 不会在 Swift 3.0 中为 mpeg4 创建编码器会话
在 Swift 3.0 上迁移后,我发现使用 VideoToolbox 为 MPEG4 编码器创建压缩会话时遇到问题。在迁移之前它工作得很好。
这是我的升级代码:
每次我收到状态错误 -12908 (kVTCouldNotFindVideoEncoderErr)。有趣的一点是,相同的配置但具有
工作完美。
有人知道这里发生了什么吗?
这是我关于将编码器配置的代码更新到 Swift 3.0 的相关问题