我目前正在尝试对传入的 WebRTC 视频流进行一些修改Swift 中适用于 iOS 的 AppRTC 应用程序 https://github.com/Mahabali/Apprtc-swift(这又基于this https://github.com/ISBX/apprtc-ios/Objective-C 版本)。为此,我需要访问存储在类 RTCI420Frame 的帧对象中的数据(这是 Objective-C 实现的基本类)libWebRTC https://github.com/js-platform/libwebrtc)。特别是,我需要一个字节数组:[UInt8] and Size的帧。该数据将用于进一步处理和添加一些过滤器。
问题是,RTCVideoTrack / RTCEAGLVideoView 上的所有操作都是在预编译的引擎盖下完成的libWebRTC.a,它是从上面链接的官方 WebRTC 存储库编译的,获得它的自定义构建相当复杂,所以我更愿意使用示例 iOS 项目中可用的构建;根据我的理解,它应该具有所有可用的功能。
我正在研究 RTCVideoChatViewController 类,特别是,远程查看 / 远程视频轨道,但没有成功访问帧本身,花了很多时间研究官方存储库中的 libWebRTC 源代码,但仍然无法解决访问帧数据以进行自己操作的问题。很高兴获得任何帮助!
发布问题后,我很幸运地找到了偷偷摸摸的数据!
您必须将以下属性添加到 RTCEAGLVideoView.h 文件:
@property(atomic, strong) RTCI420Frame* i420Frame;
In the 原始实施文件 https://github.com/js-platform/libwebrtc/blob/7848af36d86a4bbe8569693a1169123ad67c8905/talk/app/webrtc/objc/RTCEAGLVideoView.m有i420框架属性,但它没有在该类的 iOS 项目的头文件中公开。添加该属性允许您获取视图的当前帧。
我仍在寻找一种更优雅的方式来直接获取流数据,而不需要查看remoteView内容,一旦找到它就会更新答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)