基于live555的rtsp播放器之十九:实现多路切换

点点圈 提交于 2021-01-26 08:16:34

一.效果

二.实现

为了控制视频的显示路数,通常需要做通道切换,这里提供了1通道+4通道+9通道+16通道,其他通道基本上不会用到,因为一般来说,超过9个通道实时显示视频流,建议采用子码流来显示,如果都采用主码流,解码压力大,CPU和内存都吃不消。不过随着CPU、显卡和内存的逐步升级,显示16个通道的实时视频已无压力。
在Qt中,各种通道的切换可以用QGridLayout实现。每路视频封装成一个widget,初始化时,创建32个视频widget,设置每个widget的visible为false,并添加到列表中。然后把列表中index为0的widget添加到QGridLayout,并设置该widget的visible为true。这样的话界面启动后默认显示一路视频。

    m_gridLayout=new QGridLayout();
    m_gridLayout->setSpacing(2);

    for(int i=0;i<MAX_CAMERA_COUNT;i++)
    {      
        VideoWidget *videoWidget=new VideoWidget(this);
        connect(videoWidget,&VideoWidget::signalStreamStarted,this,&QHMainWidget::slotStreamStarted);
        connect(videoWidget,&VideoWidget::signalStreamClosed,this,&QH
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!