我希望能够使用我在 Qt 中执行的应用程序观看视频流,我首先检查了 vlc,但它的 GPL,而且我不需要它的所有选项,然后我看到它使用的是 LGPL 的 live555 流,我的问题我可以在 mt Qt 应用程序中使用这个库吗?如何
2 回答
首先,你在什么平台上运行?
您只能将 Live555用于 RTSP/RTP 目的。但是 Live555 不包含任何解码器等。
VLC 内部使用 Live555 进行 RTSP AFAIK,但还包含一堆其他插件、解码器、解复用器等。
您仍然需要一个媒体框架来处理特定于媒体格式的解码、解复用、渲染等。在 Windows 上,这可以使用 DirectShow 完成。在这种情况下,您可以将 live555 包装在 DirectShow 源过滤器中并构建媒体管道。要让视频显示在 Qt 应用程序中,您需要研究如何将 DirectShow 视频渲染器窗口作为父级添加到 Qt 应用程序中。
另一个我不熟悉的跨平台媒体框架是gstreamer。
编辑:
你有看过 Qt Phonon吗?看起来他们已经开始将多媒体集成到框架中,但您必须调查他们是否支持 RTSP,如果不支持,如何将通过 Live555 接收的媒体数据获取到 Qt 媒体管道中。
是的,您可以在应用程序中使用 LGPL 的 Live555 库。前端可以使用 QT、MFC 或 Java 来实现。Live555 提供了用于建立 RTSP 会话的 API,对于音频/视频实现,您可能需要覆盖一些函数。浏览 live555 在其 testProgs 文件夹中提供的示例应用程序。
如果您正在制作商业应用程序,请不要忘记在您的版本中包含 Live555 许可证。