qml+Gstream+网络摄像头(rtsp)(实现硬解码和播放),附带源码

原创博文,严禁私自转载,转载请注明出处!!!

硬件平台

芯片:Toradex Colibri imax6DL

底板:Toradex Iris底板

摄像头:海康红外网络摄像头DS-2CD1201D-13,支持rtsp协议

软件平台

开发环境:OS: ubuntu16.04

                  IDE:  Qt Creator 4.7.0 + QT5.9.6embedded

                   Toolchain:cortexa9hf-neon-poky-linux-gnueabi 2.2.4

运行环境:OS:      Linux 4.1.44-2.7.5

                  图形库:   QT5.9.6embedded

             

在Linux下,Qt通过QTmultimedia框架实现了对gstream的封装,在qml中使用QTmultimedia模块即可实现网络摄像头的硬解码和播放,详细介绍如下;

  1. 在Qt工程中调用QTmultimedia5.0模块
  2. 在QTmultimedia5.0中,通过组件Mediaplayer设置数据来源,,通过组件VideoOutputdecoder过来的数据呈现出来
  3. Gstream是一个 基于pipeline的多媒体框架,pipelineGStreamer设计的核心思想,在说pipeline之前先弄一个mediaplayer的模型, 下图就是个典型的meida播放器的模型:

qml+Gstream+网络摄像头(rtsp)(实现硬解码和播放),附带源码_第1张图片

source:数据来源,可能是filehttprtp.

demux: 负责把容器里的音视频数据剥离出来,然后分别送给audio\video  decoder.

decoder:解码,然后把解完后的数据(yuvpcm)送给audio\video output输出.

output:负责将decoder过来的数据呈现出来.

3.利用qml实现在Qt中播放网络流,因为摄像头网络传输协议是rtsp,Qtmultimedia也同时支持接收播放rtsp的网络流,所以在组件Mediaplayer中修改sourse属性,即可实现rtsp协议的网络流的播放

4.摄像头播放程序简介

该程序使用qml语言实现了接收播放网络摄像头的数据,可通过修改Qtmultimediaplayer的组件MediaPlayer的属性source也可实现播放本地文件,,并设计了简单的用户操作界面,该界面具有以下功能:开机动画主窗口fade in和各个窗口的开机动画;视频播放子窗口的缩放,悬浮和可拖动;文本文件显示框;Button的自定义;操作界面如下

qml+Gstream+网络摄像头(rtsp)(实现硬解码和播放),附带源码_第2张图片

附带源码:https://download.csdn.net/download/weixin_42550424/10855966

 

 

你可能感兴趣的:(qml+Gstream+网络摄像头(rtsp)(实现硬解码和播放),附带源码)