发明名称 基于端口号和IP地址的多视频转发方法
摘要 本发明公开了一种基于端口号和IP地址的多视频转发方法,属于视频传输领域。本发明包括视频服务器、转发服务器和终端,该视频服务器将多路视频发送给该转发服务器,该转发服务器将对应的视频转发给需视频传输的终端;在转发服务器向需视频传输的终端转发对应的视频时,转发服务器通过主线程实现终端信息和子线程启闭的更新,通过子线程实现视频的转发,并且每一路视频对应于一个单独的子线程,每一子线程对应于一个端口号。本发明保证了线程之间的并发执行,互不干扰;此外实现对子线程启闭的控制,不仅保证了多路视频的同时转发,而且防止减少的线程占用带宽,降低了视频传输成本,使得视频传输的效果较好。
申请公布号 CN102647625B 申请公布日期 2014.02.26
申请号 CN201210135132.6 申请日期 2012.05.03
申请人 重庆邮电大学;重庆信科设计有限公司 发明人 李校林;李津;杨丰瑞;刘辉
分类号 H04N21/266(2011.01)I;H04N21/63(2011.01)I;H04N21/64(2011.01)I 主分类号 H04N21/266(2011.01)I
代理机构 重庆市前沿专利事务所(普通合伙) 50211 代理人 郭云
主权项 一种基于端口号和IP地址的多视频转发方法,包括多个终端,其特征在于:还包括转发服务器,该转发服务器用于接收多路视频并将对应的视频转发给需视频传输的终端;在转发服务器向需视频传输的终端转发对应的视频时,转发服务器通过主线程实现终端信息和子线程启闭的更新,通过子线程实现视频的转发,并且每一路视频对应于一个单独的子线程,每一子线程对应于一个端口号;该转发服务器创建待分发链表来存储更新后的终端信息,并创建线程链表来存储增加和减少的端口号,从而实现该端口号对应的子线程的启闭,其中该终端信息包括终端的端口号和IP地址,该线程链表具有线程链表标记位变量;该多视频转发方法包括该转发服务器定时获取终端信息,并且通过主线程对子线程的启闭进行控制的步骤:S10、将该线程链表的线程链表标记位变量初始化为0,创建第一分发链表和第二分发链表,并且建立分发线程数组,该分发线程数组由多个第二元素组成,每一第二元素均对应于一个端口号并由该第二元素的下标来表示该端口号,每一第二元素均存储有一个变量:分发线程标记位;S11、该第一分发链表用于获取上次需视频传输的终端信息并进行排序,该第二分发链表用于获取本次需视频传输的终端信息并进行排序;S12、创建第一端口号链表和第二端口号链表,该第一端口号链表用于获取第一分发链表中终端信息的端口号并进行排序、删除重复元素,该第二端口号链表用于获取第二分发链表中终端信息的端口号并进行排序、删除重复元素;S13、求取第二端口号链表与第一端口号链表的差集并存储至第一端口差集链表中,由此获得增加的端口号;求取第一端口号链表与第二端口号链表的差集并存储至第二端口差集链表中,由此获得减少的端口号;S14、判断第一端口差集链表和第二端口差集链表是否均为空:如果均为空,则表示端口号未改变,即端口号对应的视频转发子线程未改变,该线程链表中的线程链表标记位变量保持为0,并且将第二分发链表的终端信息赋给第一分发链表;否则表示端口号发生改变,即端口号对应的视频转发子线程发生改变,将线程链表中的线程链表标记位变量设置为1,将第一端口差集链表中的端口号分别赋给线程链表的一个结点并将这些结点的属性值设置为第一值,将第二端口差集链表中的端口号分别赋给线程链表的一个结点并将这些结点的属性值设置为第二值,并且将第二分发链表的终端信息赋给第一分发链表;S15、判断该线程链表的线程链表标记位变量是否为1:如果该线程链表标记位变量为0,则重复执行步骤S11~S15;如果该线程链表标记位变量为1,则进一步判断线程链表中结点的属性值:如果结点的属性值为第一值则在该分发线程数组中查找与该结点中端口号对应的第二元素,并将该第二元素的分发线程标记设置为0,从而开启与该结点中端口号对应的子线程;如果结点的属性值为第二值则在该分发线程数组中查找与该结点中端口号对应的第二元素,并将该第二元素的分发线程标记设置为1,从而关闭与该结点中端口号对应的子线程;并且将该线程链表中的线程链表标记位变量重新设置为0,重复执行步骤S11~S15。
地址 400065 重庆市南岸区崇文路2号重庆邮电大学