之前的rv1126的推流项目是属于一个单路码流,在实质开发也是比较重要的。用的比较多的所以非常重要,所以这个重点是讲aenc和venc通过数组组合,然后推流到多个流媒体服务器上。
以前推流项目只有一路码流所以只能推流到一个服务器上面,现在多路码流可以同时方法到多个服务器上面。
上图是RV1126多路码流的总体框图,多路码流程序设计的核心是把VENC的数据和AENC数据分别存放到不同的数据队列里面,比方说VENC数据存放到video_queue[0]、video_queue[1]、video_queue[2]。AENC数据存放到audio_queue[0]、audio_queue[1]、audio_queue[2]。
存放完成之后,则通过需求从对应的VENC队列和AENC队列分别拿数据合成音视频复合流。比方说video_queue[0]和audio_queue[0]数据进行合成第一个复合流并推送到对应的流媒体服务器、video_queue[1]和audio_queue[1]数据合成第二个复合流推送到第二个流媒体服务器、video_queue[2]和audio_queue[2]数据合成推送到第三个流媒体服务器。