好贷网好贷款

WebRTC源码分析1视频显示

发布时间:2016-12-4 5:58:39 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"WebRTC源码分析1视频显示",主要涉及到WebRTC源码分析1视频显示方面的内容,对于WebRTC源码分析1视频显示感兴趣的同学可以参考一下。

来源:http://blog.csdn.net/lezhiyong WebRTC是google一项在浏览器内部进行实时视频和音频通信的技术,其他关于WebRTC具体介绍和来源,大家google一下基本能知道,Webrtc里面的系统架构清晰精妙,代码风格良好,如此好的东西能开源出来,无论是学习还是使用,我们受益匪浅。    Webrtc的底层的结构相当清晰,就视频来说分视频采集、视频处理、视频编解码、视频显示、视频录制几个典型模块。 所属模块:video_render_module 接口路径:webrtc\trunk\src\modules\video_render\main\interface\video_render.h 代码路径:webrtc\trunk\src\modules\video_render\main\source 通过video_render.hVideoRender提供的对外接口完成render的创建和调用,代码结构如下图所示: 可见video_render模块通过继承IVideoRender实现多操作系统以及第三方数据的支持,通过继承IVideoRenderWin实现D3D和DirectDraw支持。最后通过VideoRender提供的接口给应用层调度。 video_render提供的功能挺强大的,支持插入字幕,支持插入图片、支持一个视频窗口显示多路视频,支持D3D,DDRAW,支持多操作系统,这些功能足够胜任日常使用了。   关于video_render模块VideoRender的使用方法,可以从webrtc\trunk\src\modules\video_render\main\test\testAPI目录下的testAPI.cpp文件了解得清清楚楚。   大致步骤: 1、 创建VideoRender对象: VideoRender* renderModule= NULL; renderModule =VideoRender::CreateVideoRender(myId, window, false, windowType);  VideoRenderCallback* renderCallback0 = renderModule->AddIncomingRenderStream(streamId0,0, 0.0f, 0.0f, 1.0f, 1.0f);    assert(renderCallback0 != NULL); 2、获取VideoRenderCallback并通过renderModule->StartRender启动render    const int streamId0 = 0;    VideoRenderCallback* renderCallback0 = renderModule->AddIncomingRenderStream(streamId0,0, 0.0f, 0.0f, 1.0f, 1.0f); error = renderModule->StartRender(streamId0); 3、调用RenderFrame逐帧显示    renderCallback0->RenderFrame(streamId0, videoFrame0); 4、停止render    error = renderModule->StopRender(streamId0);     error = renderModule->DeleteIncomingRenderStream(streamId0);

上一篇:jQuery EasyUI API 中文文档 - 菜单(menu)
下一篇:黑马程序员--异常在子父类覆盖中的体现

相关文章

相关评论