CN106254362A - 一种共享sdi数据的方法 - Google Patents
一种共享sdi数据的方法 Download PDFInfo
- Publication number
- CN106254362A CN106254362A CN201610679463.4A CN201610679463A CN106254362A CN 106254362 A CN106254362 A CN 106254362A CN 201610679463 A CN201610679463 A CN 201610679463A CN 106254362 A CN106254362 A CN 106254362A
- Authority
- CN
- China
- Prior art keywords
- sdi
- data
- socket
- subscriber
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Abstract
本发明公开了一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚至不同的设备(进程外于不同的设备上运行)之间进行共享的目的。
Description
技术领域
本发明涉及一种共享SDI数据的方法。
背景技术
SDI采集卡用于采集视音频基带信号。每块SDI采集卡可能具有多个SDI端口,这些端口的访问往往是通过生产厂家提供的SDK进行访问,并且在访问过程中是独占方式的,即使在同一设备内,也没有办法使得两个进程同时访问一个端口。
上面这种情况造成了在SDI信号处理领域,必须前置硬件SDI分配器,将一路SDI信号分成多路。此种方式使得整个系统的建设成本增加的同时又多出了故障点。
发明内容
本发明的目的在于克服现有技术中的不足而提供一种共享SDI数据的方法。
为实现上述目的,一方面,本发明提供的一种共享SDI数据的方法,包括如下步骤:
利用SDI采集卡提供的SDK读取SDI基带数据;
初始化一个TCP Socket作为Server端建立发布点;
通过发布点管理订阅者队列;
通过遍历订阅者队列,获取每个订阅者的Socket,并通过Socket将SDI基带数据发给每个订阅者。
优选地,SDI基带数据包括图像数据和音频数据。
优选地,图像数据包括图像的宽、高、纵横比、帧率、时间戳、时码和数据大小等内容,音频数据包括音频的编码格式、时间戳、时码和数据大小等内容。
优选地,建立发布点的步骤中,当建立发布点后,任何Client通过TCP连接至发布点的Port时,即视为订阅请求,将此连接socket加入订阅者队列,在订阅者队列中的订阅者则会接收到SDI基带数据。
优选地,发布点管理订阅者队列的步骤如下:
创建套接字A;
将套接字A绑定到一个本地地址和端口上;
将套接字A设为监听模式,准备接收客户端请求;
当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字B;
将套接字B追加入订阅者队列的尾部,作为新的订阅者;
将套接字B与对应的订阅者的客户端进程进行数据通信。
根据本发明提供的一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚至不同的设备(进程外于不同的设备上运行)之间进行共享的目的。
附图说明
图1是本发明一实施例的一种共享SDI数据的方法的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明一实施例提供了一种共享SDI数据的方法,包括如下步骤:
利用SDI采集卡提供的SDK读取SDI基带数据;
初始化一个TCP Socket作为Server端建立发布点;
通过发布点管理订阅者队列;
通过遍历订阅者队列,获取每个订阅者的Socket,并通过Socket将SDI基带数据发给每个订阅者。
具体地,如图1所示,本方法依赖一种系统进行SDI数据共享,该系统包括三个模块:
1、数据读取模块:
利用SDI采集卡提供的SDK,读取到图像数据、音频数据及其元数据,在这里统一称之为SDI基带数据。
图像数据(含元数据)包括图像的宽、高、纵横比、帧率、时间戳、时码、数据大小等数据内容。
音频数据(含元数据)包括音频的编码格式、时间戳、时码、数据大小等数据内容。
特别说明的是,在本实施例中中,数据读取模块只要读取到数据就立即发送给发送模块,本地不做缓存。
2、订阅者管理模块:
此模块是用于管理订阅者队列。首先,初始化一个TCP Socket作为Server端来侦听订阅请求和退出请求,侦听Port可以配置。下文中将此称为发布点。
只要任何Client通过TCP连接至此发布点的Port,即视为订阅请求,订阅者管理模块会将此连接socket加入订阅者队列,那么此Client即可接收到SDI基带数据。
当此Client要求退出时,可发送退出命令给Server端,本实施例中使用的退出命令是“bye”三字节组,一旦Server端收到此命令,订阅者管理模块就会把订阅者的连接socket关闭并剔除出订阅者队列,同时订阅者管理模块也不会再发送SDI基带数据给该Client。
订阅者管理模块的发布点(Server端)工作流程如下:
(1)创建套接字(使用系统socket函数),本实施例中套接字为socket A;
(2)将套接字socket A绑定到一个本地地址和端口上(使用系统bind函数);
(3)将套接字socket A设为监听模式,准备接收客户端请求(使用系统listen函数);
(4)等待客户请求到来,当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(使用系统accept函数),本实施例中此套接字为socketB;
(5)将此套接字socket B追加入订阅者队列尾部,作为新的订阅者。数据发送模块使用此订阅者套接字socket B与订阅者的客户端Client进程进行数据通信,当从套接字socket B上接收到“bye”后将此socket B从订阅者队列中移除,视为订阅者注销。
客户端的订阅注册流程如下:
(1)创建套接字(使用系统socket函数),本实施例中套接字为socket C;
(2)向订阅者管理模块的服务器发出连接请求(connect,服务器的IP地址和端口使用其他方式获取),连接成功即完成订阅;
(3)和服务器端进行通信(使用系统recv函数),此时将收到的就是SDI基带数据。
客户端的订阅注销流程如下:
(1)通过套接字socket C发送“bye”三字节(使用系统send函数)。
3、数据发送模块:
数据发送模块用于将数据读取模块读取到的SDI基带数据,通过遍历订阅者队列,获取每个订阅者的Socket,并通过此Socket将SDI基带数据发给每个订阅者。
根据本发明提供的一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚至不同的设备(进程外于不同的设备上运行)之间进行共享的目的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (5)
1.一种共享SDI数据的方法,其特征在于,包括如下步骤:
利用SDI采集卡提供的SDK读取SDI基带数据;
初始化一个TCP Socket作为Server端建立发布点;
通过发布点管理订阅者队列;
通过遍历所述订阅者队列,获取每个所述订阅者的所述Socket,并通过所述Socket将所述SDI基带数据发给每个所述订阅者。
2.根据权利要求1所述的一种共享SDI数据的方法,其特征在于,所述SDI基带数据包括图像数据和音频数据。
3.根据权利要求2所述的一种共享SDI数据的方法,其特征在于,所述图像数据包括所述图像的宽、高、纵横比、帧率、时间戳、时码和数据大小等内容,所述音频数据包括所述音频的编码格式、时间戳、时码和数据大小等内容。
4.根据权利要求1所述的一种共享SDI数据的方法,其特征在于,所述建立发布点的步骤中,当建立所述发布点后,任何Client通过TCP连接至所述发布点的Port时,即视为订阅请求,将此所述连接socket加入所述订阅者队列,在所述订阅者队列中的所述订阅者则会接收到所述SDI基带数据。
5.根据权利要求1所述的一种共享SDI数据的方法,其特征在于,所述发布点管理所述订阅者队列的步骤如下:
创建套接字A;
将所述套接字A绑定到一个本地地址和端口上;
将所述套接字A设为监听模式,准备接收客户端请求;
当所述请求到来后,接受连接请求,返回一个新的对应于此次所述连接的套接字B;
将所述套接字B追加入所述订阅者队列的尾部,作为新的订阅者;
将所述套接字B与对应的所述订阅者的客户端进程进行数据通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610679463.4A CN106254362A (zh) | 2016-08-15 | 2016-08-15 | 一种共享sdi数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610679463.4A CN106254362A (zh) | 2016-08-15 | 2016-08-15 | 一种共享sdi数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106254362A true CN106254362A (zh) | 2016-12-21 |
Family
ID=57592311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610679463.4A Pending CN106254362A (zh) | 2016-08-15 | 2016-08-15 | 一种共享sdi数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106254362A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989470A (zh) * | 2018-08-31 | 2018-12-11 | 杭州当虹科技股份有限公司 | 一种SDIOverIP复用端口数据的方法 |
CN109302435A (zh) * | 2017-07-25 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 消息发布方法、装置、系统、服务器及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916953A (zh) * | 2012-10-12 | 2013-02-06 | 青岛海信传媒网络技术有限公司 | 基于tcp连接实现并发服务的方法及装置 |
CN102981457A (zh) * | 2011-09-06 | 2013-03-20 | 秦皇岛天业通联重工股份有限公司 | 一种工程机械远程监控系统的监控中心及方法 |
CN103516788A (zh) * | 2013-09-13 | 2014-01-15 | 杭州东方通信软件技术有限公司 | 一种数据推送方法及其Flash客户端和服务器 |
CN104506498A (zh) * | 2014-12-10 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 基于socket通信的音视频加速卡数据处理方法及装置 |
CN105631720A (zh) * | 2014-11-03 | 2016-06-01 | 航天信息股份有限公司 | 一种分布式移动开票与管理系统及方法 |
-
2016
- 2016-08-15 CN CN201610679463.4A patent/CN106254362A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981457A (zh) * | 2011-09-06 | 2013-03-20 | 秦皇岛天业通联重工股份有限公司 | 一种工程机械远程监控系统的监控中心及方法 |
CN102916953A (zh) * | 2012-10-12 | 2013-02-06 | 青岛海信传媒网络技术有限公司 | 基于tcp连接实现并发服务的方法及装置 |
CN103516788A (zh) * | 2013-09-13 | 2014-01-15 | 杭州东方通信软件技术有限公司 | 一种数据推送方法及其Flash客户端和服务器 |
CN105631720A (zh) * | 2014-11-03 | 2016-06-01 | 航天信息股份有限公司 | 一种分布式移动开票与管理系统及方法 |
CN104506498A (zh) * | 2014-12-10 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 基于socket通信的音视频加速卡数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
许文勇: "《基于Socket的网络编程技术及其实现》", 《网络地带》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302435A (zh) * | 2017-07-25 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 消息发布方法、装置、系统、服务器及计算机可读存储介质 |
CN108989470A (zh) * | 2018-08-31 | 2018-12-11 | 杭州当虹科技股份有限公司 | 一种SDIOverIP复用端口数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271265B (zh) | 基于消息队列的请求处理方法、装置、设备及存储介质 | |
CN107404480B (zh) | 一种流媒体数据的传输方法、存储介质和流媒体服务器 | |
US20150381737A1 (en) | Gateway device and a gateway system for an internet-of-things environment | |
CN106487869A (zh) | 用于对标签化数据进行控制和标准化的多云网络代理 | |
CN110474794B (zh) | 一种sdn架构的信息转换方法和系统 | |
CN104246737A (zh) | 在内容分发网络中使用视频流的连接池技术的系统和方法 | |
CN110113381A (zh) | 一种区块链中订阅主题的方法及装置 | |
CN102629909A (zh) | 基于进程的流量统计方法及系统 | |
CN101246646A (zh) | 一种基于Web服务的E-Police系统架构 | |
CA2843284C (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
CN103037011B (zh) | 基于iocp的海量终端设备接入系统 | |
CN108228625A (zh) | 一种推送消息处理方法及装置 | |
CN105009674B (zh) | 用于客户端和服务器之间的连接的方法和装置 | |
CN106254362A (zh) | 一种共享sdi数据的方法 | |
CN109358951A (zh) | 基于spice协议的智能支持显卡直通和虚拟显卡的显示方法 | |
CN102025978A (zh) | 视频监控系统和方法 | |
CN107592554B (zh) | 直播视频转发方法及装置 | |
CN103179214A (zh) | 基于http协议的直播流推流方法和系统 | |
CN111010429A (zh) | 一种基于物联网平台管理设备运行状态的方法及系统 | |
CN104813610A (zh) | 提供多个内容项目显示在多个设备上 | |
CN105636317B (zh) | 一种智能路灯管理系统及信息处理方法 | |
CN109787963A (zh) | 业务办理方法、装置、计算机设备和存储介质 | |
CN104980817A (zh) | 一种视频流抽帧方法及装置 | |
CN116132625A (zh) | 交易流程的监管方法和装置 | |
CN109542848A (zh) | 一种车载媒体文件快速扫描方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310000 A Block, 16th Floor, E Building, Paradise Software Park, No. 3 Xidoumen Road, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Dang Hong Polytron Technologies Inc Address before: 310000 B2010, two floor, North (two), six and 368 Road, Binjiang District, Hangzhou, Zhejiang. Applicant before: HANGZHOU DANGHONG TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |
|
RJ01 | Rejection of invention patent application after publication |