如何将过滤器附加到 QuickBlox 的 videoTrack?
Posted
技术标签:
【中文标题】如何将过滤器附加到 QuickBlox 的 videoTrack?【英文标题】:How Can I append filters to videoTrack of QuickBlox? 【发布时间】:2016-11-18 13:24:36 【问题描述】:我正在使用 QuickBlox android SDK,版本 3.0。我的应用需要进行面部检测或将一些过滤器附加到视频轨道。我使用 OnQBVideoChatListener 找到了一些答案。
private OnQBVideoChatListener qbVideoChatListener = new OnQBVideoChatListener()
@Override
public void onCameraDataReceive(byte[] videoData)
@Override
public void onMicrophoneDataReceive(byte[] audioData)
@Override
public void onOpponentVideoDataReceive(byte[] videoData)
@Override
public void onOpponentAudioDataReceive(byte[] audioData)
;
但我在 QuickBlox Android SDK 3.0 的任何 aar 中都找不到它。
我的问题是:
1) 是否可以从 Android SDK 3.0 的视频轨道获取 YUV 字节数据或 OpenGL 纹理?
2) 如何将相机帧数据写回视频轨道?
如有任何帮助,将不胜感激!
编辑 1:
vfite 是对的。 SurfaceViewRenderer.renderFrame(I420Frame frame) 是这个问题的关键。所以我从 QBRTCSurfaceView 扩展了一个类。
public class CustomRTCSurfaceView extends QBRTCSurfaceView
private static final String TAG = "CustomRTCSurfaceView";
public CustomRTCSurfaceView(Context context, AttributeSet attrs)
super(context, attrs);
public CustomRTCSurfaceView(Context context)
super(context);
@Override
public void renderFrame(VideoRenderer.I420Frame frame)
//append filters or do modification as you wish
VideoRenderer.I420Frame newFrame = getNewFrame();
super.renderFrame(newFrame);
但这只是改变当前端的框架效果,如何将此效果应用到对等连接的另一端?我可以使用任何自定义参数机制吗?
【问题讨论】:
【参考方案1】:您可以在 QBRTSession 上注册 QBRTCClientVideoTracksCallbacks 并接收自己和对手的视频轨道。要从视频轨道获取实际帧,您可以使用
在视频渲染器上注册视频回调currentSession.addVideoTrackCallbacksListener(this);
@Override
public void onRemoteVideoTrackReceive(QBRTCSession session, final QBRTCVideoTrack videoTrack, final Integer userID)
videoTrack = ..;
videoTrack.addRenderer(new VideoRenderer(new VideoRenderer.Callbacks()
@Override
public void renderFrame(VideoRenderer.I420Frame i420Frame)
//then check if frame contains yuv format or oes
if (frame.yuvFrame)
drawYUV(frame.width, frame.height, frame.yuvStrides, frame.yuvPlanes);
else
drawOes(frame.textureId, frame.width, frame.height);
));
【讨论】:
感谢您的回复!我已经编辑了我的问题,你能发表评论吗?以上是关于如何将过滤器附加到 QuickBlox 的 videoTrack?的主要内容,如果未能解决你的问题,请参考以下文章