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

一.效果

二.实现

为了控制视频的显示路数,通常需要做通道切换,这里提供了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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章