Qt Multimedia 介绍和环境搭建

Qt Multimedia 在Qt5 中发生了很大的变化,在Qt5 中针对multimedia部分做了全新的修改,使用新的digia 自己的 Qt QMultimedia 框架进行实现。

主要支持的平台是 android, linux, windows。

在Andorid 中Qt 通过JNI 接口实现Multimedia 功能。(如果在Android中移植了gstreamer,同样可以调用gstreamer的多媒体接口)

在Linux 中Qt通过封装gstreamer的接口实现(主要是playbin2) Multimedia 功能。

在Windows中Qt通过封装directshow的接口实现 Multimedia 功能。

同时Qt也提供了基于WMF实现的多媒体功能模块,但是功能会比directshow 少一些,比如camera部分的支持。


因为 android 和 windows的多媒体功能不存在太多的配置,都是默认实现的功能,下面我主要针对linux 平台的多媒体进行描述。


软件平台 Ubuntu13.04

下面内容主要在Ubuntu13.04 搭建Qt Multimedia 环境:

1) 安装gstreamer 相关Lib, 安装gstreamer0.10-*

gstreamer 已经有了1.*的版本,但是目前Qt对gstreamer最新的版本支持并不太好,所以还是使用gstreamer0.10-*

 sudo apt-get install gstreamer0.10-*


2) 安装相应的解码器

sudo apt-get install  ffmpeg lame faad sox mjpegtools

这里主要选择 ffmpeg


3) 如果是嵌入式linux

如果是嵌入式linux ,之前的步骤1和步骤2 做起来会非常的麻烦,

主要原因是我们需要针对多媒体相关的编码,解码,字幕,音频输出,视频输出,硬件的layout 做支持和移植。

这些部分又存在着大量的license问题,所以需要做的工作量非常大。

所以需要在嵌入式linux 平台上做移植我们需要做几件事情:

1) 确定需要的编码,解码和字幕格式。

2)是否支持硬件的layout。

3) 在gstreamer 和ffmepg中确认对应的格式和license 授权

4) 研究需要移植的gstreamer 模块需要的第三方依赖。

5) 交叉编译需要依赖的开发包(这个部分的工作量非常的大),需要多次的迭代确定可用的版本和各个依赖包的兼容性。

6) 交叉编译gstreamer 模块

7) 结束


4)编译Qt

编译Qt 参见

http://qt-project.org/wiki/Building_Qt_5_from_Git

如果您的系统已经有了gstreamer框架,无论是嵌入式linux还是ubuntu,Qt都会去系统目录查找,如果有gstreamer,则Qt会自动编译multimedia 模块。


5)到这里Qt 的多媒体模块已经编译成功,下面做简单的开发示例。



你可能感兴趣的:(Qt,Multimedia)