使用PJSIP与视频支持Windows
Using PJSIP with video support for Windows
我想在Windows程序(Win32/MFC/c++)中使用带有视频支持的PJSIP。通过查看PJSIP项目的站点(http://trac.pjsip.org/repos/wiki/Getting-Started/Windows),我在其他(附加需求)中看到:
- DirectShow SDK,包含在Windows SDK中。
- SDL 2.0或1.3版本
在这种情况下,我需要在我的config_site.h中进行以下配置:
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_FFMPEG 1
#define PJMEDIA_VIDEO_DEV_HAS_SDL 1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
如果我将这两个组件添加到我的PJSIP项目中,一切工作正常,我收到关于来电的通知,我可以从门上的摄像机显示/捕获视频。
我的问题:我真的需要这两个组件(SDL和DirectX/DirectShow)的Windows程序吗?这意味着,我是否必须需要SDL(我想不是),如果是,我是否也需要DirectX ?为什么我不能在Windows上使用OpenGL ?也许有人有这个主题的经验-我会感谢你的帮助!
你肯定需要DirectShow。不确定是否需要SDL…
DirectShow提供了Windows中视频捕获源的流接口。虽然DirectShow本身主要是一组用户模式组件,但提供的视频捕获过滤器(通常是KsProxy.ax)通过一组定义的接口和属性与内核级捕获驱动程序通信。一些相机制造商选择提供他们自己的用户模式DirectShow捕获过滤器与私有(通常是内核)接口到他们的硬件,这使得DirectShow为所有Windows视频捕获设备的公共接入点。
SDL提供了一个跨平台库,可以快速访问显示。PJSIP中的编解码器使用它将解码后的视频显示到显示器上。
看起来PJSIP 可能支持使用DirectShow作为呈现过滤器。看到的:http://svn.pjsip.org/repos/pjproject/trunk/pjmedia/src/pjmedia-videodev/dshow_dev.c
从源代码中不清楚是否在第52行启用DirectShow渲染器的代码如果启用,将起作用:
/* Temporarily disable DirectShow renderer (VMR) */
#define HAS_VMR 0
因为这被注释掉了,我认为代码没有完全完成,这就是为什么所有的例子都需要SDL。
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何在 Windows x64 上编译支持 fips 的 openssl?
- Windows 脚本主机 - 错误 '800A01B6' 对象不支持此属性或方法
- 如何在 Windows 异常处理程序中设置 MMX 寄存器以模拟不受支持的 3DNow! 说明
- Windows Qt 二进制安装程序是否支持开箱即用的 DBus
- 拥有带有InfiniBand的Windows Azure A8节点支持如何从一个节点发送N个字节并在另一个节点上接收
- 支持 Windows 的 P2P C++ 库
- Windows是否支持从内存运行程序
- 哪些适用于 Windows 的 C++11 编译器支持新的类型特征,如"is_nothrow_move_constructible"?
- 无法在支持Windows应用商店的情况下生成C++库
- 如何使Windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页
- GMock 和 Gtest 支持 Windows 10 Universal 平台
- 编译支持 OpenSSL 的 Windows Phone 8.1 Qt 5.5 时出现问题
- Visual Studio 2013 中的 Windows XP 和 Windows Server 2003 支持
- 这是存储 std::分配器状态的正确方法 - 在这种情况下,由 Windows 上的共享内存支持
- Windows Core Audio Api在捕获设备上获取所有支持的格式
- 完全支持C++11的Windows C++编译器(应与Qt一起使用)
- Boost是否支持Windows EnterCriticalSection API
- 使用PJSIP与视频支持Windows
- 如何确定驱动器是否支持 Windows XP 中的硬链接