Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于RTSP协议的视频实时传输模式设计方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:天津津航计算技术研究所

摘要:本发明涉及一种基于RTSP协议的视频实时传输模式设计方法,属于视频编解码领域。本发明提供上层用户命令接口,视频处理模块板卡通过udp通信接收上层用户指令;根据用户命令指令进行视频实时收发;从网络接收用户发送的原始视频数据并按照RTSP协议获取视频数据,通过用户指定的参数进行视频解码模块的设置,该模块解码后的数据经过视频处理模块传输到视频输出模式显示,同时视频处理模块还将数据传输到视频编码模块进行视频再次加工;接收到用户停止指令后,将编解码模块的绑定关系解除并清除系统资源;接收到用户退出程序指令后,退出主循环流程。本发明有效地减少视频传输中丢帧和花屏现象。

主权项:1.一种基于RTSP协议的视频实时传输模式设计方法,其特征在于,该方法包括如下步骤:S1、提供上层用户命令接口视频处理模块板卡通过udp通信接收上层用户指令,指令类型如下:视频传输开始;视频传输结束;退出程序;S2、根据用户命令指令进行视频实时收发首先,主函数初始化udp通信,然后,进入通讯主循环,在主循环中遍历查询用户命令字内容,根据不同工作模式进行不同工作流程;S21、视频传输流程该流程从网络接收用户发送的原始视频数据并按照RTSP协议获取视频数据,通过用户指定的参数进行视频解码模块的设置,该模块解码后的数据经过视频处理模块传输到视频输出模式显示,同时视频处理模块还将数据传输到视频编码模块进行视频再次加工,该过程通过用户指定的参数进行视频编码模块的设置,接收视频处理模块传输的数据,将处理加工后的数据按照RTSP协议规则发送;S22、视频通信停止设置接收到用户停止指令后,将编解码模块的绑定关系解除并清除系统资源;S23、主循环停止设置接收到用户退出程序指令后,退出主循环流程;其中,所述步骤S2首先,主函数初始化udp通信,然后,进入通讯主循环,在主循环中遍历查询用户命令字内容,根据不同工作模式进行不同工作流程具体包括:首先,主函数初始化udp通信线程;设定UDP套接字,创建UDP接收线程;在线程入口函数中遍历查询是否退出网络接收任务,如果是则退出入口函数的循环,如果不是则从网络套接字接收网络报文,分析报文合法性并解析命令字;启动锁机制对报文提取的命令字内容进行变量写操作,防止与主循环读操作冲突;然后,进入传输主循环;在主循环中遍历查询用户命令字内容,根据不同工作模式进行不同工作流程;所述步骤S21具体包括如下步骤:S211、启动视频接收任务;S212、启动视频解码任务;S213、绑定视频解码模块和视频处理模块、视频处理模块和视频输出模块,创建好绑定关系的模块能自动化形成流水线处理视频数据;视频解码模块的数据发送到视频处理模块进行再次处理,视频处理模块进行再加工的数据输出到视频输出模块进行显示,可查看拉流回来的原始视频图像;视频解码模块用于视频叠加、缩放功能;S214、启动视频发送任务;所述步骤S211具体包括如下步骤:S21101、使用ffmpeg动态库函数av_dict_set配置视频流传输过程属性;S21102、注册ffmpeg上下文环境format_ctx,初始化ffmpeg内部组件;S21103、对网络功能进行全局初始化;S21104、使用avformat_open_input库函数打开媒体文件的url地址,并进行解析,如果打开错误则报错退出该过程等待下次视频传输,否则进入下一步;S21105、使用avformat_find_stream_info库函数读取媒体文件的数据包获取视频流信息,获取成功则退出该过程等待下次视频传输,否则进入下一步;S21106、初始化视频流video_stream_index和音频流索引audio_stream_index;S21107、循环遍历上下文环境format_ctx中的获取的流数据包个数,直到所有流数据包遍历完成进入第S21112步;S21108、判断当前流数据类型是否为音频流,如果是则进行下一步,否则进行第S21110步;S21109、记录音频流的索引号,并保存在audio_stream_index标记中;S21110、判断当前流数据类型是否为视频流,如果是则进行下一步,否则返回到S21107步;S21111、记录视频流的索引号,并保存在video_stream_index标记中;S21112、判断视频流索引video_stream_index是否为初始值,如果是则退出本次视频传输过程,否则进入下一步;S21113、判断视频流索引video_stream_index是否为初始值,如果是则提示没有音频流,否则进入下一步;S21114、使用av_packet_alloc库函数动态申请数据包packet对象;S21115、进入视频流传输循环;S21116、申请互斥锁资源,获取退出标志,释放互斥锁资源;S21117、查看退出标识是否为真,如果是,则退出该传输循环过程,如果不是则进行下一步;S21118、使用av_read_frame函数从数据包中读取完整图像帧信息,读取成功则进入下一步,否则跳转到S21116步;S21119、判断图像帧序号和步骤S21111中记录的视频流序号一致时,进行下一步,如果不是则进行第S21123步;S21120、判断数据包中的数据是否不为null且大小不为0,如果是则进行下一步,不是则进行第S21123步;S21121、创建解码通道对象,设置该次解码任务的协议类型、图像数据格式、帧模式或者流模式;S21122、将图像帧存入环形缓冲区并从环形缓冲区取帧发送给解码任务;S21123、释放数据包对象资源;S21124、释放上下文环境资源;所述步骤S214具体包括:S21401、设置服务器信息属性;S21402、设定视频发送环形缓存池和TCP监听端口,创建线程循环监听外界的TCP连接请求,并建立TCP连接;S21403、创建监控环形缓存池数据线程,并根据数据创建TCP会话;S21404、根据编码模块、编码模式、通道号、编码协议类型、图像大小、编码模式启动编码任务;S21405、当监听到TCP连接建立后就启动视频发送任务:将上一个步骤的环形缓存区数据按照RTSP协议发送出去;所述步骤S22具体包括如下步骤:S221、循环等待接收到用户停止指令,将视频传输的全局变量标识进行关闭锁操作后再进行写操作,然后打开锁操作;S222、在视频通信线程中启动锁机制监听该标识的改变状态,根据状态值启动线程销毁流程;S223、将编解码模块和视频处理模块、输出模块的绑定关系解除并清除板卡系统资源;S224、将视频接收和发送的线程终止,并清除网络资源;所述步骤S23具体包括如下步骤:S231、循环等待接收到用户退出程序指令;S232、将退出应用程序的全局变量标识进行关闭锁操作后再进行写操作,然后打开锁操作;S233、在主线程中启动锁机制监听该标识的改变状态,退出主循环流程,不再接收用户的任何指令。

全文数据:

权利要求:

百度查询: 天津津航计算技术研究所 一种基于RTSP协议的视频实时传输模式设计方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。