CN107666619B - 直播数据传输方法、装置、电子设备、服务器及存储介质 - Google Patents
直播数据传输方法、装置、电子设备、服务器及存储介质 Download PDFInfo
- Publication number
- CN107666619B CN107666619B CN201710452576.5A CN201710452576A CN107666619B CN 107666619 B CN107666619 B CN 107666619B CN 201710452576 A CN201710452576 A CN 201710452576A CN 107666619 B CN107666619 B CN 107666619B
- Authority
- CN
- China
- Prior art keywords
- information
- data
- video
- audio
- preset
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4882—Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种直播数据传输方法、装置、电子设备及存储介质,方法包括:获取待发送的消息信息;将消息信息,加入至预设数据;在预设数据中添加第一时间标识;将添加第一时间标识的预设数据发送至视频服务器;视频服务器转发至观看端,观看端能够根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放消息信息。本发明实施例可以不采用现有技术中的IM技术进行消息信息的传输,从而在减少了硬件设备的基础上,避免了消息信息和视频、音频信息出现不同步的现象。
Description
技术领域
本发明涉及网络直播技术领域,特别是涉及一种直播数据传输方法、装置、电子设备、服务器及存储介质。
背景技术
随着互联网的高速发展,网络直播已经成为了一种日益重要的交互方式,人们可以通过手机、平板电脑等各种终端随时随地进行直播或者收看直播。网络直播不仅仅在娱乐领域得到了快速的发展,同时,还在远程教育等其他应用领域有着巨大的市场和潜力。
目前在进行网络直播时,主播端所获取的音频和视频数据,可以经过编码后,先向视频服务器发送,再由视频服务器向各个观看端进行发送。而主播端所获取的各种不同类型的消息信息,例如主播端的文字消息,系统消息,以及主播端需要向服务器发送的服务器消息等非视频或音频信息。则需要通过IM(Instant Messaging,,即时通讯)技术来进行发送和传输,在IM技术中,主播端需要将消息信息发送至专门的IM服务器,再通过IM服务器向各个观看端进行发送。
在现有技术中,由于通过IM技术进行消息信息的发送和传输,而视频或音频信息通过视频服务器进行传输,从而使得当IM服务器或者视频服务器的传输网络出现延时时,就会造成视频信息和音频信息,与消息信息出现不同步的现象,并且由于各个不同的观看端的网络传输情况也不一致,从而导致不同观看端收到的消息信息的延时各不相同,严重降低了用户体验,影响直播效果。
发明内容
本发明实施例的目的在于提供一种直播数据传输方法、装置、电子设备、服务器及存储介质,以实现消息信息和视频或音频信息同传输。具体技术方案如下:
本发明实施公开了一种直播数据传输方法,应用于主播端,包括:
获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
将所述消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
将添加所述第一时间标识的预设数据发送至视频服务器。
本发明实施公开了一种直播数据传输方法,应用于视频服务器,包括:
接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息;
从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端。
本发明实施公开了一种直播数据传输方法,应用于观看端,包括:
接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息;
从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与,所述视频信息和音频信息的数据格式相同;
从所述预设数据中获取所述消息信息;
根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,所述第一时间标识为主播端产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
本发明实施公开了一种直播数据传输装置,应用于主播端,包括:
第一获取模块,用于获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
第一添加模块,用于将所述消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
第二添加模块,用于在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
第一发送模块,用于将添加所述第一时间标识的预设数据发送至视频服务器。
本发明实施公开了一种直播数据传输装置,应用于视频服务器,包括:
第一接收模块,用于接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息;
第二获取模块,用于从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
判断模块,用于根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
第二发送模块,用于当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端。
本发明实施公开了一种直播数据传输装置,应用于观看端,包括:
第二接收模块,用于接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息;
第三获取模块,用于从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与,所述视频信息和音频信息的数据格式相同;
第四获取模块,用于从所述预设数据中获取所述消息信息;
第一播放模块,用于根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,所述第一时间标识为主播端产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
本发明实施例公开了一种主播端电子设备,包括:
第一处理器、第一通信接口、第一存储器和第一通信总线,其中,第一处理器,第一通信接口,第一存储器通过第一通信总线完成相互间的通信;
第一存储器,用于存放计算机程序;
第一处理器,用于执行第一存储器上所存放的程序时,用于实现本发明实施例中应用于主播端的直播数据传输方法。
本发明实施例公开了一种视频服务器,包括:
第二处理器、第二通信接口、第二存储器和第二通信总线,其中,第二处理器,第二通信接口,第二存储器通过第二通信总线完成相互间的通信;
第二存储器,用于存放计算机程序;
第二处理器,用于执行第二存储器上所存放的程序时,用于实现本发明实施例中应用于视频服务器的直播数据传输方法。
本发明实施例公开了一种观看端电子设备,包括:
第三处理器、第三通信接口、第三存储器和第三通信总线,其中,第三处理器,第三通信接口,第三存储器通过第三通信总线完成相互间的通信;
第三存储器,用于存放计算机程序;
第三处理器,用于执行第三存储器上所存放的程序时,用于实现本发明实施例中应用于观看端的直播数据传输方法。
本发明实施例提供的一种直播数据传输方法、装置、电子设备、服务器及存储介质,其中,主播端将的消息信息加入至预设数据,并为该预设数据添加第一时间标识,将预设数据和所采集的视频信息和音频信息均发送至视频服务器。并由视频服务器转发至观看端,观看端能够根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放消息信息。本发明实施例可以不采用现有技术中的IM技术进行消息信息的传输,从而在减少了硬件设备的基础上,由于在预设数据中存在第一时间标识,观看端能够根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放消息信息,从而避免了消息信息和视频、音频信息出现不同步的现象,并且使得当观看端需要存储视频信息和音频信息时,可以同步的存储消息信息。在回放时,同样可以同步的播放消息信息,而不会造成现有技术中,通过IM技术传输消息时所造成的消息信息无法存储的问题。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用直播数据传输方法的系统的架构图;
图2为本发明实施例提供的直播数据传输方法应用于主播端的流程图;
图3为本发明实施例提供的直播数据传输方法应用于主播端的另一种流程图;
图4为本发明实施例提供的直播数据传输方法应用于视频服务器的一种流程图;
图5为本发明实施例提供的直播数据传输方法应用于视频服务器的另一种流程图;
图6为本发明实施例提供的直播数据传输方法应用于观看端的一种流程图;
图7为本发明实施例提供的直播数据传输方法应用于观看端的另一种流程图;
图8为本发明实施例提供的直播数据传输装置应用于主播端的结构图;
图9为本发明实施例提供的直播数据传输装置应用于视频服务器的结构图;
图10为本发明实施例提供的直播数据传输装置应用于观看端的结构图;
图11为本发明实施例提供的主播端电子设备的结构图;
图12为本发明实施例提供的视频服务器的结构图;
图13为本发明实施例提供的观看端电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供了一种直播数据传输方法,可以将主播端001所产生的消息数据,例如主播端的文字消息,系统消息,以及主播端需要向视频服务器002发送的服务器消息等非视频或音频信息,加入可以与视频信息和音频信息一起发送的预设数据中,并为该预设数据添加第一时间标识。然后将该预设数据,和所采集的视频信息和音频信息一起发送至视频服务器002。而不需要像现有技术中将消息信息单独发送至IM服务器,再又IM服务器向观看端发送消息信息,避免了消息信息与视、音频信息通过不同的传输路径发送至观看端,从而造成的消息信息与视、音频信息不同步的问题。
视频服务器002接收到消息信息后可以判断消息信息的类型,当消息信息为服务器消息时,则自行进行处理,其中服务器消息指的是需要发送给视频服务器的消息,如当前码率等;当消息信息为其他类型时,则按接收到的原有格式将消息信息转发至观看端003。
观看端003,即用于播放视频信息和音频信息的播放端。观看端003接收到消息信息后,将消息信息与视频、音频信息一起放入缓存区,根据消息信息中的第一时间标识,在播放视频、音频信息时同步播放消息信息。
通过上述的方法,不仅减少了硬件设备的投入,并且避免了由于消息信息单独发送至IM服务器,而导致的消息信息和视频、音频信息出现不同步的现象,并且使得当观看端需要存储视频信息和音频信息时,可以同步的存储消息信息。
下面结合附图,对本发明实施例提供的直播数据传输方法分别在主播端、视频服务器及观看端的具体应用进行详细的说明。
参见图2,图2为本发明实施例提供的直播数据传输方法应用于主播端的一种流程图,包括:
步骤101,获取待发送的消息信息,消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息。
主播端是获取视频信息和音频数信息、以及消息信息的电子设备,该电子设备可以包括手机、电脑、智能电视等各类能够联网并传输信息的智能设备。主播端,可以通过摄像头和麦克风采集视频信息和音频信息。
在获取视频信息和音频信息的同时,主播端还可能会产生各种类型的消息信息,例如,主播端的系统消息,如,当主播端为手机,主播端在直播过程中突然接入电话等情况时,主播端暂时不能够进行视频信息和音频信息的采集和发送,观看端用户看到的现象通常是画面静止、无任何声音,对于观众来说,并不知道发生了什么问题,此时,主播端就可以自动产生一系统消息,该系统消息可以经过视频服务器向观看端发送,观看端的用户就可以看到该消息,可以得知主播端暂停直播是由于电话的接入,从而提高了用户端的用户体验。
主播端还可以向视频服务器上报一些信息,如,当前码率等,这类信息不需要发送至观看端,这类信息可以作为服务器信息。
主播端在直播中还可以向观看端发送其他消息信息,例如,主播所输入的文字等等。这类消息可以作为自定义消息。当然,具体的消息类型可以根据需要进行配置,可以有多种类型,在此不作具体限定。
主播端获取了消息信息后,可以将消息信息按预设的信息结构进行保存,从而方便对消息信息的编码及发送。信息结构中至少包括消息信息类型的标识,以及消息信息的具体内容。标识可以是预设的字符或名称,例如,server表示服务器信息,user表示自定义消息,system表示系统消息。预设的信息结构可以是如表1所示的消息信息的结构表。
表1
主键 | 数值 | 数值类型 | 说明 | 备注 |
type | server | 字符串 | 消息类型 | 必选 |
event | 码率 | 字符串 | 具体事件 | 必选 |
value | 500 | 数字 | 消息的具体内容,默认单位是kb/s | 可选 |
其中,包括:主键,可以作为结构表的索引,用于表示表中的具体条目,表中至少可以包括type消息类型和event具体事件,以及value事件内容,这三个项目;当然,在表中还可以包括其他条目,在实际应用中可以根据需要进行配置;
数值,记录每个条目的具体内容,例如,记录type这一条目具体的消息类型的标识为server则表示该消息为服务器消息;记录event这一条目中,数值为码率,则表示该消息描述的具体事件为描述当前传输的码率;记录value这一条目中数值为500,则表示该消息中的具体的码率为500kb/s。
数值类型,记录每个条目的具体内容的字符类型,例如,type这一条目为字符串类型。
说明,用于说明和解释每条条目的作用;
备注,用于标识条目是否为必要的。
通过上述表1,可以更快速的对消息信息进行整理,以便后续的步骤对消息信息进行处理。
当然,本发明实施例中预设的信息结构还可以是现有技术中其他类型的结构形式,各种消息的结构形式只要能够包括消息类型,消息的具体事件等信息,都可以应用在本发明实施例中,也都属于本发明实施例的保护范围。
步骤102,将消息信息,加入至预设数据,所述预设数据的数据格式与,音频信息和视频信息的数据格式相同。
主播端获取了消息信息之后,可以将该消息信息进行编码,对信息进行编码可以实现对信息的压缩,方便传输和使用。
将编码后的消息信息加入至预设数据中,预设数据可以是与主播端采集并发送的音频信息和视频信息的数据格式相同的自定义数据,或者是可以随音频信息和视频信息发送的其他非视频、音频的数据。并可以为预设数据配置名称或标识。由于预设数据的数据格式与音频信息和视频信息的数据格式相同,从而可以将预设数据与音频信息和视频信息一起,发送至视频服务器。
例如,对视频数据可以使用H.264或H.265进行压缩编码,音频数据可以使用AAC(Advanced Audio Coding,音频压缩编码格式)进行压缩编码;编码完成后封装为FLV(Flash Video,流媒体格式)的数据格式;同样的,预设数据使用AMF(Action MessageFormat,实时消息格式)编码,编码后封装为FLV的数据格式。从而使得预设数据的数据格式与视频数据和音频数据的数据格式相同。当然,预设数据还可以使用其他与FLV数据格式相兼容的编码方式进行编码,在此,并不限定为AMF编码方式这一种编码方式。
步骤103,在预设数据中添加第一时间标识,第一时间标识为产生消息信息的同时刻的音频信息或视频信息所具有的时间标识,该时间标识用于描述音频信息或视频信息相对于直播开始时刻的相对时间。
当将编码后的消息信息加入预设信息之后,可以为该预设信息添加第一时间标识,第一时间标识用来描述产生该消息信息的同时刻的音频信息或视频信息相对于直播开始时刻的相对时间。以使观看端在播放音频信息和视频信息时,可以根据第一时间标识在对应的音频信息或视频信息时间位置处显示消息信息。
在直播时,主播端所采集的音频信息和视频信息都可以具有时间标识,该时间标识可以记录下当前所采集的音频信息和视频信息相对于直播开始时的相对时间,例如,直播开始时为初始0时刻,直播开始10分钟后,所采集的音频信息和视频信息中的时间标识可以为10分钟。
为了使消息信息能够与,音频信息和视频信息同步进行播放,可以将产生消息信息的同时刻的音频信息或视频信息所具有的时间标识,作为预设数据中所添加的第一时间标识。
第一时间标识可以为时间戳,时间戳是指在信息中加入的辨识字段,如在FLV数据格式的数据中,时间戳可以是FLV数据中的固定标识位,用于记录产生该FLV数据的时间相对于直播开始时刻的相对时间。在实际应用中,当视频信息和音频信息,以及预设数据均为FLV数据格式的时,在预设数据中添加第一时间标识时,可以直接将产生消息信息的同时刻的音频信息或视频信息的时间戳,作为预设数据中的时间戳。
第一时间标识也可以其他可以用来表征时间的字段或标识,具体在此不做限定,只要可以满足本发明实施例中第一时间标识的功能,均可以应用在本发明实施例中,也均属于本发明实施例的保护范围。
步骤104,将添加第一时间标识的预设数据发送至视频服务器。
当将第一时间标识添加进预设数据后,就可以将预设数据,随音频信息和视频信息发送至视频服务器。其中预设数据可以是通过单独的数据包发送。
在本发明实施例的另一种实施方式中,主播端与视频服务器也可以建立起单独用于传输消息信息的数据传输链接,可以将预设数据通过该数据传输链接发送至视频服务器,使得预设数据可以不通过传输音频信息和视频信息的数据传输链接进行传输。从而更进一步的提高预设数据的传输质量。
主播端向视频服务器发送预设数据之后,当主播端再次产生消息信息,则重复上述的步骤,保证每一次产生的预设数据都可以按上述的方法,与主播端实时采集的音频信息和视频信息一起,发送至视频服务器。
在本发明实施例中,主播端将的消息信息加入至预设数据,并为该预设数据添加第一时间标识,将预设数据和所采集的视频信息和音频信息均发送至视频服务器。从而可以不采用现有技术中的IM技术进行消息信息的传输,从而在减少了硬件设备的基础上,由于在预设数据中存在第一时间标识,观看端能够根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放消息信息,从而避免了消息信息和视频、音频信息出现不同步的现象。
可选的,本发明实施例提供的直播数据传输方法中,在获取待发送的消息信息之前,所述方法还包括:
第一步,获取元数据,元数据用于描述所述主播端发送的数据的属性信息,数据包括以下信息中的一种或多种:消息信息、视频信息和音频信息。
Metadata元数据,主要用来描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能,是一种广泛存在的现象,在许多领域有其具体的定义和应用。
在本发明实施例中,对于消息信息、视频信息和音频信息来说,也可以使用元数据来对数据的属性信息进行描述。
所以,在采集视频信息和音频信息,以及产生消息信息时,还可以获取或生成相应的元数据。
第二步,在元数据中添加第一预设字段,第一预设字段用于表示主播端发送的数据中包含消息信息。
当获取了元数据之后,可以在元数据中添加第一预设字段,第一预设字段可以是预先配置好的任意字段或标识,该第一预设字可以用来表示主播端发送的数据中包含消息信息。
视频服务器或者观看端首先会接收到元数据,通过判断元数据中是否含有第一预设字段,可以得知本次所接收的数据中,是否含有消息信息。
第三步,向视频服务器发送所述元数据。
主播端在元数据中添加第一预设字段后,就可以在发送其他数据之前,先将元数据发送至视频服务器,以使视频服务器能够优先接收到元数据。
本发明实施例中,在元数据中加入第一预设字段,可以使得视频服务器能够根据所接收到的元数据中是否含有第一预设字段,来判断出所要接收的数据中是否含有消息信息,并进行相应的处理。
可选的,本发明实施例提供的直播数据传输方法中,预设数据为视频格式FLV数据中的预设标签。
相应的,所述将消息信息,加入至预设数据中,包括:
将消息信息,加入FLV数据中的预设标签中。
FLV格式是一种常用的视频格式,尤其在视频直播中,视频信息及音频信息都被编码为FLV数据进行传输。
FLV数据都是由一个个TAG(标签)组成,在FLV数据中,一般存在三种TAG,其中分别包含的数据为视频信息、音频信息和脚本信息。
在本发明实施例中,可以在FLV数据中创建自定义的TAG,即预设标签。并利用预设标签来存储消息信息。
当预设标签创建完成后,就可以将消息信息加入预设标签中,并为该预设标签加上时间戳后,将该预设标签与包含视频信息和音频信息的FLV数据发送至视频服务器。在FLV数据中,音频信息可以保存在音频标签中,视频信息可以保存在视频标签中,音频标签和视频标签都具有各自的时间戳,该时间戳用于描述音频信息或视频信息相对于直播开始时刻的相对时间,所以可以将产生所述消息信息的同时刻的音频标签或视频标签的时间戳,作为预设标签的时间戳。
由于FLV数据中的数据为AMF格式的数据,所以消息信息可以使用AMF编码方式进行编码后加入预设标签,从而使得消息信息与FLV数据相互兼容。
在实际应用中,作为一种优选的方案,预设标签可以为FLV脚本标签。
本发明实施例在实际应用中,可以不用创建新的TAG,而直接利用FLV数据中现有的脚本TAG,即FLV脚本标签。
FLV脚本标签用于存放视频和音频的参数信息如:duration(持续时间)、width(幅宽)、height(视频高度)等。
可以将经过AMF编码格式编码的消息信息,直接加入FLV脚本标签,并为FLV脚本标签添加时间戳后,将FLV脚本标签与其他包含视频信息和音频信息的FLV数据发送至视频服务器。其中FLV脚本标签的时间戳可以是该FLV脚本标签的数据结构中固有的标识位。
在本发明实施例中,充分利用了现有的FLV脚本标签,而不需要创建自定义的TAG,从而简化了步骤,提高了主播端的执行效率。
可选的,本发明实施例提供的直播数据传输方法中,在将消息信息,加入FLV数据中的预设标签中之后,所述方法还包括:
在预设标签中添加第二预设字段,该第二预设字段用于表示预设标签中含有消息信息。
在一些情况下,用户有可能会在FLV数据中自定义多个预设标签,为了能够更加快捷的识别出存放消息信息的预设标签,可以在存放消息信息的预设标签中添加第二预设字段。第二预设字段可以为预先配置的字符或标识。视频服务器或观看端接收到FLV数据后,可以快速的根据第二预设字段,判断出预设标签中是否含有消息信息。
当预设标签为FLV脚本标签时,也可以直接将FLV脚本标签中的Script Tag Body(脚本标签主体)的名称设置为第二预设字段。例如,将Script Tag Body的名称设置为:OnMessage。视频服务器或观看端接收到FLV数据后,就可以通过第二预设字段判断出在FLV脚本标签是否含有消息信息。
在本发明实施例中,通过在预设标签中添加第二预设字段,从而使得视频服务器或观看端接收到FLV数据后可以更加快速的从中获取消息信息,提高了效率。
可选的,本发明实施例提供的直播数据传输方法中,将预设数据发送至视频服务器,包括:
第一步,将预设数据按预设封装格式进行封装,预设封装格式为传输所述音频信息和视频信息的封装格式;
第二步,将封装后的数据发送至视频服务器。
主播端向视频服务器发送各种数据时,需要遵循相应的数据传输协议进行传输,例如常见的RTMP(Real Time Messaging Protocol,实时消息传输协议)协议或其他可以用于主播端与视频服务器之间实现数据传输的通信协议。
所以主播端所采集的音频信息和视频信息,需要按与数据传输协议相匹配的预设封装格式,封装为相应的数据包后进行发送。
同样的,为了使预设数据能够与主播端所采集的音频信息和视频信息一起发送,预设数据也需要按预设封装格式封装为相应的数据包后,再向视频服务器发送。
在视频直播领域,RTMP协议作为一种专为音频、视频数据传输开发的开放协议,得到了十分广泛的应用。
所以,在实际应用中,预设封装格式可以为RTMP实时消息传输协议格式。从而可以满足绝大部分用户的需求,提高了本发明实施例的通用性。
参见图3,图3为本发明实施例提供的直播数据传输方法应用于主播端的另一种流程图,包括:
步骤201,获取元数据,在元数据中添加第一预设字段。
主播端可以首先获取元数据,并在元数据添加第一预设字段,第一预设字段用于通知视频服务器及观看端,主播端所发送的数据中,包括有消息信息。
步骤202,获取待发送数据。
主播端获取待发送的数据,待发送的数据可以是视频信息和音频信息,也可以是消息信息。
步骤203,待发送数据是否为消息信息。
主播端判断所获取的待发送数据是否为消息信息,当是消息信息时,执行步骤204,当不是消息信息,则执行步骤209。
步骤204,对消息信息进行AMF编码。
将消息信息按AMF格式进行编码。
步骤205,将消息信息写入FLV脚本标签。
将经过编码后的消息信息写入FLV脚本标签,FLV脚本标签中的数据均为AMF格式的数据,所以经过AMF格式进行编码的消息信息可以与FLV脚本标签完全兼容。
步骤206,在FLV脚本标签中添加第二预设字段。
在FLV脚本标签中添加第二预设字段,使得视频服务器或观看端能够通过第二预设字段,快速的判断出消息信息存在于FLV脚本标签中。
步骤207,在FLV脚本标签中添加时间戳。
在已经加入消息信息的FLV脚本标签中添加时间戳,该时间戳可以为产生消息信息的同时刻的音频标签或视频标签的时间戳。
步骤208,将待发送数据封装为RMTP数据包。
主播端向视频服务器发送数据可以采用RMTP协议,所以可以将待发送的数据封装为RMTP数据包。该RMTP数据包可以为一个或多个。
步骤209,将待发送数据发送至视频服务器。
将待发送数据封装为数据包后,发送至视频服务器。
步骤210,压缩编码并转换为FLV格式的数据。
在步骤203中,如果判断出待发送的数据不是消息信息,则待发送的数据可以为视频信息和音频信息,对于视频信息和音频信息则可以对其进行压缩编码并转换为FLV格式的数据。
然后执行步骤208和步骤209,将转换为FLV格式的视频信息和音频信息,封装为RMTP数据包发送至视频服务器。
参见图4,图4为本发明实施例提供的直播数据传输方法应用于视频服务器的一种流程图,包括:
步骤301,接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息。
视频服务器,可以包括源站服务器和CDN(Content Delivery Network,分布式服务器),用来接收主播端发送的数据,同时向观看端转发主播端所发送的数据。
目前由于通信技术的限制,主播端不能将所采集的视频信息及音频信息、以及主播端产生的消息信息等各类数据直接发送至每一个需要观看视频直播的观看端。
所以主播端所采集的视频信息及音频信息、以及主播端产生的消息信息等各类数据都会先发送至视频服务器,视频服务器可以接收到主播端所发送的数据,并且将主播端发送的数据发送至各个观看端。数据中可以包括视频信息和音频信息,以及消息信息。
在本发明实施例的另一种实现方式中,由于视频服务器与主播端可以建立起单独用于传输消息信息的数据传输链接,所以视频服务器可以通过该数据传输链接,直接接收仅含有消息信息的数据。
步骤302,从所述数据中获取消息信息,消息信息中至少包括:消息信息类型的标识。
视频服务器接收到主播端所发送的数据后,可以从所接收的数据中筛选出包含有消息信息的数据,并从中获取消息信息。如果消息信息经过编码,则还需要按相应的解码方式进行解码后,再获取消息信息。
消息信息中可以含有表示消息信息类型的标识,该标识可以是预设的字符或名称。通过消息信息类型的标识,视频服务器可以判断出消息信息的类型。
步骤303,根据消息信息中消息信息类型的标识,判断消息信息是否为服务器消息,服务器消息为发送至视频服务器的消息信息,不需要发送至观看端。
视频服务器获取了消息信息之后,就可以根据消息信息中的消息信息类型的标识判断出消息信息的类型。当消息信息的类型属于服务器消息,例如:当前码率等消息信息。这一类型的消息信息是上报给视频服务器的消息,不需要发送至观看端。
所以当消息信息属于服务器消息时,视频服务器可以将该消息信息自行保存,并进行相应的处理。不再向观看端转发该消息信息。
步骤304,当消息信息不是服务器消息时,将接收到的数据转发至观看端。
同样的,视频服务器可以根据消息信息中的消息信息类型的标识判断出消息信息的类型,当该消息信息的类型不是服务器消息时,视频服务器按所接收到的原有的数据结构,不对该消息信息进行其他的处理,直接将含有该消息信息的数据转发至各个观看端。
在本发明实施例的另一种实现方式中,视频服务器与观看端也可以建立起单独用于传输消息信息的数据传输链接,从而可以通过该数据传输链接,将仅含有消息信息的数据发送至观看端。
在本发明实施例中,视频服务器接收到主播端所发送的数据后,从该数据中获取消息信息,并通过消息信息类型的标识,判断出该消息信息是否为服务器消息,当为服务器消息时,不再向观看端转发该消息信息,并直接由视频服务器保存并进行处理。当,消息信息为其他类型时,则由视频服务器向各个观看端转发所接收到的包含有消息信息的数据。从而保证了各种类型的消息信息都可以通过本发明实施例提供的直播数据传输方法来进行传输,而不需要针对不同类型的消息信息才用不同的传输方法来进行传输。
可选的,本发明实施例提供的直播数据传输方法中,接收主播端所发送的数据之前,所述方法还包括:
第一步,接收元数据,元数据用于描述主播端发送的数据的属性信息,数据包括以下信息中的一种或多种:消息信息、视频信息和音频信息。
主播端在发送数据之前,可以首先向视频服务器发送元数据,元数据主要用来描述数据属性的信息。从而视频服务器在接收主播端所发送数据之前,可以首先接收到主播端所发送的元数据。
第二步,检测元数据中是否存在第一预设字段,第一预设字段用于表示主播端发送的数据中包含消息信息。
视频服务器接收到元数据后,可以检测所接收到的元数据中是否有第一预设字段,第一预设字段是主播端生成元数据中在元数据中添加的,可以为预先配置好的任意字段或标识,用来表示主播端发送的数据中包含消息信息。
第三步,当元数据中不含有第一预设字段时,接收到数据后,将该数据转发至观看端。
视频服务器对元数据进行检测,当检测出元数据中不含有第一预设字段时,则表示本次所接收的数据中不含有消息信息,而只包括有视频信息和音频信息。从而也不用进行判断消息信息是否为服务器消息。可以直接将所接收到的数据转发至各个观看端。
当然,如果检测出元数据中含有第一预设字段时,则继续后续的步骤,从所接收到的数据中获取消息信息,并判断消息信息的类型,根据消息信息的类型进行执行相应的步骤。
在本发明实施例中,视频服务器能够根据所接收到的元数据中是否含有第一预设字段,来判断出所要接收的数据中是否含有消息信息,从而使得视频服务器对不含有消息信息的数据不再执行后续步骤,而直接将该数据转发至各个观看端,从而提高了视频服务器的处理效率,节约了视频服务器资源。
可选的,本发明实施例提供的直播数据传输方法中,从数据中获取所述消息信息,包括:
第一步,检测数据的封装格式。
主播端向视频服务器发送数据时,需要遵循相应的数据传输协议进行传输,从而需要将数据按与数据传输协议相匹配的预设封装格式,封装为相应的数据包。例如视频直播中,最为常见的RTMP数据包。所以,视频服务器接收到主播端发送的数据后,可以首先对数据的封装格式进行检测,从而确定出所接收数据的数据包格式。
第二步,根据封装格式对数据进行对应的解析。
基于不同的数据传输协议,导致数据的封装格式不同,从而对已封装的数据进行解析的方式也有所不同。
视频服务器确定了所接收数据的封装格式后,就可以针对该封装格式,使用对应的解析方式,进行解析,使封装的数据转化为可以读取的数据。例如,当检测出所接收到的数据为RTMP数据包时,就可以采用与RTMP协议相匹配的方式,对RTMP数据包进行解析。
第三步,从解析后的数据中获取消息信息。
视频服务器完成对封装数据的解析后,就可以对该解析后的数据直接进行读取等操作,从而可以从解析后的数据中获取消息信息,并进行后续的步骤。
可选的,本发明实施例提供的直播数据传输方法中,从数据中获取消息信息,包括:
第一步,检测数据中是否包括预设数据,预设数据的数据格式与,所述音频信息和视频信息的数据格式相同。
视频服务器从所接收到的数据中获取消息信息时,可以监测所接收到的数据中是否包括预设数据,预设数据可以是与音频信息和视频信息的数据格式相同的自定义数据,或者是音频信息和视频信息中所包含的其他非视频、音频的数据。
预设数据可以具有名称或标识,视频服务器可以通过该名称或标识,判断出所接收的数据中是否含有预设数据。例如,预设数据可以为FLV脚本标签,则FLV脚本标签在FLV数据中固有的序号,如0x12,就可以作为该预设数据的标识。视频服务器可以通过该序号,从所接收的数据中检测并获取该FLV脚本标签。
第二步,当存在预设数据时,从预设数据中获取消息信息。
主播端产生的消息信息会存储于预设数据中,所以当存在预设数据时,可以从预设数据中获取消息信息。
本发明实施例在实际应用中,上述步骤中的预设数据可以为FLV数据中的预设标签,并从该预设标签中获取消息信息。
视频服务器所接收的数据可以是FLV数据,FLV数据由多种TAG(标签)组成。
在本发明实施例的一种实现方式中,FLV数据中的预设标签是FLV数据中自定义的TAG,预设标签可以与FLV数据完全兼容,从而可以与FLV数据同步的进行发送和接收。视频服务器接收到FLV数据后,可以从FLV数据中的预设标签中获取消息信息。
在本发明实施例的另一种实现方式中,预设数据可以为FLV数据中的FLV脚本标签,从而可以不需要在FLV数据中创建自定义的TAG,直接使用FLV脚本标签存储消息信息。视频服务器则可以直接从FLV脚本标签中获取消息信息,从而更加方便快捷的获取消息信息。
可选的,本发明实施例提供的直播数据传输方法中,当预设数据为FLV视频格式数据中的预设标签时,从预设标签中获取所述消息信息,包括:
第一步,判断预设标签中是否存在第二预设字段,第二预设字段用于表示预设标签中含有消息信息。
第二步,当存在第二预设字段时,从预设标签中获取消息信息。
本发明实施的一种实现方式中,FLV数据中有可能存在不止一个的预设标签,所以为了更加快速的确定出包含有消息信息的预设标签,可以判断预设标签中是否存在第二预设字段,当存在第二预设字段时,则表示该预设标签中含有消息信息,并且可以从该预设标签中获取消息信息。
本发明实施的另一种实现方式中预设数据可以为FLV脚本标签,FLV脚本标签为FLV数据中固有的一种标签。即使不存在消息信息,该FLV脚本标签也可以与FLV数据一起发送,并由视频服务器接收。所以可以为FLV脚本标签添加第二预设字段,从而使得视频服务器可以更加清楚的判断出所接收到的数据中的FLV脚本标签是否含有消息信息,并且当含有消息信息时,从该FLV脚本标签中获取消息信息。
可选的,本发明实施例提供的直播数据传输方法中,将接收到的数据转发至观看端,包括:
第一步,获取视频服务器向观看端待发送的消息信息。
在本发明实施例中,不仅主播端可以向观看端和视频服务器发送消息信息,视频服务器本身也可以向观看端发送消息信息,例如,视频服务器可以向观看端推送文字消息,新闻、天气预报等等。这些消息信息由视频服务器产生,并直接通过视频服务器发送至各个观看端。
第二步,将视频服务器向观看端待发送的消息信息,加入至预设数据,预设数据的数据格式与,音频信息和视频信息的数据格式相同。
视频服务器与主播端类似,也可以将待发送的消息信息进行编码,然后将编码后的待发送的消息信息加入至预设数据中,预设数据可以是与主播端采集并发送的音频信息和视频信息的数据格式相同的自定义数据,或者是可以随音频信息和视频信息一起发送的其他非视频、音频的数据。
例如,视频服务器所接收到的数据是FLV数据格式的数据,其中包括视频信息和音频信息,视频服务器可以将经过AMF编码后的消息信息,加入接收到的FL数据中的FLV脚本标签,或者其他自定义的预设标签中。
容易理解的是,视频服务器所接收到的数据中,有可能已经含有预设数据,其中可以含有主播端所发送的消息信息。当视频服务器接收到的数据中已经含有预设数据时,视频服务器可以将视频服务器需要发送的消息信息直接加入已经存在的预设数据中。当所接收的数据中不含有预设数据时,视频服务器可以创建预设数据,如创建FLV数据中的自定义的预设标签。
第三步,在预设数据中添加第二时间标识,第二时间标识为视频服务器将视频服务器向观看端待发送的消息信息加入至预设数据时,接收到的数据中的音频信息或视频信息所具有的时间标识,该时间标识用于描述音频信息或视频信息相对于直播开始时刻的相对时间。
当将编码后的消息信息加入预设信息之后,可以为该预设信息添加第二时间标识,第二时间标识用来描述视频服务器将视频服务器向观看端发送的消息信息加入至预设数据时,接收到的数据中的音频信息或视频信息相对于直播开始时刻的相对时间。
视频服务器可以将向观看端待发送的消息信息加入至预设数据时,接收到音频信息或视频信息所具有的时间标识作为第二时间标识,从而使得视频服务器所产生的消息信息也可以与音频信息或视频信息同步进行播放或显示。
同样的,该第二时间标识可以为时间戳,例如,当预设数据为FLV数据中的FLV脚本标签时,FLV脚本标签的时间戳可以是该FLV脚本标签的数据结构中固有的标识位,可以将接收到FLV数据格式的音频信息或视频信息的时间戳作为该FLV脚本标签的时间戳。
与主播端类似,当预设数据为FLV数据中的自定义的预设标签或者FLV脚本标签时,视频服务器也可以在预设标签或者FLV脚本标签中添加第二预设字段,从而使得观看端接收到FLV数据后可以更加快速的从中获取消息信息,提高了效率。
第四步,将添加所述第二时间标识的预设数据和所述视频服务器接收到的数据发送至所述观看端。
当视频服务器将第二时间标识添加进预设数据后,就可以将预设数据和所述视频服务器接收到的所述数据一起转发至所述观看端。
如果视频服务器接收到的数据中已经含有预设数据,则将视频服务器需要发送的消息信息加入至预设数据后,按所接收到的数据的原有数据结构及格式,将数据转发至各个观看端。
如果视频服务器接收到的数据不含有预设数据,预设数据为视频服务器创建的自定义数据时,则视频服务器可以将预设数据封装为与接收到的数据的封装格式相同的数据格式并进行发送,例如,可以将预设数据封装为RTMP数据包后,再将预设数据与所接收到的数据一起发送至观看端。
在本发明实施例中,视频服务器自身所产生的消息信息也可以与视频信息和音频信息一起发送至观看端,不需要建立其他的数据传输连接就可以完成消息信息的传输。使得视频服务器也能够直接向观看端发送消息信息,拓展了本发明实施例的应用范围。
参见图5,图5为本发明实施例提供的直播数据传输方法应用于视频服务器的另一种流程图,包括:
步骤401,接收主播端发送的RTMP数据包,以及元数据。
步骤402,元数据中是否存在第一预设字段。
判断元数据中是否存在第一预设字段,如果存在,则表示本次接收的数据中可能存在消息信息,可以执行后续的步骤。如果不存在,则可以直接执行步骤408,将接收到的数据以及元数据发送至观看端。
步骤403,解析接收到的RTMP数据包。
接收到的数据为RTMP数据包。所以需要对该RTMP数据包进行解析,从而才能够对数据包中的数据进行读取等操作。
步骤404,解析后的数据是否包括FLV脚本标签。
判断解析后的数据是否包括FLV脚本标签。由于主播端可能将待发送的数据封装为多个RTMP数据包,所以需要判断本次接收到的RTMP数据包中的数据是否为FLV脚本标签。
如果包括FLV脚本标签,则表示其中可能保存有消息信息,可以进行后续的步骤。若果不包括FLV脚本标签,则可以直接执行步骤408,将接收到的数据以及元数据发送至观看端。
步骤405,FLV脚本标签中是否存在第二预设字段。
判断FLV脚本标签中是否存在第二预设字段,如果存在第二预设字段,则表示FLV脚本标签中保存有消息信息;如果不存在第二预设字段,则表示该FLV脚本标签中没有保存消息信息,可以直接执行步骤408。
步骤406,获取消息信息,并对消息信息进行AMF解码。
当FLV脚本标签中存在第二预设字段,则可以从该FLV脚本标签中获取消息信息,并使用AMF方式对其进行解码。
步骤407,消息信息的类型是否为服务器消息。
获取消息信息后,可以根据消息信息中消息信息类型的标识,判断出该消息信息是否为服务器消息。如果是服务器消息,则执行步骤409;如果不是服务器消息,则执行步骤408。
步骤408,将接收到的数据及元数据发送至观看端。
步骤409,将消息信息自行保存并进行相应处理。
参见图6,图6为本发明实施例提供的直播数据传输方法应用于观看端的一种流程图,包括:
步骤501,接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息。
观看端是用来播放视频信息和音频数信息、以及消息信息的电子设备,该电子设备可以包括手机、电脑、智能电视等各类能够联网并传输信息的智能设备。可以使用HTTP-FLV(Hyper Text Transfer Protocol-Flash Video,超文本传输视频流协议)协议或RTMP协议或HLS(Http Live Streaming,实时流传输的协议)协议等数据传输协议接收数据,解码完成后进行显示及播放。
观看端可以接收到视频服务器所发送的数据,数据中可以包括视频信息和音频信息,以及消息信息。
步骤502,从数据中获取视频信息和音频信息,并获取包含消息信息的预设数据,预设数据的数据格式与,视频信息和音频信息的数据格式相同。
观看端接收到视频服务器所发送的数据后,可以从接收的数据中获取视频信息和音频信息。
同时,还可以从所接收的数据中检测并筛选出包含有消息信息的预设数据。
预设数据可以是与音频信息和视频信息的数据格式相同的自定义数据,或者是可以随音频信息和视频信息发送的其他非视频、音频的数据。
预设数据可以具有名称或标识,观看端可以通过该名称或标识,判断出所接收的数据中是否含有预设数据。
例如,预设数据可以为FLV脚本标签,则FLV脚本标签在FLV数据中固有的序号,如0x12,就可以作为该预设数据的标识。观看端可以通过该序号,从所接收的数据中检测并获取该FLV脚本标签。
在本发明实施例的另一种实现方式中,由于观看端与视频服务器可以建立起单独用于传输消息信息的数据传输链接,所以观看端可以通过该数据传输链接,直接接收含有消息信息的预设数据,从而直接获取预设数据。
步骤503,从预设数据中获取消息信息。
观看端从接收到的数据中获取预设数据之后,就可以从预设数据中获取消息信息,并且如果消息信息经过编码,则还需要按相应的解码方式进行解码后,再获取消息信息。例如,当消息信息经过AMF编码方式进行了编码,则需要按对应的方式进行解码。
步骤504,根据预设数据中的第一时间标识,将消息信息与视频信息和音频信息同步进行播放,第一时间标识为主播端产生消息信息的同时刻的音频信息或视频信息所具有的时间标识,该时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
观看端获取了视频信息和音频信息,以及消息信息之后,就可以根据预设数据中的第一时间标识,在播放视频信息和音频信息时,在第一时间标识所对应的时间,同步的播放或显示该消息信息。
第一时间标识用来描述产生该消息信息的同时刻的音频信息和视频信息的相对于直播开始时刻的相对时间。例如,第一时间标识可以为产生该消息信息的同时刻的音频信息或视频信息的时间戳。
在本发明实施例中,观看端可以从视频服务器发送的数据中获取视频信息和音频信息,以及包含消息信息的预设数据,并且从预设数据中获取消息信息;在根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放或显示该消息信息。由于可以同时获取视频信息和音频信息,以及消息信息,避免了消息信息和视频、音频信息出现不同步的现象,并且使得当观看端需要存储视频信息和音频信息时,可以同步的存储消息信息。在回放时,同样可以同步的播放消息信息,而不会造成现有技术中,通过IM技术传输消息时所造成的消息信息无法存储的问题。
可选的,本发明实施例提供的直播数据传输方法中,接收视频服务器所发送的数据之前,所述方法还包括:
第一步,接收元数据,元数据用于描述视频服务器所发送的数据的属性信息,所述数据包括以下信息中的一种或多种:消息信息、视频信息和音频信息。
视频服务器在发送数据之前,可以首先向观看端发送元数据,元数据主要用来描述数据属性的信息。从而观看端在接收视频服务器所发送数据之前,可以首先接收到视频服务器所发送的元数据。
第二步,检测元数据中是否存在第一预设字段,第一预设字段用于表示所述视频服务器发送的数据中包含消息信息判断待接收的全部数据中是否含有消息信息。
观看端接收到元数据后,可以检测所接收到的元数据中是否有第一预设字段,第一预设字段是主播端生成元数据中在元数据中添加的,可以为预先配置好的任意字段或标识,用来表示主播端所采集并发送的,且由视频服务器转发的数据中包含消息信息。
第三步,当元数据中不含有第一预设字段时,接收到数据后,播放数据中的视频信息和音频信息。
观看端对元数据进行检测,当检测出元数据中不含有第一预设字段时,则表示本次所接收的数据中不含有消息信息,而只包括有视频信息和音频信息。从而可以不需要进行后续的步骤,可以直接从所接收到的数据中获取并播放视频信息和音频信息。
在本发明实施例中,观看端能够根据所接收到的元数据中是否含有第一预设字段,来判断出所要接收的数据中是否含有消息信息,从而使得观看端对不含有消息信息的数据不再执行后续获取消息信息的步骤,而直接获取并播放该数据中的视频信息和音频信息端,从而可以提高了观看端的处理效率。
可选的,本发明实施例提供的直播数据传输方法中,从数据中获取视频信息和音频信息,并获取包含消息信息的预设数据,包括:
第一步,检测数据的封装格式;
视频服务器向观看端发送数据时,也需要按主播端和视频服务器之间的传输协议相同的数据传输协议进行传输。主播端发送至视频服务器的数据,经过视频服务器转发至观看端,其封装格式和数据本身的格式都不会发生变化。
所以观看端接收到视频服务器发送的数据后,也可以首先对数据的封装格式进行检测,从而确定出所接收数据的数据包格式。例如,所接收数据为RTMP数据包。
第二步,根据封装格式对所述数据进行对应的解析。
观看端确定了所接收数据的封装格式后,就可以针对该封装格式,使用对应的解析方式,进行解析,使封装的数据转化为可以读取的数据。
第三步,从解析后的数据中获取视频信息和音频信息,并获取包含消息信息的预设数据。
观看端完成对封装数据的解析后,就可以对该解析后的数据直接进行读取等操作,从而可以从解析后的数据中获取视频信息和音频信息,并获取包含消息信息的预设数据,进行后续的步骤。
可选的,本发明实施例提供的直播数据传输方法中,预设数据为视频格式FLV数据中的预设标签。
相应的,从预设数据中获取消息信息,包括:
从预设标签中获取消息信息。
观看端所接收的数据可以是FLV数据,FLV数据由多种TAG(标签)组成。预设数据可以为FLV数据中的预设标签。
在本发明实施例的一种实现方式中,FLV数据中的预设标签是FLV数据中自定义的TAG,预设标签可以与FLV数据完全兼容,从而可以与FLV数据同步的进行发送和接收。观看端接收到FLV数据后,可以从FLV数据中的预设标签中获取消息信息。
在本发明实施例的另一种实现方式中,预设数据可以为FLV数据中的FLV脚本标签,从而可以不需要在FLV数据中创建自定义的TAG,直接使用FLV脚本标签存储消息信息。观看端可以直接从FLV脚本标签中获取消息信息,从而更加方便快捷的获取消息信息。
可选的,本发明实施例提供的直播数据传输方法中,从预设标签中获取消息信息,包括:
第一步,判断预设标签中是否存在第二预设字段,第二预设字段用于表示预设标签中含有消息信息。
第二步,当存在所述第二预设字段时,从预设标签中获取所述消息信息。
本发明实施的一种实现方式中,FLV数据中有可能存在不止一个的预设标签,所以为了更加快速的确定出包含有消息信息的预设标签,可以判断预设标签中是否存在第二预设字段,当存在第二预设字段时,则表示该预设标签中含有消息信息,并且可以从该预设标签中获取消息信息。
本发明实施的另一种实现方式中预设数据可以为FLV脚本标签,FLV脚本标签为FLV数据中固有的一种标签。即使不存在消息信息,该FLV脚本标签也可以与FLV数据一起发送,并由观看端接收。所以可以为FLV脚本标签添加第二预设字段,从而使得视频服务器可以更加清楚的判断出所接收到的数据中的FLV脚本标签是否含有消息信息,并且当含有消息信息时,从该FLV脚本标签中获取消息信息。
可选的,本发明实施例提供的直播数据传输方法中,根据预设数据中的第一时间标识,将消息信息与视频信息和音频信息同步进行播放,包括:
第一步,将消息信息与视频信息和音频信息输送至缓冲区。
当观看端获取了视频信息和音频信息,以及消息信息之后,可以先将视频信息和音频信息,以及消息信息输送至缓冲区,缓冲区为数据的缓存,将待播放的视频信息和音频信息,以及消息信息输送至缓冲区,可以使得播放过程更加流畅减少卡顿。
第二步,根据预设数据中的第一时间标识,在播放视频信息和音频信息时,在与所述第一时间标识所对应的时间处,同步播放消息信息。
将视频信息和音频信息,以及消息信息输送至缓冲区后,就可以在播放视频信息和音频信息时,根据预设数据中的第一时间标识所对应的时间,同步的显示或播放消息信息。并且可以对消息信息进行渲染,例如,当消息信息是文字时,可以为文字添加色彩以及动画等渲染效果,从而使得消息信息的显示更加个性化,能够具有更好的展示效果。
可选的,本发明实施例提供的直播数据传输方法中,根据预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,包括:
根据预设数据中的第一时间标识或第二时间标识,将消息信息与视频信息和音频信息同步进行播放,其中第二时间标识为视频服务器将视频服务器向观看端发送的消息信息加入至预设数据时,接收到的数据中的音频信息或视频信息所具有的时间标识,该时间标识用于描述音频信息或视频信息相对于直播开始时刻的相对时间。
观看端所获取的消息信息可以是主播端所发送的消息信息,也可以是视频服务器所发送的消息信息;或者两种消息信息同时存在。当观看端所获取的消息信息中含有视频服务器所发送的消息信息时,预设数据中的时间标识则可以为第一时间标识或第二时间标识。
观看端可以根据预设数据中的第一时间标识或第二时间标识,播放在播放视频信息和音频信息时,在第一时间标识或第二时间标识所对应的时间,同步的播放或显示消息信息。
在本发明实施例中,观看端不仅可以播放主播端所发送的消息信息,也可以根据第二时间标识,同步的播放视频服务器所发送的消息信息。从而扩展了本发明实施例的应用范围。
参见图7,图7为本发明实施例提供的直播数据传输方法应用于观看端的另一种流程图,包括:
步骤601,接收视频服务器发送的RTMP数据包,以及元数据。
步骤602,解析接收到的RTMP数据包,并获取视频信息和音频信息。
可以对接收到的RTMP数据包进行解析,从而使RTMP数据包转化为FLV数据,并从中获取视频信息和音频信息。
步骤603,元数据中是否存在第一预设字段。
判断元数据中是否存在第一预设字段。如果存在,则表示本次接收的数据中可能存在消息信息,可以执行后续的步骤。如果不存在,则可以执行步骤609,直接播放所获取的视频信息和音频信息。
步骤604,解析后的数据是否包括FLV脚本标签。
判断解析后的数据中是否包括FLV脚本标签,如果包括FLV脚本标签,则表示其中可能保存有消息信息,可以进行后续的步骤。若果不包括FLV脚本标签,则可以直接执行步骤609,直接播放所获取的视频信息和音频信息。
步骤605,FLV脚本标签中是否存在第二预设字段。
判断FLV脚本标签中是否存在第二预设字段,如果存在第二预设字段,则表示FLV脚本标签中保存有消息信息;如果不存在第二预设字段,则表示该FLV脚本标签中没有保存消息信息,可以直接执行步骤609。
步骤606,获取消息信息,并对消息信息进行AMF解码。
当FLV脚本标签中存在第二预设字段,则可以从该FLV脚本标签中获取消息信息,并使用AMF方式对其进行解码。
步骤607,将消息信息、以及视频信息和音频信息传输至缓存区。
获取了消息信息、以及视频信息和音频信息之后,可以将上述信息均传输至缓存区。
步骤608,根据FLV脚本标签中的时间戳,将消息信息与视频信息和音频信息同步进行播放,并对消息信息进行渲染。
将视频信息和音频信息,以及消息信息输送至缓冲区后,就可以在播放视频信息和音频信息时,根据预设数据中的第一时间标识所对应的时间,同步的显示或播放消息信息。并且可以对消息信息进行渲染,使消息信息具有更好的展示效果。
步骤609,播放视频信息和音频信息。
参见图8,图8为本发明实施例提供的一种应用于主播端的直播数据传输装置,包括:
第一获取模块701,用于获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
第一添加模块702,用于将所述消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
第二添加模块703,用于在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
第一发送模块704,用于将添加所述第一时间标识的预设数据发送至视频服务器。
在本发明实施例中,主播端将的消息信息加入至预设数据,并为该预设数据添加第一时间标识,将预设数据和所采集的视频信息和音频信息均发送至视频服务器。从而可以不采用现有技术中的IM技术进行消息信息的传输,从而在减少了硬件设备的基础上,由于在预设数据中存在第一时间标识,观看端能够根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放消息信息,从而避免了消息信息和视频、音频信息出现不同步的现象。
可选的,本发明实施例提供的直播数据传输装置中,所述装置还包括:
元数据获取模块,用于获取元数据,所述元数据用于描述所述主播端发送的数据的属性信息,所述数据包括以下信息中的一种或多种:所述消息信息、所述视频信息和音频信息;
元数据配置模块,用于在所述元数据中添加第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息;
元数据发送模块,用于向视频服务器发送所述元数据。
可选的,本发明实施例提供的直播数据传输装置中,所述第一添加模块702中的预设数据为视频格式FLV数据中的预设标签。
相应的,所述第一添加模块702,具体用于:
将所述消息信息,加入FLV数据中的预设标签中。
可选的,本发明实施例提供的直播数据传输装置中,所述第一添加模块702中的所述预设标签为FLV脚本标签。
可选的,本发明实施例提供的直播数据传输装置中,所述第一添加模块702还具体用于:
在所述预设标签中添加第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第一发送模块704,具体用于:将所述预设数据按预设封装格式进行封装,所述预设封装格式为传输所述音频信息和视频信息的的封装格式;将封装后的数据发送至视频服务器。
可选的,本发明实施例提供的直播数据传输装置中,所述第一发送模块704中的所述预设封装格式为RTMP实时消息传输协议格式。
参见图9,图9为本发明实施例提供的一种应用于视频服务器的直播数据传输装置,包括:
第一接收模块801,用于接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息;
第二获取模块802,用于从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
判断模块803,用于根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
第二发送模块804,用于当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端。
在本发明实施例中,视频服务器接收到主播端所发送的数据后,从该数据中获取消息信息,并通过消息信息类型的标识,判断出该消息信息是否为服务器消息,当为服务器消息时,不再向观看端转发该消息信息,并直接由视频服务器保存并进行处理。当,消息信息为其他类型时,则由视频服务器向各个观看端转发所接收到的包含有消息信息的数据。从而保证了各种类型的消息信息都可以通过本发明实施例提供的直播数据传输方法来进行传输,而不需要针对不同类型的消息信息才用不同的传输方法来进行传输。
可选的,本发明实施例提供的直播数据传输装置中,所述装置还包括:
第一元数据接收模块,用于接收元数据,所述元数据用于描述所述主播端发送的数据的属性信息,所述数据包括以下信息中的一种或多种:所述消息信息、所述视频信息和音频信息;
第一监测模块,用于检测所述元数据中是否存在第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息;
转发模块,用于当所述元数据中不含有所述第一预设字段时,接收到所述数据后,将所述数据转发至所述观看端。
可选的,本发明实施例提供的直播数据传输装置中,所述第二获取模块802具体用于:
检测所述数据的封装格式;
根据封装格式对所述数据进行对应的解析;
从解析后的所述数据中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第二获取模块802,具体用于:
检测所述数据中是否包括预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
当存在所述预设数据时,从所述预设数据中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第二获取模块802,具体用于:当所述预设数据为视频格式FLV数据中的预设标签时,从所述预设标签中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,当所述第二获取模块802中的所述预设数据为FLV视频格式数据中的预设标签时,所述第二获取模块802,具体用于:
判断所述预设标签中是否存在第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息;
当存在所述第二预设字段时,从所述预设标签中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第二发送模块804具体用于:
获取所述视频服务器向所述观看端待发送的消息信息;将所述视频服务器向所述观看端待发送的消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;在所述预设数据中添加第二时间标识,所述第二时间标识为所述视频服务器将所述视频服务器向所述观看端发送的消息信息加入所述预设数据时,接收到的所述数据中的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;将添加所述第二时间标识的预设数据和所述视频服务器接收到的所述数据发送至所述观看端。
参见图10,图10为本发明实施例提供的一种应用于观看端的直播数据传输装置,包括:
第二接收模块901,用于接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息;
第三获取模块902,用于从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与,所述视频信息和音频信息的数据格式相同;
第四获取模块903,用于从所述预设数据中获取所述消息信息;
第一播放模块904,用于根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,所述第一时间标识为主播端产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
在本发明实施例中,观看端可以从视频服务器发送的数据中获取视频信息和音频信息,以及包含消息信息的预设数据,并且从预设数据中获取消息信息;在根据预设数据中的第一时间标识,在播放视频信息和音频信息的同时,同步的播放或显示该消息信息。由于可以同时获取视频信息和音频信息,以及消息信息,避免了消息信息和视频、音频信息出现不同步的现象,并且使得当观看端需要存储视频信息和音频信息时,可以同步的存储消息信息。在回放时,同样可以同步的播放消息信息,而不会造成现有技术中,通过IM技术传输消息时所造成的消息信息无法存储的问题。
可选的,本发明实施例提供的直播数据传输装置中,所述装置还包括:
第二元数据接收模块,用于接收元数据,所述元数据用于描述主播端发送的数据的属性信息,所述数据包括以下信息中的一种或多种:所述消息信息、所述视频信息和音频信息;
第二检测模块,用于检测所述元数据中是否存在第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息判断待接收的全部数据中是否含有消息信息;
第二播放模块,用于当所述元数据中不含有所述第一预设字段时,接收到所述数据后,播放所述数据中的视频信息和音频信息。
可选的,本发明实施例提供的直播数据传输装置中,所述从第三获取模块902,具体用于:
检测所述数据的封装格式;
根据封装格式对所述数据进行对应的解析;
从解析后的数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据。
可选的,本发明实施例提供的直播数据传输装置中,所述装置中的所述预设数据为视频格式FLV数据中的预设标签;
相应的,所述第四获取模块903,具体用于:
从所述预设标签中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第四获取模块903,具体用于:
判断所述预设标签中是否存在第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息;
当存在所述第二预设字段时,从所述预设标签中获取所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第一播放模块904,具体用于:
将所述消息信息与所述视频信息和音频信息输送至缓冲区;
根据所述预设数据中的第一时间标识,在播放所述视频信息和音频信息时,在于与所述第一时间标识所对应的时间处,同步播放所述消息信息。
可选的,本发明实施例提供的直播数据传输装置中,所述第一播放模块904具体用于:
根据所述预设数据中的第一时间标识或第二时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,其中所述第二时间标识为所述视频服务器将所述视频服务器向所述观看端发送的消息信息加入至预设数据时,接收到的数据中的音频信息或视频信息的时间。
本发明实施例的装置是应用上述直播数据传输方法的装置,则上述直播数据传输方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例还提供了一种主播端电子设备,如图11所示,包括第一处理器1001、第一通信接口1002、第一存储器1003和第一通信总线1004,其中,第一处理器1001,第一通信接口1002,第一存储器1003通过第一通信总线1004完成相互间的通信,
第一存储器1003,用于存放计算机程序;
第一处理器1001,用于执行第一存储器1003上所存放的程序时,实现如下步骤:
获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
将所述消息信息,加入至预设数据,所述预设数据的数据格式与所述音频信息和视频信息的数据格式相同;
在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息的时间;
将添加所述第一时间标识的预设数据发送至视频服务器。
本发明实施例还提供了一种视频服务器,如图12所示,包括第二处理器1101、第二通信接口1102、第二存储器1103和第二通信总线1104,其中,第二处理器1101,第二通信接口1102,第二存储器1103通过第二通信总线1104完成相互间的通信,
第二存储器1103,用于存放计算机程序;
第二处理器1101,用于执行第二存储器1103上所存放的程序时,实现如下步骤:
接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息;
从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端。
本发明实施例还提供了一种观看端电子设备,如图13所示,包括第三处理器1201、第三通信接口1202、第三存储器1203和第三通信总线1204,其中,第三处理器1201,第三通信接口1202,第三存储器1203通过第三通信总线1204完成相互间的通信,
第三存储器1203,用于存放计算机程序;
第三处理器1201,用于执行第三存储器1203上所存放的程序时,实现如下步骤:
接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息;
从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与所述视频信息和音频信息的数据格式相同;
从所述预设数据中获取所述消息信息;
根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放。
上述装置提到的通信总线,包括第一通信总线、第二通信总线和第三通信总线,可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口,包括第一通信接口、第二通信接口和第三通信接口,可以用于上述装置与其他设备之间的通信。
存储器,包括第一存储器、第二存储器和第三存储器,可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器,包括第一处理器、第二处理器和第三处理器,可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
相应于上述实施例所提供的应用于主播端的直播数据传输方法,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的直播数据传输方法,包括:
获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
将所述消息信息,加入至预设数据,所述预设数据的数据格式与所述音频信息和视频信息的数据格式相同;
在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息的时间;
将添加所述第一时间标识的预设数据发送至视频服务器
相应于上述实施例所提供的应用于视频服务器的直播数据传输方法,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的直播数据传输方法,包括:
接收主播端所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息、视频信息和音频信息;
从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端。
相应于上述实施例所提供的应用于观看端的直播数据传输方法,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的直播数据传输方法,包括:
接收视频服务器所发送的数据,所述数据中包括以下信息中的一种或多种:消息信息,视频信息和音频信息;
从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与所述视频信息和音频信息的数据格式相同;
从所述预设数据中获取所述消息信息;
根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放。
对于直播数据传输装置以及计算机可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (29)
1.一种直播数据传输方法,其特征在于,应用于主播端,包括:
获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
将所述消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
将添加所述第一时间标识的预设数据发送至视频服务器。
2.根据权利要求1所述的方法,其特征在于,在所述获取待发送消息信息之前,所述方法还包括:
获取元数据,所述元数据用于描述所述主播端发送的数据的属性信息,所述数据包括以下信息中的一种或多种:所述消息信息、所述视频信息和音频信息;
在所述元数据中添加第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息;
向视频服务器发送所述元数据。
3.根据权利要求1所述的方法,其特征在于,所述预设数据为视频格式FLV数据中的预设标签;
相应的,所述将所述消息信息,加入至预设数据中,包括:
将所述消息信息,加入FLV数据中的预设标签中。
4.根据权利要求3所述的方法,其特征在于,所述预设标签为FLV脚本标签。
5.根据权利要求3所述的方法,其特征在于,在所述将所述消息信息,加入FLV数据中的预设标签中之后,所述方法还包括:
在所述预设标签中添加第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述将添加所述第一时间标识的预设数据发送至视频服务器,包括:
将添加所述第一时间标识的预设数据按预设封装格式进行封装,所述预设封装格式为传输所述音频信息和视频信息的封装格式;
将封装后的数据发送至视频服务器。
7.根据权利要求6所述的方法,其特征在于,所述预设封装格式为RTMP实时消息传输协议格式。
8.一种直播数据传输方法,其特征在于,应用于视频服务器,包括:
接收主播端所发送的数据,所述数据中包括视频信息和音频信息中的至少一种、以及消息信息;
从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端;
所述将接收到的所述数据转发至所述观看端,包括:
获取所述视频服务器向所述观看端待发送的消息信息;
将所述视频服务器向所述观看端待发送的消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
在所述预设数据中添加第二时间标识,所述第二时间标识为所述视频服务器将所述视频服务器向所述观看端待发送的消息信息加入所述预设数据时,接收到的所述数据中的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
将添加所述第二时间标识的预设数据和所述视频服务器接收到的所述数据发送至所述观看端。
9.根据权利要求8所述的方法,其特征在于,所述接收主播端所发送的数据之前,所述方法还包括:
接收元数据,所述元数据用于描述所述主播端发送的数据的属性信息,所述数据包括以下信息中的一种或多种:所述消息信息、所述视频信息和音频信息;
检测所述元数据中是否存在第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息;
当所述元数据中不含有所述第一预设字段时,接收到所述数据后,将所述数据转发至所述观看端。
10.根据权利要求8所述的方法,其特征在于,所述从所述数据中获取所述消息信息,包括:
检测所述数据的封装格式;
根据封装格式对所述数据进行对应的解析;
从解析后的所述数据中获取所述消息信息。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述从所述数据中获取所述消息信息,包括:
检测所述数据中是否包括预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
当存在所述预设数据时,从所述预设数据中获取所述消息信息。
12.根据权利要求11所述的方法,其特征在于,所述当存在所述预设数据时,从所述预设数据中获取所述消息信息,包括:
当所述预设数据为视频格式FLV数据中的预设标签时,从所述预设标签中获取所述消息信息。
13.根据权利要求12所述的方法,其特征在于,所述当所述预设数据为FLV视频格式数据中的预设标签时,从所述预设标签中获取所述消息信息,包括:
判断所述预设标签中是否存在第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息;
当存在所述第二预设字段时,从所述预设标签中获取所述消息信息。
14.一种直播数据传输方法,其特征在于,应用于观看端,包括:
接收视频服务器所发送的数据,所述数据中包括消息信息,视频信息和音频信息;
从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与,所述视频信息和音频信息的数据格式相同;
从所述预设数据中获取所述消息信息;
根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,所述第一时间标识为主播端产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
15.根据权利要求14所述的方法,其特征在于,所述接收视频服务器所发送的数据之前,所述方法还包括:
接收元数据,所述元数据用于描述主播端发送的数据的属性信息,所述数据包括:所述消息信息、所述视频信息和所述音频信息;
检测所述元数据中是否存在第一预设字段,所述第一预设字段用于表示所述主播端发送的数据中包含所述消息信息判断待接收的全部数据中是否含有消息信息;
当所述元数据中不含有所述第一预设字段时,接收到所述数据后,播放所述数据中的视频信息和音频信息。
16.根据权利要求14所述的方法,其特征在于,所述从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,包括:
检测所述数据的封装格式;
根据封装格式对所述数据进行对应的解析;
从解析后的数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据。
17.根据权利要求14至16中任一项所述的方法,其特征在于,所述预设数据为视频格式FLV数据中的预设标签;
相应的,所述从所述预设数据中获取所述消息信息,包括:
从所述预设标签中获取所述消息信息。
18.根据权利要求17所述的方法,其特征在于,所述从所述预设数据中获取所述消息信息,包括:
判断所述预设标签中是否存在第二预设字段,所述第二预设字段用于表示所述预设标签中含有所述消息信息;
当存在所述第二预设字段时,从所述预设标签中获取所述消息信息。
19.根据权利要求14所述的方法,其特征在于,所述根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,包括:
将所述消息信息与,所述视频信息和音频信息输送至缓冲区;
根据所述预设数据中的第一时间标识,在播放所述视频信息和音频信息时,在于与所述第一时间标识所对应的时间处,同步播放所述消息信息。
20.根据权利要求14或19所述的方法,其特征在于,所述根据所述预设数据中的第一时间标识,将所述消息信息与,所述视频信息和音频信息同步进行播放,包括:
根据所述预设数据中的第一时间标识或第二时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,其中所述第二时间标识为所述视频服务器将所述视频服务器向所述观看端发送的消息信息加入至预设数据时,接收到的所述数据中的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
21.一种直播数据传输装置,其特征在于,应用于主播端,包括:
第一获取模块,用于获取待发送的消息信息,所述消息信息包括所述主播端向视频服务器或客户端发送的除音频信息和视频信息以外的其他信息;
第一添加模块,用于将所述消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;
第二添加模块,用于在所述预设数据中添加第一时间标识,所述第一时间标识为产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;
第一发送模块,用于将添加所述第一时间标识的预设数据发送至视频服务器。
22.一种直播数据传输装置,其特征在于,应用于视频服务器,包括:
第一接收模块,用于接收主播端所发送的数据,所述数据中包括视频信息和音频信息中的至少一种,以及消息信息;
第二获取模块,用于从所述数据中获取所述消息信息,所述消息信息中至少包括:所述消息信息类型的标识;
判断模块,用于根据所述消息信息中消息信息类型的标识,判断所述消息信息是否为服务器消息,所述服务器消息为发送至视频服务器的消息信息,不需要发送至观看端;
第二发送模块,用于当所述消息信息不是所述服务器消息时,将接收到的所述数据转发至所述观看端;
所述第二发送模块具体用于:
获取所述视频服务器向所述观看端待发送的消息信息;将所述视频服务器向所述观看端待发送的消息信息,加入至预设数据,所述预设数据的数据格式与,所述音频信息和视频信息的数据格式相同;在所述预设数据中添加第二时间标识,所述第二时间标识为所述视频服务器将所述视频服务器向所述观看端发送的消息信息加入所述预设数据时,接收到的所述数据中的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间;将添加所述第二时间标识的预设数据和所述视频服务器接收到的所述数据发送至所述观看端。
23.一种直播数据传输装置,其特征在于,应用于观看端,包括:
第二接收模块,用于接收视频服务器所发送的数据,所述数据中包括:消息信息,视频信息和音频信息;
第三获取模块,用于从所述数据中获取所述视频信息和音频信息,并获取包含所述消息信息的预设数据,所述预设数据的数据格式与,所述视频信息和音频信息的数据格式相同;
第四获取模块,用于从所述预设数据中获取所述消息信息;
第一播放模块,用于根据所述预设数据中的第一时间标识,将所述消息信息与所述视频信息和音频信息同步进行播放,所述第一时间标识为主播端产生所述消息信息的同时刻的音频信息或视频信息所具有的时间标识,所述时间标识用于描述所述音频信息或视频信息相对于直播开始时刻的相对时间。
24.一种主播端电子设备,其特征在于,包括:
第一处理器、第一通信接口、第一存储器和第一通信总线,其中,第一处理器,第一通信接口,第一存储器通过第一通信总线完成相互间的通信;
第一存储器,用于存放计算机程序;
第一处理器,用于执行第一存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
25.一种视频服务器,其特征在于,包括:
第二处理器、第二通信接口、第二存储器和第二通信总线,其中,第二处理器,第二通信接口,第二存储器通过第二通信总线完成相互间的通信;
第二存储器,用于存放计算机程序;
第二处理器,用于执行第二存储器上所存放的程序时,实现权利要求8-13任一所述的方法步骤。
26.一种观看端电子设备,其特征在于,包括:
第三处理器、第三通信接口、第三存储器和第三通信总线,其中,第三处理器,第三通信接口,第三存储器通过第三通信总线完成相互间的通信;
第三存储器,用于存放计算机程序;
第三处理器,用于执行第三存储器上所存放的程序时,实现权利要求14-20任一所述的方法步骤。
27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求8-13任一所述的方法步骤。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求14-20任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710452576.5A CN107666619B (zh) | 2017-06-15 | 2017-06-15 | 直播数据传输方法、装置、电子设备、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710452576.5A CN107666619B (zh) | 2017-06-15 | 2017-06-15 | 直播数据传输方法、装置、电子设备、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107666619A CN107666619A (zh) | 2018-02-06 |
CN107666619B true CN107666619B (zh) | 2019-11-08 |
Family
ID=61121799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710452576.5A Active CN107666619B (zh) | 2017-06-15 | 2017-06-15 | 直播数据传输方法、装置、电子设备、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107666619B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449650A (zh) * | 2018-04-09 | 2018-08-24 | 四川百视通科技有限公司 | 一种rtmp直播流到http flv直播流实时转换系统及其工作方法 |
CN108521584B (zh) * | 2018-04-20 | 2020-08-28 | 广州虎牙信息科技有限公司 | 互动信息处理方法、装置、主播侧设备和介质 |
CN109064806A (zh) * | 2018-09-26 | 2018-12-21 | 北京奇艺世纪科技有限公司 | 一种具有教学功能的视频系统、实现方法及电子设备 |
CN111064984B (zh) * | 2018-10-16 | 2022-02-08 | 杭州海康威视数字技术股份有限公司 | 一种视频帧的智能信息叠加显示方法、装置及硬盘录像机 |
CN109819300A (zh) * | 2019-01-03 | 2019-05-28 | 北京潘达互娱科技有限公司 | 一种消息内容展示方法、发送方法、装置、终端和系统 |
CN111586344B (zh) * | 2019-02-18 | 2022-03-11 | 浙江宇视科技有限公司 | 一种网络摄像机的消息发送方法及装置 |
US11102540B2 (en) | 2019-04-04 | 2021-08-24 | Wangsu Science & Technology Co., Ltd. | Method, device and system for synchronously playing message stream and audio-video stream |
CN110035311A (zh) * | 2019-04-04 | 2019-07-19 | 网宿科技股份有限公司 | 一种同步播放消息流与音视频流的方法、装置和系统 |
CN110225384A (zh) * | 2019-06-18 | 2019-09-10 | 北京字节跳动网络技术有限公司 | 状态消息的推送方法、交互内容的切换方法、装置及设备 |
CN110662085B (zh) * | 2019-10-16 | 2021-10-01 | 北京字节跳动网络技术有限公司 | 消息发送方法、装置、可读介质及电子设备 |
CN113473161B (zh) * | 2020-03-31 | 2024-05-24 | 腾讯科技(成都)有限公司 | 直播方法、装置、设备及计算机存储介质 |
CN115209175B (zh) * | 2022-07-18 | 2023-10-24 | 深圳蓝色鲨鱼科技有限公司 | 一种语音传输方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272469A (zh) * | 2007-03-23 | 2008-09-24 | 杨子江 | 用于教学与会场的录制系统及方法 |
CN101764750A (zh) * | 2009-12-07 | 2010-06-30 | 福建星网锐捷网络有限公司 | 报文封装方法和检测转发环路的方法、装置及网络设备 |
CN102752643A (zh) * | 2012-06-11 | 2012-10-24 | 苏州阔地网络科技有限公司 | 一种流媒体直播方法及系统 |
CN103516577A (zh) * | 2012-06-25 | 2014-01-15 | 北京神州泰岳软件股份有限公司 | 即时通信系统中的消息传输方法和设备 |
CN104918124A (zh) * | 2015-05-11 | 2015-09-16 | 腾讯科技(北京)有限公司 | 直播互动系统、信息发送方法、信息接收方法及装置 |
CN105027101A (zh) * | 2013-01-09 | 2015-11-04 | 极佳娱乐传媒有限公司 | 同时的内容数据流和交互作用系统 |
CN105100954A (zh) * | 2014-05-07 | 2015-11-25 | 朱达欣 | 一种基于互联网通信及流媒体直播的交互应答系统及方法 |
CN106162230A (zh) * | 2016-07-28 | 2016-11-23 | 北京小米移动软件有限公司 | 直播信息的处理方法、装置、主播端、服务器及系统 |
-
2017
- 2017-06-15 CN CN201710452576.5A patent/CN107666619B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272469A (zh) * | 2007-03-23 | 2008-09-24 | 杨子江 | 用于教学与会场的录制系统及方法 |
CN101764750A (zh) * | 2009-12-07 | 2010-06-30 | 福建星网锐捷网络有限公司 | 报文封装方法和检测转发环路的方法、装置及网络设备 |
CN102752643A (zh) * | 2012-06-11 | 2012-10-24 | 苏州阔地网络科技有限公司 | 一种流媒体直播方法及系统 |
CN103516577A (zh) * | 2012-06-25 | 2014-01-15 | 北京神州泰岳软件股份有限公司 | 即时通信系统中的消息传输方法和设备 |
CN105027101A (zh) * | 2013-01-09 | 2015-11-04 | 极佳娱乐传媒有限公司 | 同时的内容数据流和交互作用系统 |
CN105100954A (zh) * | 2014-05-07 | 2015-11-25 | 朱达欣 | 一种基于互联网通信及流媒体直播的交互应答系统及方法 |
CN104918124A (zh) * | 2015-05-11 | 2015-09-16 | 腾讯科技(北京)有限公司 | 直播互动系统、信息发送方法、信息接收方法及装置 |
CN106162230A (zh) * | 2016-07-28 | 2016-11-23 | 北京小米移动软件有限公司 | 直播信息的处理方法、装置、主播端、服务器及系统 |
Non-Patent Citations (1)
Title |
---|
交互式网络视频直播系统关键技术研究与实现;梁尚韬;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20111215;I136-623 * |
Also Published As
Publication number | Publication date |
---|---|
CN107666619A (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107666619B (zh) | 直播数据传输方法、装置、电子设备、服务器及存储介质 | |
US20220159320A1 (en) | Method and apparatus for transmitting media data in multimedia transport system | |
CN103763626B (zh) | 一种信息推送方法、设备和系统 | |
CN108200447B (zh) | 直播数据传输方法、装置、电子设备、服务器及存储介质 | |
CN102263959B (zh) | 直播中转方法和系统 | |
KR102225948B1 (ko) | 지상파 방송망과 인터넷 프로토콜망 연동 기반의 하이브리드 방송 시스템에서 방송 서비스의 송수신 방법 및 장치 | |
CN104902343B (zh) | 一种传输和播放音视频与消息的方法、服务器及终端 | |
CN107637040A (zh) | 使用websocket子协议来传输媒体数据 | |
US9807448B2 (en) | Reception device, transmission device, and data processing method | |
US20190020915A1 (en) | Processing media data using file tracks for web content | |
CN107659538A (zh) | 一种视频处理的方法及设备 | |
EP3741132A1 (en) | Processing dynamic web content of an iso bmff web resource track | |
TW202249495A (zh) | 基於傳輸流元資料對媒體動態加浮水印以促進下游實體的動作 | |
CN104602105A (zh) | 视频文件的播放方法及用户设备 | |
CN108632642A (zh) | 流媒体推送方法及装置 | |
KR102473346B1 (ko) | 디지털 방송 서비스 방법 및 장치 | |
CN109451448B (zh) | 多媒体短信内容带定义格式文件的发送和接收装置及方法 | |
EP3007450B1 (en) | Transmission device, transmission method, receiving device, and receiving method | |
WO2017145144A1 (en) | System and method for associating messages with media during playing thereof | |
CN110996181A (zh) | 一种多源内容数据统一封装方法 | |
CN113965551A (zh) | 流媒体场景的测试方法、装置及系统、存储介质 | |
KR20190008204A (ko) | 수신 장치 및 데이터 처리 방법 | |
CN101577861A (zh) | 确定补充数据的方法、传输补充数据的方法以及相关设备 | |
CN112449212B (zh) | 一种音视频码流的处理方法、装置及控制设备 | |
CN113473163B (zh) | 网络直播过程中的数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |