基于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,