著录项信息
| 专利名称 | 一种流媒体文件实时切片系统及方法 |
| 申请号 | CN201510540681.5 | 申请日期 | 2015-08-28 |
| 法律状态 | 授权 | 申报国家 | 中国 |
| 公开/公告日 | 2015-12-16 | 公开/公告号 | CN105163204A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | H04N21/845 | IPC分类号 | H;0;4;N;2;1;/;8;4;5;;;H;0;4;N;2;1;/;4;3;3查看分类表>
|
| 申请人 | 山东泰信电子股份有限公司 | 申请人地址 | 山东省济南市高新区新泺大街2008号银荷大厦1-501-1
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 山东泰信电子股份有限公司 | 当前权利人 | 山东泰信电子股份有限公司 |
| 发明人 | 李如飞;程国海 |
| 代理机构 | 济南圣达知识产权代理有限公司 | 代理人 | 张勇 |
摘要
本发明公开了一种流媒体文件实时切片系统及方法,包括:内容服务器,接收网络视频服务器发来的配置信息,根据配置信息进行相应的配置,使得输出的节目数据与网络端口号一一对应;同时接收输入信号,对输入信号进行处理,并将处理得到的节目数据发送给PCIe板卡;PCIe板卡,接收内容服务器发来的节目数据,对接收到的节目数据进行实时切片,将得到节目的切片数据存储在PCIe板卡的内存芯片中;网络视频服务器,设有磁盘阵列,向内容服务器发送相应的配置信息,并通过PCIe板卡的PCIe接口从PCIe板卡中读取节目切片数据,判断节目切片数据是否有效,若有效,则存储切片数据到磁盘阵列。具有并发性好、处理切片响应速度快、稳定性高等优点。
1.一种流媒体文件实时切片系统,其特征是,包括:
内容服务器,通过网络与网络视频服务器进行连接,接收网络视频服务器发来的配置信息,根据配置信息进行相应的配置,使得输出的节目数据与网络端口号port一一对应;同时接收输入信号,对输入信号进行处理,并将处理得到的节目数据发送给PCIe板卡;
PCIe板卡,通过网络与所述内容服务器连接,接收内容服务器发来的节目数据,对接收到的节目数据进行实时切片,并将得到节目的切片数据存储在PCIe板卡的内存芯片中;
网络视频服务器,设有磁盘阵列,向内容服务器发送相应的配置信息,并通过PCIe板卡的PCIe接口从PCIe板卡中读取节目切片数据,判断节目切片数据是否有效,若有效,则存储切片数据到磁盘阵列,否则,不存储。
2.如权利要求1所述的流媒体文件实时切片系统,其特征是,所述PCIe板卡包括FPGA芯片,FPGA芯片分别与FLASH芯片、内存芯片、网络接口和PCIe接口双向连接;其中,FPGA芯片对接收到节目数据进行实时切片,并将得到的切片数据存储在内存芯片中。
3.如权利要求2所述的流媒体文件实时切片系统,其特征是,所述内存芯片是DRR3。
4.一种流媒体文件实时切片方法,其特征是,包括如下步骤:
S1:网络视频服务器发送节目配置信息给内容服务器;
S2:内容服务器接收节目配置信息并根据节目配置信息进行配置,接收输入信号;
S3:内容服务器对输入信号进行解析,获得每套节目数据,将每套节目数据分别封装成网络数据包,并将每套节目的网络数据包分别通过不同的网络端口发送给PCIe板卡;
S4:PCIe板卡接收内容服务器发来的网络数据包并解析,获得每套节目数据;
S5:PCIe板卡对每套节目数据进行切片,并将节目切片数据保存在PCIe板卡的内存芯片中;
S6:网络视频服务器从PCIe板卡中读取节目的节目切片数据并存放到磁盘阵列中。
5.如权利要求4所述的流媒体文件实时切片方法,其特征是,所述网络数据包是UDP数据包。
6.如权利要求4所述的流媒体文件实时切片方法,其特征是,所述PCIe板卡使用FPGA系统时钟并行地对每套节目数据进行实时切片。
7.如权利要求4所述的流媒体文件实时切片方法,其特征是,所述步骤S4之前还包括:
S4-0:PCIe板卡从所述网络视频服务器或者PCIe板卡的FLASH芯片中获取切片配置信息,并根据切片配置信息进行相应配置。
8.如权利要求4所述的流媒体文件实时切片方法,其特征是,所述步骤S6进一步为:
S6-1:网络视频服务器发送读数据命令给PCIe板卡;
S6-2:PCIe板卡的FPGA芯片从内存芯片中读取节目切片数据,并存放到PCIe缓存中;
S6-3:网络视频服务器从PCIe板卡的PCIe缓存中读取节目切片数据,并判断节目切片数据是否为有效数据;若为有效数据,则执行步骤S6-4;否则,若不是有效数据,则提示错误信息;
S6-4:将节目切片数据存储到磁盘阵列中,转到步骤S6-2继续执行。
9.如权利要求4所述的流媒体文件实时切片方法,其特征是,所述步骤S6进一步还包括:网络视频服务器判断是否接收到暂停切片命令,若收到暂停切片命令,则向PCIe板卡发送停止切片命令,PCIe板卡停止切片。
一种流媒体文件实时切片系统及方法\n技术领域\n[0001] 本发明涉及流媒体播放领域,尤其涉及一种流媒体文件实时切片系统及方法。\n背景技术\n[0002] 随着网络技术的快速发展,各种视频网站层出不穷,无论是网络视频直播、点播还是时移,对流媒体播放的流畅性和实时性要求越来越高,相应的对流媒体切片的精准度和实时性要求也越来越高。因此,快速、准确的对流媒体进行切片和传输就成为了对视频网站的基本要求。\n[0003] 但是现有视频网站的网络视频服务器普遍存在如下问题:\n[0004] 1、并发性差。现有的网络视频服务器都是基于windows软件平台,播放流媒体文件时,每套节目都需要一个独立的线程进行处理,但是由于处理器(CPU)的限制,使得接收线程是一般是顺序进行,即使考虑到处理器可以支持多线程并发工作,能够并发工作的线程的数量也是有限制的。\n[0005] 2、延时和丢包严重。由于通过软件接收节目数据对于CPU来讲是顺序执行的,因此CPU只能在接收完一套节目之后才能接收其他的节目,当有上百套节目需要接收时,所有节目都接收一遍至少需要上百毫秒的时间,会导致直播节目播放延迟,以及节目数据包丢失问题。\n[0006] 3、系统资源占用大。节目接收时,会在内存中缓存一定长度的节目数据(或者节目切片),一般来讲,标清节目的带宽一般为6-8Mbps,如果缓存2s时长的节目数据,则每套节目需要的缓存空间约为1.5MBytes(6Mbps*2s/8)–2MBytes(8Mbps*2s/8),那么100套节目需要的缓存空间则为150MB-200MB,占用服务器大量的内存空间。另外,通过软件实现节目数据接收,需要一直占用大量的CPU资源,对CPU要求也是很高的。\n发明内容\n[0007] 本发明的目的就是为了解决上述问题,提供一种流媒体文件实时切片系统及方法,它具有并发性好、处理切片响应快速、稳定性高等优点。\n[0008] 为了实现上述目的,本发明采用如下技术方案:\n[0009] 一种流媒体文件实时切片系统,包括:\n[0010] 内容服务器,通过网络与网络视频服务器进行连接,接收网络视频服务器发来的配置信息,根据配置信息进行相应的配置,使得输出的节目数据与网络端口号port一一对应;同时接收输入信号,对输入信号进行处理,并将处理得到的节目数据发送给PCIe板卡;\n[0011] PCIe板卡,通过网络与所述内容服务器连接,接收内容服务器发来的节目数据,对接收到的节目数据进行实时切片,并将得到的节目切片数据存储在PCIe板卡的内存芯片中;\n[0012] 网络视频服务器,设有磁盘阵列,向内容服务器发送相应的配置信息,并通过PCIe板卡的PCIe接口从PCIe板卡中读取节目切片数据,判断节目切片数据是否有效,若有效,则存储节目切片数据到磁盘阵列,否则,不存储。\n[0013] 所述PCIe板卡包括FPGA芯片,FPGA芯片分别与FLASH芯片、内存芯片、网络接口和PCIe接口双向连接;其中,FPGA芯片对接收到节目数据进行实时切片,并将得到的切片数据存储在内存芯片中。\n[0014] 所述内存芯片是DRR3。\n[0015] 所述FPGA芯片内部设有PCIe缓存,用于缓存从内存芯片中读取的切片数据。\n[0016] 一种流媒体文件实时切片方法,包括如下步骤:\n[0017] S1:网络视频服务器发送节目配置信息给内容服务器;\n[0018] S2:内容服务器接收节目配置信息并根据节目配置信息进行配置,接收输入信号;\n[0019] S3:内容服务器对输入信号进行解析,获得每套节目数据,将每套节目数据分别封装成网络数据包,并将每套节目的网络数据包分别通过不同的网络端口发送给PCIe板卡;\n[0020] S4:PCIe板卡接收内容服务器发来的网络数据包并解析,获得每套节目数据;\n[0021] S5:PCIe板卡对每套节目数据进行切片,并将节目切片数据保存在PCIe板卡的内存芯片中;\n[0022] S6:网络视频服务器从PCIe板卡中读取节目的节目切片数据并存放到磁盘阵列中。\n[0023] 所述网络数据包是UDP数据包。\n[0024] 所述PCIe板卡使用FPGA芯片的系统时钟并行地对每套节目数据进行实时切片。\n[0025] 所述步骤S4之前还包括:\n[0026] S4-0:PCIe板卡从所述网络视频服务器或者PCIe板卡的FLASH芯片中获取切片配置信息,并根据切片配置信息进行相应配置。\n[0027] 所述步骤S6进一步为:\n[0028] S6-1:网络视频服务器发送读数据命令给PCIe板卡;\n[0029] S6-2:PCIe板卡的FPGA芯片从内存芯片中读取节目切片数据,并存放到PCIe缓存中;\n[0030] S6-3:网络视频服务器从PCIe板卡的PCIe缓存中读取节目切片数据,并判断节目切片数据是否为有效数据;若为有效数据,则执行步骤S6-4;否则,若不是有效数据,则提示错误信息;\n[0031] S6-4:将节目切片数据存储到磁盘阵列中,转到步骤S6-2继续执行。\n[0032] 所述步骤S6进一步还包括:网络视频服务器判断是否接收到暂停切片命令,若收到暂停切片命令,则向PCIe板卡发送停止切片命令,PCIe板卡停止切片。\n[0033] 本发明的有益效果:\n[0034] 本发明采用PCIe板卡硬件,基于PCIe板卡的系统时钟,对多套单节目流进行并发的接收和切片,既解决了现有技术并发性差的缺点,也弥补了延时和丢包严重的缺陷。另外,由于切片工作是通过PCIe板卡硬件实现,不需要网络视频服务器参与,释放网络视频服务器大量的内存空间和CPU资源,大大减少了网络视频服务器压力。\n附图说明\n[0035] 图1为本发明所述流媒体文件实时切片系统结构示意图;\n[0036] 图2为本发明所述PCIe板卡结构示意图;\n[0037] 图3为本发明所述流媒体文件实时切片方法流程示意图;\n[0038] 图4为本发明网络视频服务器从PCIe板卡读取节目切片数据流程图;\n[0039] 图5为本发明节目切片数据在内存芯片中的存放示意图。\n具体实施方式\n[0040] 下面结合附图与实施例对本发明作进一步说明。\n[0041] 如图1所示,一种流媒体文件实时切片系统,包括:\n[0042] 内容服务器,通过网络与网络视频服务器进行连接,接收网络视频服务器发来的配置信息,根据配置信息进行相应的配置,使得输出的单节目流与网络端口号(port)一一对应;同时接收输入信号,对输入信号进行处理,并将处理得到的单节目流发送给PCIe板卡;\n[0043] PCIe板卡,通过网络与所述内容服务器连接,接收内容服务器发来的节目数据,对接收到的节目数据进行实时切片,并将得到的切片数据存储在内存芯片中;\n[0044] 网络视频服务器,设有磁盘阵列,向内容服务器发送相应的配置信息,并通过PCIe接口从PCIe板卡中读取节目切片数据,判断切片数据是否有效,若有效,则存储切片数据到磁盘阵列,否则,不存储。\n[0045] 所述内容服务器为具有ASI(Asynchronous Serial Interface,异步串行接口)接口的设备,接收ASI输入信号,对输入信号进行解复用,获得节目数据,并将节目数据封装成网络数据包,然后通过设定的网络端口号发送给PCIe板卡。\n[0046] 所述内容服务器为个人电脑,从内部磁盘读取节目数据,然后将节目数据封装成网络数据包,然后通过设定的网络端口号发送给PCIe板卡。所述内部磁盘中的节目数据是个人电脑从外部输入信号获取并预先存储在磁盘中的。\n[0047] 如图2所示,PCIe板卡包括FPGA芯片,FPGA芯片分别于FLASH芯片、内存芯片、网络接口和PCIe接口双向连接;其中,FPGA芯片对接收到节目数据进行实时切片,并将得到的切片数据存储在内存芯片中。\n[0048] 所述内存芯片是DRR3,用于存储节目切片数据。内存芯片是PCIe板卡的重要部件,采用DDR3,主要是因为DDR3读写速度非常快。DDR3芯片目前主要有DDR3-800、DDR3-1066、DDR3-1333、DDR3-1600等型号,以最小频率的DDR3-800为例,其峰值比特率为6400MB/s。每套节目的切片时长按照2s计算,一套标清节目的切片大小约为2MByte,DDR3读取这个切片仅需要312.5ns。\n[0049] 所述FPGA芯片内部设有PCIe缓存,用于缓存从内存芯片中读取的切片数据。\n[0050] 所述FLASH芯片存储有切片配置信息,PCIe板卡根据切片配置信息通过网络接口从不同的网络端口号(port)接收单节目流数据。\n[0051] 所述网络接口为千兆光纤网络接口。\n[0052] 如图3所示,一种流媒体文件实时切片方法,包括如下步骤:\n[0053] S1:网络视频服务器发送节目配置信息给内容服务器;\n[0054] S2:内容服务器接收节目配置信息并根据节目配置信息进行配置,接收输入信号;\n[0055] S3:内容服务器对输入信号进行解析,获得每套节目数据,将每套节目数据分别封装成网络数据包,并将每套节目的网络数据包分别通过不同的网络端口发送给PCIe板卡;\n[0056] S4:PCIe板卡接收内容服务器发来的网络数据包并解析,获得每套节目数据;\n[0057] S5:PCIe板卡对每套节目数据进行切片,并将切片数据保存在PCIe板卡的内存芯片中;\n[0058] S6:网络视频服务器从PCIe板卡中读取节目的切片数据并存放到磁盘阵列中。\n[0059] 所述节目配置信息至少包含每套节目与网络端口号一一对应关系,使得每套节目数据分别从指定的网络端口发送给PCIe板卡。例如节目1对应网络端口号port10011,节目2对应网络端口号prot10012,……\n[0060] 所述网络数据包是UDP数据包,内容服务器将网络数据包通过UDP协议发送给PCIe设备。\n[0061] 所述PCIe板卡使用FPGA系统时钟并行地对每套节目数据进行实时切片。\n[0062] 所述步骤S4之前还包括:PCIe板卡从所述网络视频服务器或者PCIe板卡的FLASH芯片中获取切片配置信息,并根据切片配置信息进行相应配置。\n[0063] 如图4所示,所述步骤S6网络视频服务器从PCIe板卡中读取切片数据进一步包括如下步骤:\n[0064] S6-1:网络视频服务器发送读数据命令给PCIe板卡;\n[0065] S6-2:PCIe板卡的FPGA芯片从内存芯片中读取节目切片数据,并存放的PCIe缓存中;\n[0066] S6-3:网络视频服务器从PCIe板卡的PCIe缓存中读取节目切片数据,并判断节目切片数据是否为有效数据;若为有效数据,则执行步骤S6-4;否则,若不是有效数据,则提示错误信息;\n[0067] S6-4:将节目切片数据存储到磁盘阵列中,转到步骤S6-2继续执行。\n[0068] 所述步骤S6进一步还包括:网络视频服务器判断是否接收到暂停切片命令,若收到暂停切片命令,则向PCIe板卡发送停止切片命令,PCIe板卡停止切片。\n[0069] 如图5所示,节目切片数据在PCIe板卡内存芯片中存放时,每套节目存放一段切片数据。假设每套节目流的切片是2s,分配给每套节目的切片2MBytes空间,对应的网络端口号从port10011开始顺延,那么,节目1对应网络端口号port10011,在内存芯片中的存放位置为0~2MBytes;节目2对应网络端口号port10012,在内存芯片中的存放位置为2~\n4Mbytes,节目3~n对应的网络端口号以及在内存芯片中的存储位置可以依此类推,节目n对应网络端口号为port(10010+n),在内存芯片中的存放位置为2*(n-1)~2*n Mbytes。\n[0070] 上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
法律信息
- 2022-07-08
专利权质押合同登记的生效
专利号: ZL 201510540681.5
申请日: 2015.08.28
授权公告日: 2018.03.23
登记号: Y2022980008497
登记生效日: 2022.06.22
出质人: 山东泰信电子股份有限公司
质权人: 齐鲁银行股份有限公司济南张庄支行
发明名称: 一种流媒体文件实时切片系统及方法
- 2018-03-23
- 2016-01-13
实质审查的生效
IPC(主分类): H04N 21/845
专利申请号: 201510540681.5
申请日: 2015.08.28
- 2015-12-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-12-29
|
2010-06-21
| | |
2
| |
2011-07-13
|
2010-12-30
| | |
3
| |
2014-09-03
|
2014-05-29
| | |
4
| |
2012-07-04
|
2012-02-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |