WO2018121405A1 - 一种流数据的传输方法和装置 - Google Patents

一种流数据的传输方法和装置 Download PDF

Info

Publication number
WO2018121405A1
WO2018121405A1 PCT/CN2017/117749 CN2017117749W WO2018121405A1 WO 2018121405 A1 WO2018121405 A1 WO 2018121405A1 CN 2017117749 W CN2017117749 W CN 2017117749W WO 2018121405 A1 WO2018121405 A1 WO 2018121405A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream data
client
node
transmission
transmission node
Prior art date
Application number
PCT/CN2017/117749
Other languages
English (en)
French (fr)
Inventor
严国涛
殷宇辉
Original Assignee
北京奇虎科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 北京奇虎科技有限公司 filed Critical 北京奇虎科技有限公司
Publication of WO2018121405A1 publication Critical patent/WO2018121405A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Definitions

  • the ordinary user can send a connection request to the anchor, and after the anchor approves the connection request, the live stream data pushed by the wheat end and the anchor end is displayed together on the user client.
  • a plurality of continuation methods are included. For example, after the anchor approves the request of the common user, a new data channel is created for the anchor end and the connected end, and the anchor end receives the live stream data released by the mai end through the newly created data channel. Synthesizing the live stream data collected locally and the live stream data released by the link, and then transmitting the synthesized video stream data to the streaming server; or, even connecting to the video conference channel where the anchor end is located, synthesizing The server synthesizes the multiple live stream data in the video conference, and then transmits the synthesized live stream data to the streaming server to distribute the processing.
  • the present invention relates to the field of information processing technologies, and in particular, to a method for transmitting stream data, and a device for transmitting stream data.
  • the present invention has been made in order to provide a method of transmitting stream data and a corresponding stream data transmission apparatus that overcome the above problems or at least partially solve the above problems.
  • a method for transmitting stream data comprising: transmitting, according to a transmission path, first stream data from a first client to a second client, the transmission path passing through a plurality of target transmission nodes, at least a target transmission node having an associated transmission node; receiving second stream data transmitted by the second client to the target transmission node; pushing the second stream data from each target transmission node to the The first client and the at least one third client.
  • a method for transmitting stream data comprising: receiving first stream data transmitted from a first client according to a transmission path, the transmission path passing through a plurality of target transmission nodes, each target transmission node Having at least one associated transport node; transmitting second stream data to the target transport node to push the second stream data to the first client and at least one of the target transport nodes via the associated transport node Three clients.
  • a stream data transmission apparatus comprising: a first stream data transmission module, configured to transmit first stream data from a first client to a second client according to a transmission path, the transmission The path passes through the plurality of target transmission nodes, and the at least one target transmission node has an associated transmission node; the second stream data receiving module is configured to receive the second stream data transmitted by the second client to the target transmission node; and the second stream data is pushed And a module, configured to push the second stream data from each target transmission node to the first client and the at least one third client by using the associated transit node.
  • a stream data transmission apparatus including: a first stream data receiving module, configured to receive first stream data transmitted from a first client according to a transmission path, where the transmission path passes through multiple a target transmission node, each target transmission node has at least one associated transmission node; and a second stream data transmission module is configured to transmit second stream data to the target transmission node, so that each target transmission node passes through the associated transmission node The second stream data is pushed to the first client and the at least one third client.
  • a computer program comprising computer readable code, when the computer readable code is run on a computing device, causing the computing device to perform the method of transmitting the stream data .
  • a computer readable medium wherein the computer program is stored.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • the embodiment of the present invention uses the same transmission path to transmit stream data and information, eliminating the establishment of multiple transmission paths for stream data and information in the conventional method, and saving path establishment.
  • FIG. 1 is a flow chart showing the steps of a method for transmitting stream data according to a first embodiment of the present invention
  • FIG. 2 is a flow chart showing the steps of a method for transmitting stream data according to Embodiment 2 of the present invention
  • FIG. 3 is a schematic diagram of a network topology structure between live broadcasts according to Embodiment 2 of the present invention.
  • FIG. 4 is a flow chart showing the steps of a method for transmitting stream data according to Embodiment 3 of the present invention.
  • FIG. 5 is a structural block diagram of a stream data transmission apparatus according to Embodiment 4 of the present invention.
  • FIG. 6 is a block diagram showing the structure of a stream data transmission apparatus according to Embodiment 5 of the present invention.
  • FIG. 7 is a block diagram showing the structure of a stream data transmission apparatus according to Embodiment 6 of the present invention.
  • Figure 8 shows a schematic block diagram of a computing device for performing the method according to the invention
  • Figure 9 shows a schematic block diagram of a storage unit for holding or carrying program code implementing a method according to the invention.
  • FIG. 1 a flow chart of a method for transmitting a stream data according to a first embodiment of the present invention is shown.
  • Step 101 The first stream data is transmitted from the first client to the second client according to the transmission path, the transmission path passes through the plurality of target transmission nodes, and the at least one target transmission node has an associated transmission node.
  • the method described in this embodiment of the present invention is applied to a scenario in which video stream data transmitted in a streaming manner exists.
  • the client and the client are connected by a transmission path, and the transmission path flows through one or more transmission nodes, so that a certain client is based on multiple transmission paths.
  • the end is connected to several other clients.
  • Stream data transmitted between clients can be transmitted using a Content Delivery Network (CDN).
  • CDN Content Delivery Network
  • the first client transmits the first stream data to the second client according to the pre-established transmission path.
  • the transmission node through which the transmission path of the first client and the second client passes is referred to as a target transmission node, and the number of target transmission nodes is plural, and at least one target transmission node has an associated transmission node.
  • the associated transit node may be a transport node directly connected to the target transport node, or may be a transport node indirectly connected to the target transport node through the directly connected transport node.
  • the method in the embodiment of the present invention can be applied to multiple application scenarios, such as a live video scene, a video conference scenario, and the like.
  • the first client may be the anchor end in the live broadcast room, and the second client may be the guest end in the live broadcast room; the first stream data is transmitted by the host broadcast end. Live stream data.
  • the dispatch node allocates the transmission path of the normal user to the anchor, the guest, and other common users, that is, the scheduling node adjusts the network topology of the live broadcast. Add the new normal client to the network topology.
  • the scheduling node can allocate a transmission path for the common user according to the geographic location information of the area where the ordinary user terminal is located, the load status of the transmission node, and the like.
  • the ordinary user can send a connection request to the anchor end according to the pre-established transmission path. If the anchor approves the connection request, the ordinary user becomes a guest, and the client where the client is turned into a guest end, the guest end has the right to upload Audio and video data, the uploaded live stream data is displayed on the anchor side and other user clients together with the live stream data uploaded by the anchor end. For example, it is displayed together in the form of picture-in-picture.
  • the live stream data may be transmitted to the guest end according to the transmission path configured by the scheduling node for the anchor end and the guest end.
  • Step 102 Receive second stream data that is transmitted by the second client to the target transit node.
  • the stream data published by the second client is referred to as second stream data.
  • the second stream data is transmitted to the network topology, and specifically, the second client transmits the second stream data to the target transport node directly connected thereto, and the target transmission is performed.
  • the node receives the second stream data transmitted by the second client. Then, according to the reverse path of the transmission path of the first client and the second client, the second stream data is pushed to each target transmission node through which the transmission path passes.
  • the guest In the live video scene, when the ordinary user becomes a guest, the guest has the right to publish the live stream data.
  • the guest end transmits the released live stream data to the target transport node directly connected to the guest end in the transmission path, and then according to each of the transmission paths.
  • Step 103 Push the second stream data from each target transmission node to the first client and the at least one third client via the associated transit node.
  • each target transmission node After receiving the second stream data, each target transmission node pushes the second stream data from the target transmission node to the associated transmission node, and finally pushes the second stream data to the first client. And the third client completes the broadcast transmission of the second stream data.
  • the first client may be the anchor end in the live broadcast room
  • the third client may be the other guest end or the normal user end in the live broadcast room.
  • the ordinary user becomes a guest after the success of the Mai, and can broadcast the live stream data published by the guest end according to the transmission path in the network topology and the connection relationship between the transmission nodes when entering the live broadcast room to become an ordinary user, without establishing a new transmission path.
  • the path establishment time is saved, and the real-time performance of the stream data transmission is ensured. Since a system is used to support live stream forwarding on the anchor side and live stream forwarding on the guest side, the system overhead is reduced.
  • the method may further include: determining The second stream data points to the broadcast transmission mode.
  • the target transmitting node since the client can unicast the streaming data to the first client according to the pre-established network topology, or broadcast the streaming data to the first client and the third client, the target transmitting node receives the data. After the second stream data is released by the second client, it is required to determine the transmission mode of the second stream data. If it is determined that the second stream data points to the broadcast transmission mode, broadcast transmission is performed; if it is determined that the second stream data does not point to The broadcast transmission mode, that is, determining that the second stream data is unicast, pushes the second stream data from each target transmission node to the first client.
  • the second stream data points to the broadcast transmitting party by determining a method including the identifier of the broadcast transmission mode in the data protocol header of the second stream data.
  • the identification of the mode of communication can take many forms, such as numbers, letters, words, graphics, and the like.
  • Different identifiers indicating different transmission modes may be set in advance on the user client, for example, setting the identifier “a” for the broadcast transmission mode, setting the identifier “b” for the unicast transmission mode, and limiting the flow when the client uploads the streaming data.
  • the data protocol header of the data is added with an identifier corresponding to the data transmission mode; or the terminal identifier may be set for different clients in advance, for example, the end identifier of the first client is set to “0”, and the end identifiers of other clients except the first client are All are "1”, and the end identifier "1" indicates the broadcast transmission mode, and when the client uploads the stream data, the end identifier of the destination client that receives the stream data is added to the data protocol header of the stream data.
  • the second client When the second stream data is broadcasted, the second client performs corresponding processing on the second stream data, so that the released second stream data carries the end identifier of the multiple destination clients, the number of multiple destination clients, or the destination client.
  • the number of ends is information such as multiple identifiers.
  • the target transmission node After the target transmission node recognizes the foregoing information, it is determined that the second stream data is a broadcast transmission mode.
  • the method of the embodiment of the present invention further includes determining that the second client has broadcast rights.
  • the target transit node may determine whether the second client has broadcast rights, and only broadcast the second stream data when the second client has broadcast rights.
  • the target transit node can determine the upload live stream. Whether the user client of the data has the broadcast right, that is, whether the owner has granted the connection permission to the connection, and if it is determined that the client has the broadcast permission, the next step is performed to push the live stream data.
  • the second client can be determined to have broadcast rights in various ways, for example, a feature client set with broadcast rights can be found, and it can be determined that the second client exists in the feature client set.
  • the feature client set is a set of clients with broadcast rights, and the feature client set is stored in each transport node. If it is determined that the second client is within the feature client set stored locally by the transit node, then the second client is determined to have broadcast rights.
  • the feature client can be a guest with broadcast rights
  • the feature client set can be a guest set, and specifically a set of end identifiers of multiple guest ends.
  • the anchor After the anchor approves the general user's request, the ordinary user becomes the guest, the anchor will update the local guest information set, and transmit the updated guest information set to the target transmission node directly connected with it, and further It is transmitted from the target transport node to each transport node in the transport node cluster configured for the live broadcast, and each transport node updates the version of the locally stored guest information set.
  • the guest information set can be updated in various ways. For example, the anchor end can periodically update the set of the guest information, and the anchor end can update the set of the guest information after approving the request of a common user.
  • each transmission node Since each transmission node records the guest information set in the live broadcast room, after the target transmission node receives the live stream data published by the guest end, the target transport node directly connected with the guest end receives the live stream released by the guest end. After the data, the user side of the locally stored guest information set may be found to include the guest end that publishes the live stream data. If it is included, it is determined that the guest end has the broadcast right; otherwise, it is determined that the guest end does not have the broadcast right.
  • different identity identifier fields may be set for different clients, and when the second client sends the second stream data, the identity identifier field set for the second client is added to the data protocol header.
  • the method for determining that the second client has the broadcast right may further include: extracting, from the data protocol header of the received second stream data, an identity identifier field of the second client, and identifying that the identity identifier field carried by the stream data belongs to the target value interval.
  • the target data interval is set for clients with broadcast rights. If the identity field does not belong to the target value interval, it is determined that the second client does not have broadcast rights.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • FIG. 2 is a schematic flow chart of a method for transmitting a stream data according to a second embodiment of the present invention, which may specifically include the following steps:
  • Step 201 The first stream data is transmitted from the first client to the second client according to the transmission path, the transmission path passes through the plurality of target transmission nodes, and the at least one target transmission node has an associated transmission node.
  • Step 202 Receive second stream data that is transmitted by the second client to the directly connected target transmission node.
  • the second client When the second client transmits the second stream data, it transmits the transmission to the target transmission node directly connected thereto.
  • the live stream data In the live video broadcast scenario, when the guest broadcasts the live stream data, the live stream data is transmitted to the target transport node directly connected to the guest.
  • Step 203 Push the second stream data to other target transmission nodes in sequence according to the reverse sequence of the transmission path.
  • the path direction of the transmission path of the first client and the second client is the first client to the second client, and in the path direction, the plurality of target transmission nodes through which the transmission path passes have an arrangement order.
  • the second client transmits the second stream data the second stream data may be transmitted from the second client to the first client according to the reverse sequence of the transmission paths of the first client and the second client, correspondingly The secondary stream data is sequentially pushed to other target transmission nodes through which the transmission path passes.
  • the transmission path of the anchor end and the guest end sequentially passes through the transmission node 1, the transmission node 2, and the transmission node 3.
  • the guest end pushes the released audio and video stream data to the transmission node 3 directly connected thereto, and then follows.
  • the audio and video stream data is pushed to the transmission node 2, further pushed to the transmission node 1, and finally pushed to the anchor end.
  • Step 204 Push the second stream data to the primary association transmission node or the first client or the third client that is directly connected to the target transmission node.
  • some of the transport nodes have associated transport nodes, and the associated transport nodes may be directly connected or indirectly connected transport nodes.
  • the associated transmission node may be divided into multiple levels according to the node connection order, such as a primary associated transmission node, a secondary associated transmission node, a tertiary associated transmission node, etc., wherein the primary associated transmission node is directly connected to a certain transmission node.
  • the transit node, the secondary associated transport node is a transport node that is directly connected to the primary associated transport node, and so on.
  • the target transmission node through which the transmission path of the first client and the second client passes may include multiple connections, such as the target transmission node may directly connect with other target transmission nodes, a primary association transmission node, the first client, or the third client. .
  • the second transmission data transmitted by the second client is received by the target transmission node based on the level setting of the associated transmission node and the connection relationship of the target transmission node, the second transmission data is pushed to the other target transmission node, and the second The streaming data is pushed to the primary associated transport node or the first client or the third client to which it is directly connected.
  • the downlink destination transmission node in the transmission path can be locally recorded at the destination transmission node through which the transmission path passes.
  • the transmission node at the end of the transmission direction is defined as the transmission node at the beginning of the transmission direction.
  • Downlink transmission node For example, the transmission path of the first client to the second client is Node 1 - Node 2 - Node 3, the first client is directly connected to the node 1, and the second client is directly connected to the node 3, and the node 2 is defined as the node 1
  • the downlink transmission node, node 1 is the uplink transmission node of node 2.
  • the target transport node receives the second stream data issued by the second client
  • the second stream data is pushed to the first-level associated transport node or the first client or the third client that is directly connected to the target transport node.
  • the method of the embodiment of the present invention may further include: searching for a downlink target transmission node of the target transmission node in the transmission path, and removing the sought downlink destination transmission node from the primary association transmission node directly connected to the target transmission node. .
  • the target transmission node pushes the second stream data to other target transmission nodes directly connected to the found downlink destination transmission node.
  • all the first-level associated transport nodes of the transport node may be recorded locally at each transport node, and the node identifiers of all the first-level associated transport nodes may be recorded.
  • the primary transmission node directly connected to the target transmission node may be locally extracted from the target transmission node.
  • the transmission nodes at the intersection or intersection locally record a plurality of downlink destination transmission nodes for the plurality of transmission paths.
  • the embodiment of the present invention may transmit the first stream data in a process of transmitting the first stream data by using a certain transmission path, and when the first stream data is transmitted to a target transmission node, the target transmission node is used.
  • the downlink target transmission node in the transmission path is stored locally in the destination transmission node corresponding to the stream identifier of the first stream data.
  • the second client After the first stream data is transmitted to the second client, the second client sends the second stream data, where the second stream data carries the stream identifier of the first stream data, and after the second stream data is transmitted to the target transport node, the target transport node
  • the corresponding downlink destination transmission node may be extracted according to the flow identifier of the first stream data.
  • the target transmission node may extract the downlink target transmission node corresponding to the first flow identifier according to the flow identifier of the first flow data carried by the second flow data, and the corresponding relationship between the locally stored first flow identifier and the downlink target transmission node.
  • the downlink transmission node of the target transmission node in the transmission path may be determined in multiple manners, for example, the first stream data carries nodes of all target transmission nodes through which the transmission path passes.
  • the node identifiers of the plurality of target transmission nodes are arranged in an orderly manner according to the flow direction of the first client to the second client.
  • the node identifier of the current target transmission node may be acquired. Determining, according to the node identification sequence carried by the first stream data, that the next target transmission node to be transmitted is a downlink target transmission node.
  • the method further includes: searching for a downlink target transmission node of the target transmission node in the transmission path, where the method specifically includes: limiting the second stream data when the second stream data transmitted by the third client is transmitted to a target transmission node a node identifier of the downlink destination transmission node carrying the target transmission node, and when the second stream data is transmitted to the next destination transmission node, the node identifier carried by the second stream data is changed, and is changed to the next destination transmission node.
  • the node identifier of the downlink destination transmission node transmits the second stream data according to the foregoing method.
  • the current target transmission node may be determined by extracting the node identifier carried by the second stream data.
  • a downstream destination transport node in the transmission path is specifically includes: limiting the second stream data when the second stream data transmitted by the third client is transmitted to a target transmission node a node identifier of the downlink destination transmission node carrying the target transmission node, and when the second stream data is transmitted to the next destination transmission
  • Step 205 iteratively performing a pushing step, pushing the second stream data from the N-level associated transport node that receives the second stream data to the directly connected N+1 level associated transport node or the first client or the third client, until Push to the first client and all third clients accessing the cluster of transport nodes.
  • the associated transit node of the target transport node may include multiple transport nodes that are directly connected and indirectly connected, multiple transport nodes may have multiple levels of association, so the second stream data issued by the second client is pushed to the level one association transmission.
  • the method of step 204 is performed cyclically, and the second stream data is pushed to the second-level associated transport node, ..., the N-level associated transport node, and the N+1-level associated transport node, until the push to the access transport node cluster A client and all third clients complete the broadcast of the second stream data issued by the second client. Therefore, the embodiment of the present invention uses the target transmission node and the associated transmission node to broadcast the stream data to multiple clients.
  • the anchor end and other user clients synthesize the two live stream data published by the guest and the anchor, and display the synthesized live stream data on the client. .
  • FIG. 3 a schematic diagram of a network topology between live broadcasts according to Embodiment 2 of the present invention is shown.
  • 1 is the main broadcast end
  • 2 is the normal user end
  • 3 is the normal user end
  • 4 is the guest end
  • a, b, c, d, e, and f are the transport nodes. .
  • the user enters the live broadcast room and becomes the normal user terminal 3.
  • the dispatch node allocates a transport node to the normal user terminal 3 and establishes a transmission path, so that the ordinary user terminal 3 is connected to the anchor terminal 1, the common user terminal 2, and the guest terminal 4.
  • the transmission path of the anchor terminal 1 and the normal client terminal 3 is ace, and the anchor terminal transmits stream data or instructions to the normal client terminal 3 according to the transmission path ace; the ordinary client terminal 3 transmits the stream to the anchor terminal 1 according to the reverse path eca of the above transmission path. Data or request.
  • the ordinary user terminal 3 can send a connection request to the anchor terminal 1.
  • the anchor user annotates the connection request
  • the ordinary client terminal 3 becomes the guest terminal 3 with the broadcast authority.
  • the guest terminal 3 having the broadcast authority issues the live stream data
  • the live stream data is first pushed to the transport node e, then pushed to the transport node c and the transport node a, and finally pushed to the anchor terminal 1.
  • the live stream data at the transmission node c is pushed to the transmission node a
  • the live stream data is pushed to the transmission node f and further pushed to the guest terminal 4.
  • the live stream data at the transmission node a is pushed to the anchor terminal 1
  • the live stream data is gradually pushed to the transmission node b and the transmission node d, and finally pushed to the normal user terminal 2.
  • the broadcast of the live stream data published by the guest terminal 3 is implemented based on the plurality of push steps described above.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • FIG. 4 a flow chart of a method for transmitting a stream data according to a third embodiment of the present invention is shown. Specifically, the method may include the following steps:
  • Step 301 Receive first stream data transmitted by the first client according to the transmission path, the transmission path passes through multiple target transmission nodes, and at least the target transmission node has an associated transmission node.
  • the method described in this embodiment of the present invention is applied to a scenario in which video stream data transmitted in a streaming manner exists.
  • the system includes multiple clients, and the client and the client are connected by a transmission path, and the transmission path flows through one or more transmission nodes, and one client is connected to other clients based on multiple transmission paths.
  • the association transmission node may be a transmission node directly connected to a certain transmission node, or may be a plurality of transmission nodes directly and indirectly connected to a certain transmission node.
  • the transmission path of the first client and the second client passes through multiple transmission nodes, and the transmission node is referred to as a target transmission node.
  • the transmission node is referred to as a target transmission node.
  • At least one target transport node has an associated transport node.
  • the first client transmits the first stream data to the second client according to the transmission path, and correspondingly the second client receives the first stream data transmitted by the first client.
  • Step 302 Transmit second stream data to the target transmission node, so that each target transmission node pushes the second stream data to the first client and the at least one third client via the associated transit node.
  • the second stream data that is released by the second client is transmitted to the target transit node through which the transmission path of the first client and the second client passes, and finally the second stream data is pushed to the first client.
  • the target transmission node has an associated transmission node
  • the target transmission node pushes the second stream data to the associated transmission node of the target transmission node while pushing the received second stream data to the next destination transmission node, and finally The second stream data is pushed to the third client connected to the associated transport node, thereby completing the broadcast transmission of the second stream data.
  • the method of the embodiment of the present invention may further include: sending an application request of the feature client to the first client, and receiving an approval notification fed back by the first client.
  • a feature client is a client with broadcast stream data permissions. If the second client pre-broadcasts the flow data, the application request of the feature client needs to be sent to the first client, and after the user of the first client endorses the application request, the first client feeds back the approval notification to the second client, The second client has the right to broadcast stream data after receiving the approval notification of the feedback. If the user of the first client does not approve the application request, the second client is not authorized to broadcast the streaming data.
  • the application request sent by the second client may be carried for preview information, such as audio, video, etc. of the second client user, and the first client user may view the preview information, and approve the application request according to the preview information, and determine whether to Accept the request request of the feature client sent by the second client.
  • the preview operation improves the user experience and improves the accuracy of the approval results.
  • the application request and approval notification can share the same transmission path with the stream data, thereby reducing the establishment of the transmission path.
  • the step of sending the application request of the feature client to the first client and receiving the approval notification fed back by the first client may include: sending the message to the first client according to the transmission path of the first client and the second client.
  • the application request of the feature client ; receiving an approval notification that the first client feeds back according to the transmission path.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • the embodiment of the present invention uses the same transmission path to transmit stream data and information, eliminating the establishment of multiple transmission paths for stream data and information in the conventional method, and saving path establishment.
  • FIG. 5 is a block diagram showing the structure of a stream data transmission apparatus according to Embodiment 4 of the present invention.
  • the transmission device of the stream data in FIG. 5 includes:
  • the first stream data transmission module 401 is configured to transmit the first stream data from the first client to the second client according to the transmission path, where the transmission path passes through the plurality of target transmission nodes, and the at least one target transmission node has an associated transmission node.
  • the second stream data receiving module 402 is configured to receive second stream data that is transmitted by the second client to the target transit node.
  • the second stream data pushing module 403 is configured to push the second stream data from each target transmission node to the first client and the at least one third client via the associated transit node.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • FIG. 6 is a block diagram showing the structure of a stream data transmission apparatus according to Embodiment 5 of the present invention.
  • the transmission device of the stream data in FIG. 6 includes:
  • the first stream data transmission module 501 is configured to transmit the first stream data from the first client to the second client according to the transmission path, where the transmission path passes through the plurality of target transmission nodes, and the at least one target transmission node has an associated transmission node.
  • the second stream data receiving module 502 is configured to receive second stream data that is transmitted by the second client to the target transit node.
  • the second stream data pushing module 503 is configured to push the second stream data from each target transmission node to the first client and the at least one third client via the associated transit node.
  • the second stream data receiving module 502 includes:
  • the second stream data obtaining module 5021 is configured to receive second stream data that is transmitted by the second client to the directly connected target transmission node;
  • the second stream data reverse transmission module 5022 is configured to sequentially push the second stream data to other target transmission nodes according to the reverse sequence of the transmission path.
  • the second stream data pushing module 503 includes:
  • the second stream data direct pushing module 5031 is configured to push the second stream data to a first level association transmission node or a first client or a third client directly connected to the target transmission node;
  • the second stream data iterative push module 5032 is configured to iteratively perform the pushing step, and push the second stream data from the N-level associated transport node that receives the second stream data to the directly connected N+1 level associated transport node. Or the first client or the third client until the first client and all third clients that are pushed to the cluster of access transport nodes.
  • the device further includes:
  • a downlink target transmission node searching module configured to: before the first stream data is pushed to a primary association transmission node or a first client or a third client that is directly connected to the target transmission node, a downlink destination transmission node in the transmission path of the target transmission node, the target transmission node locally recording a downlink destination transmission node in the transmission path;
  • a downlink target transmission node removal module configured to remove the found downlink target transmission node from the primary association transmission node directly connected to the target transmission node.
  • the downlink target transmission node searching module is configured to extract, according to the flow identifier of the first stream data, a corresponding downlink destination transmission node, the downlink target transmission node, and the first The flow identifier of the first-level data is correspondingly stored, and the second stream data carries the flow identifier of the first stream data.
  • the device further includes:
  • a broadcast transmission mode determining module configured to determine, before the pushing the second stream data from each target transmission node, by the associated transmission node to the first client and the at least one third client, The second stream data points to the broadcast transmission mode.
  • the broadcast transmission mode determining module includes:
  • An identifier determining module configured to determine an identifier of a broadcast transmission mode included in a data protocol header of the second stream data
  • a destination client number determining module configured to determine that the second stream data is sent to multiple destination clients.
  • the device further includes:
  • a second stream data unicast module configured to: if the second stream data does not point to a broadcast transmission mode, push the second stream data from each target transmission node to the first client.
  • the device further includes:
  • the broadcast authority determining module is configured to determine that the second client has broadcast rights.
  • the broadcast authority determining module includes:
  • a collection finding module for finding a feature client set with broadcast rights
  • the second client determining module is configured to determine that the second client exists in the feature client set.
  • the broadcast authority determining module includes:
  • An identity field extraction module configured to extract an identity field of the second client from a data protocol header of the second stream data
  • An identity field identification module is configured to identify that the identity field belongs to a target value interval.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • FIG. 7 is a block diagram showing the structure of a stream data transmission apparatus according to Embodiment 6 of the present invention.
  • the transmission device of the stream data in FIG. 7 includes:
  • the first stream data receiving module 601 is configured to receive first stream data that is transmitted from the first client according to the transmission path, where the transmission path passes through multiple target transmission nodes, and each target transmission node has at least one associated transmission node.
  • a second stream data transmission module 602 configured to transmit second stream data to the target transmission node, so that each target transmission node pushes the second stream data to the first client by using the associated transmission node, and At least one third client.
  • the device further includes:
  • the approval notification receiving module is configured to send an application request of the feature client to the first client before receiving the second stream data to the target transmission node, and receive an approval notification fed back by the first client.
  • the approval notification receiving module includes:
  • An application request sending module configured to send, according to the transmission path, an application request that becomes a feature client to the first client;
  • the approval notification obtaining module is configured to receive an approval notification that the first client feeds back according to the transmission path.
  • the embodiment of the present invention saves the establishment of a new transmission path of the second stream data, saves the path establishment time, and ensures the real-time performance of the stream data transmission.
  • the synthesizing operation of the multi-stream data is completed in the user client, thereby eliminating the synthesis.
  • the use of the system solves the delay problem caused by multi-system transmission, further saving system overhead.
  • the embodiment of the present invention uses the same transmission path to transmit stream data and information, eliminating the establishment of multiple transmission paths for stream data and information in the conventional method, and saving path establishment.
  • the various component embodiments of the present invention may be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof.
  • a microprocessor or digital signal processor may be used in practice to implement some or all of the functionality of some or all of the components of the method and apparatus for streaming data in accordance with embodiments of the present invention.
  • the invention can also be implemented as a device or device program (e.g., a computer program and a computer program product) for performing some or all of the methods described herein.
  • a program implementing the invention may be stored on a computer readable medium or may be in the form of one or more signals. Such signals may be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.
  • Figure 8 illustrates a computing device that can implement a method of transmitting streaming data in accordance with the present invention.
  • the computing device conventionally includes a processor 710 and a computer program product or computer readable medium in the form of a memory 720.
  • Memory 720 can be an electronic memory such as a flash memory, EEPROM (Electrically Erasable Programmable Read Only Memory), EPROM, hard disk, or ROM.
  • Memory 720 has a storage space 730 that stores program code 731 for performing any of the method steps described above.
  • storage space 730 storing program code may store respective program code 731 for implementing various steps in the above methods, respectively.
  • the program code can be read from or written to one or more computer program products.
  • These computer program products include program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks.
  • Such computer program products are typically portable or fixed storage units such as those described in FIG.
  • the storage unit may have storage segments, storage spaces, and the like that are similarly arranged to memory 720 in the computing device of FIG.
  • the program code can be compressed, for example, in an appropriate form.
  • the storage unit includes computer readable code 731', ie, code readable by a processor, such as 710, that when executed by a computing device causes the computing device to perform each of the methods described above step.
  • modules in the devices of the embodiments can be adaptively changed and placed in one or more devices different from the embodiment.
  • the modules or units or components of the embodiments may be combined into one module or unit or component, and further they may be divided into a plurality of sub-modules or sub-units or sub-components.
  • any combination of the features disclosed in the specification, including the accompanying claims, the abstract and the drawings, and any methods so disclosed, or All processes or units of the device are combined.
  • Each feature disclosed in this specification (including the accompanying claims, the abstract and the drawings) may be replaced by alternative features that provide the same, equivalent or similar purpose.
  • the various component embodiments of the present invention may be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof.
  • Those skilled in the art will appreciate that some or all of the functionality of some or all of the components of the streaming data transmission device in accordance with embodiments of the present invention may be implemented in practice using a microprocessor or digital signal processor (DSP).
  • DSP digital signal processor
  • the invention can also be implemented as a device or device program (e.g., a computer program and a computer program product) for performing some or all of the methods described herein.
  • Such a program implementing the invention may be stored on a computer readable medium or may be in the form of one or more signals. Such signals may be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种流数据的传输方法和装置。所述方法包括:按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点;接收第二客户端向所述目标传输节点传输的第二流数据;将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。

Description

一种流数据的传输方法和装置
本申请要求在2016年12月30日提交中国专利局、申请号为201611261609.X、发明名称为“一种流数据的传输方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
随着互联网的发展,网络直播作为流媒体的重要组成形式被越来越多的用户参与。在直播平台***中,普通用户可以向主播发送连麦请求,待主播批准连麦请求后,连麦端和主播端推送的直播流数据共同显示在用户客户端。
目前包括多种连麦方式,例如,当主播批准普通用户的连麦请求后,对主播端和连麦端新建一数据通道,主播端通过新建的数据通道接收连麦端发布的直播流数据后,对本地采集的直播流数据和连麦端发布的直播流数据进行合成,之后将合成的视频流数据传输至流媒体服务器;或者,连麦端登陆到主播端所在的视频会议频道中,合成服务器对视频会议中的多路直播流数据进行合成,之后将合成的直播流数据传输至流媒体服务器以对其进行分发处理。
虽然上述方法实现了多路连麦,但是仍存在以下问题:需要对主播端和连麦端新建数据通道,然而数据通道的建立需要耗费较长时间,会导致流数据的传输延迟问题的产生;在使用视频会议***时,合成服务器对多路流数据的合成操作需要耗费较长时间,同样会导致流数据的传输延迟问题的产生,另外流数据在合成***和分发***间的传输,进一步加深了流数据的传输延迟问题。
发明内容
本发明涉及信息处理技术领域,具体涉及一种流数据的传输方法,以及一种流数据的传输装置。
背景技术
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的流数据的传输方法和相应的流数据的传输装置。
依据本发明的一个方面,提供了一种流数据的传输方法,包括:按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点;接收第二客户 端向所述目标传输节点传输的第二流数据;将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
根据本发明的另一方面,提供了一种流数据的传输方法,包括:接收从第一客户端按照传输路径传输的第一流数据,所述传输路径经过多个目标传输节点,各目标传输节点具有至少一个关联传输节点;向所述目标传输节点传输第二流数据,以由各目标传输节点经所述关联传输节点将所述第二流数据推送至所述第一客户端以及至少一个第三客户端。
根据本发明的另一方面,提供了一种流数据的传输装置,包括:第一流数据传输模块,用于按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点;第二流数据接收模块,用于接收第二客户端向所述目标传输节点传输的第二流数据;第二流数据推送模块,用于将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
根据本发明的另一方面,提供了一种流数据的传输装置,包括:第一流数据接收模块,用于接收从第一客户端按照传输路径传输的第一流数据,所述传输路径经过多个目标传输节点,各目标传输节点具有至少一个关联传输节点;第二流数据传输模块,用于向所述目标传输节点传输第二流数据,以由各目标传输节点经所述关联传输节点将所述第二流数据推送至所述第一客户端以及至少一个第三客户端。
根据本发明的又一个方面,提供了一种计算机程序,其包括计算机可读代码,当所述计算机可读代码在计算设备上运行时,导致所述计算设备执行所述的流数据的传输方法。
根据本发明的再一个方面,提供了一种计算机可读介质,其中存储了所述的计算机程序。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完 成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
本发明实施例使用同一传输路径传输流数据和信今,省去了传统方法中针对流数据和信今的多条传输路径的建立,节省了路径建立。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的一种流数据的传输方法的步骤流程示意图;
图2示出了根据本发明实施例二的一种流数据的传输方法的步骤流程示意图;
图3示出了根据本发明实施例二的直播间的网络拓扑结构的示意图;
图4示出了根据本发明实施例三的一种流数据的传输方法的步骤流程示意图;
图5示出了根据本发明实施例四的一种流数据的传输装置的结构框图;
图6示出了根据本发明实施例五的一种流数据的传输装置的结构框图;
图7示出了根据本发明实施例六的一种流数据的传输装置的结构框图;
图8示出了用于执行根据本发明的方法的计算设备的示意性框图;
图9示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明实施例一的一种流数据的传输方法的步骤 流程示意图,具体可以包括如下步骤:
步骤101、按照传输路径将第一流数据从第一客户端传送至第二客户端,传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点。
本发明实施例所述的方法应用于存在以流式传输方式传输的视频流数据的场景。
本发明实施例中,连入网络拓扑结构的客户端为多个,客户端与客户端之间通过传输路径连接,传输路径流经一个或多个传输节点,基于多条传输路径使得某一客户端与其他多个客户端连接。可以使用内容分发网络(Content Delivery Network,CDN)对客户端间传输的流数据进行传输。
第一客户端按照预先建立的传输路径向第二客户端传输第一流数据。第一客户端与第二客户端的传输路径经过的传输节点称为目标传输节点,目标传输节点的数目为多个,至少一个目标传输节点具有关联传输节点。其中关联传输节点可以是与目标传输节点直接连接的传输节点,也可以是通过直接连接的传输节点与目标传输节点间接连接的传输节点。
本发明实施例所述方法可以应用于多种应用场景,例如应用于视频直播场景、视频会议场景等。当本发明实施例所述的方法应用于视频直播场景时,第一客户端可以为直播间内的主播端,第二客户端可以为直播间内的嘉宾端;第一流数据为主播端传输的直播流数据。
当用户进入某一直播间成为普通用户后,调度节点会为该普通用户端分配其与主播端、嘉宾端和其他普通用户端的传输路径,即调度节点会对直播间的网络拓扑结构进行调整,将新加入的普通用户端添加至网络拓扑结构中。实际中调度节点可以根据普通用户端所在区域的地理位置信息、传输节点的负载情况等信息,为普通用户端分配传输路径。
普通用户端可以根据预先建立的传输路径向主播端发送连麦请求,如果主播批准了连麦请求,则普通用户变成了嘉宾,其所在的客户端变成了嘉宾端,嘉宾端有权上传音视频数据,上传的直播流数据与主播端上传的直播流数据一起显示在主播端和其他用户客户端。例如以画中画的形式一起显示。
主播端发布直播流数据时,可以根据调度节点针对主播端与嘉宾端配置的传输路径将直播流数据传输至嘉宾端。
步骤102、接收第二客户端向目标传输节点传输的第二流数据。
将第二客户端发布的流数据称为第二流数据。第二客户端发布第二流数据时,会将第二流数据传输至网络拓扑结构中,具体地第二客户端将第二流数据传输至与其直接连接的目标传输节点上,这时目标传输节点会接收到第 二客户端传输的第二流数据。之后根据第一客户端与第二客户端的传输路径的反向路径,将第二流数据推送至该传输路径经过的各个目标传输节点上。
在视频直播场景中,当普通用户成为嘉宾后,嘉宾有权限发布直播流数据。当嘉宾端发布直播流数据时,基于嘉宾端与主播端的传输路径,嘉宾端将发布的直播流数据传输至该传输路径中与嘉宾端直接连接的目标传输节点上,之后根据该传输路径中各个目标传输节点的反向连接顺序,对直播流数据进行推送,最终将其推送至主播端。
步骤103、将第二流数据从各目标传输节点,经关联传输节点推送至第一客户端以及至少一个第三客户端。
各目标传输节点在接收到第二流数据后,如果目标传输节点具有关联传输节点,则将第二流数据从目标传输节点推送至关联传输节点,最终将第二流数据推送至第一客户端和第三客户端,完成对第二流数据的广播传输。
第一客户端和第二客户端同时推送流数据时,其他用户客户端会接收到两路流数据,这时其他用户客户端会对两路流数据进行合成,并对合成后的流数据进行展示。
在视频直播场景中,第一客户端可以为直播间内的主播端,第三客户端可以为直播间内的其他嘉宾端或普通用户端。在将嘉宾端发布的直播流数据传输至目标传输节点后,如果目标传输节点存在关联传输节点,则将嘉宾端发布的直播流数据通过目标传输节点传输至关联传输节点,最终将直播流数据传输至与关联传输节点连接的主播端和其他用户端上。实际中嘉宾可以通过客户端界面选择直播流数据的传输方式,以实现对直播流数据的单播或广播。
普通用户连麦成功后成为嘉宾,可以按照进入直播间成为普通用户时网络拓扑结构中传输路径以及传输节点间的连接关系,对嘉宾端发布的直播流数据进行广播,无需建立新的传输路径,节省了路径建立时间,保证了流数据传输的实时性。由于使用一套***支持主播端的直播流转发以及嘉宾端的直播流的转发,因此减少了***开销。
本发明实施例中,优选地,在所述将第二流数据从各目标传输节点,经关联传输节点推送至第一客户端以及至少一个第三客户端之前,所述方法还可以包括:判断第二流数据指向广播传输方式。
本发明实施例中,由于客户端可以根据预先建立的网络拓扑结构单播流数据至第一客户端,或是广播流数据至第一客户端和第三客户端,因此目标传输节点在接收到第二客户端发布的第二流数据后,需要对第二流数据的传输方式进行判断,如果判断第二流数据指向广播传输方式,则对其进行广播 传输;如果判定第二流数据不指向广播传输方式,即确定第二流数据为单播,则将第二流数据从各目标传输节点推送至第一客户端。
具体地,可以通过确定第二流数据的数据协议头中包括广播传输方式的标识的方法,判定第二流数据指向广播传输方。传播方式的标识可以为多种形式,例如数字、字母、文字、图形等。
可以预先在用户客户端设定指示不同传输方式的不同标识,例如针对广播传输方式设置标识“a”,针对单播传输方式设置标识“b”,并且限定在客户端上传流数据时,在流数据的数据协议头中添加数据传输方式对应的标识;或者可以预先为不同客户端设置端标识,如设置第一客户端的端标识为“0”,除第一客户端外的其他客户端的端标识均为“1”,端标识“1”指示广播传输方式,并且限定在客户端上传流数据时,在流数据的数据协议头中添加接收流数据的目的客户端的端标识。
以视频直播场景为例,可以预先设定嘉宾端的端标识为正整数,设定指示广播传输方式的目标标识为“0xFFFF”,将嘉宾端及其对应的端标识以及指示广播传输方式的目标标识存储在各个传输节点上。如果传输节点识别到流数据的数据协议头中包括指示广播传输方式的目标标识“0xFFFF”,则确定第二流数据的传播方式为广播,识别到流数据的数据协议头中包括嘉宾标识后确定该客户端具有广播流数据的权限。
还可以通过确定第二流数据发送至多个目的客户端的方法,判定第二流数据指向广播传输方式。
预对第二流数据进行广播传输时,第二客户端对第二流数据进行相应处理,使发布的第二流数据携带多个目的客户端的端标识、多个目的客户端的数目或指示目的客户端数目为多个的标识等信息。相应地,目标传输节点识别到上述信息后,确定第二流数据为广播传输方式。
本发明实施例中,优选地,本发明实施例所述方法还包括判定第二客户端具有广播权限。
目标传输节点在接收到第二客户端发布的第二流数据后,可以判断第二客户端是否具有广播权限,只有当第二客户端具有广播权限时,才对第二流数据进行广播。
以视频直播场景为例,由于嘉宾端具有发布直播流数据的权限,普通用户端不具有该权限,因此目标传输节点在接收到某一用户客户端上传的直播流数据后,可以判断上传直播流数据的用户客户端是否具有广播权限,即判断是否被主播授予了连麦权限,如果判定该客户端具有广播权限,则进行下一步骤,对直播流数据进行推送。
可以通过多种方式判定第二客户端具有广播权限,例如,可以查找具备广播权限的特征客户端集合,并确定第二客户端存在该特征客户端集合中。
特征客户端集合为具有广播权限的客户端的集合,特征客户端集合存储在各传输节点中。如果确定第二客户端在传输节点本地存储的特征客户端集合内,则判定第二客户端具有广播权限。
以视频直播场景为例,特征客户端可以为具有广播权限的嘉宾端,相应地特征客户端集合可以为嘉宾端集合,具体地可以是多个嘉宾端的端标识的集合。
当主播批准普通用户的连麦请求后,普通用户成为嘉宾,主播端会对本地的嘉宾端信息集合进行更新,并将更新后的嘉宾端信息集合传送至与其直接连接的目标传输节点,进一步将其从该目标传输节点传送至针对直播间配置的传输节点集群中的各个传输节点上,各个传输节点对本地存储的嘉宾端信息集合的版本进行更新。实际中可以通过多种方式更新嘉宾端信息集合,例如主播端可以定时对嘉宾端信息集合进行更新,主播端可以在批准某一普通用户的连麦请求后对嘉宾端信息集合进行更新等。
由于各传输节点记录有直播间内的嘉宾端信息集合,因此在目标传输节点接收到嘉宾端发布的直播流数据后,通常是与嘉宾端直接连接的目标传输节点接收到嘉宾端发布的直播流数据后,可以查找本地存储的嘉宾端信息集合中是否包含发布直播流数据的嘉宾端,如果包含,则判定该嘉宾端具有广播权限;否则,判定该嘉宾端不具有广播权限。
本发明实施例可以针对不同客户端设置不同的身份标识字段,第二客户端发送第二流数据时将针对第二客户端设置的身份标识字段添加至数据协议头中。这时判定第二客户端具有广播权限的方法还可以包括:从接收的第二流数据的数据协议头中提取第二客户端的身份标识字段,识别流数据携带的身份标识字段归属于目标数值区间,目标数据区间是针对具有广播权限的客户端设置的。如果身份标识字段不归属于目标数值区间,则判定第二客户端不具备广播权限。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传 输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
参照图2,示出了根据本发明实施例二的一种流数据的传输方法的步骤流程示意图,具体可以包括如下步骤:
步骤201,按照传输路径将第一流数据从第一客户端传送至第二客户端,传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点。
步骤202,接收第二客户端向直接连接的目标传输节点传输的第二流数据。
第二客户端传送第二流数据时,向与其直接连接的目标传输节点传传输。在视频直播场景中,嘉宾端发布直播流数据时,会将直播流数据传输至与嘉宾端直接连接的目标传输节点。
步骤203,按照传输路径的反向顺序,将第二流数据顺次推送到其他目标传输节点。
第一客户端和第二客户端的传输路径的路径方向为第一客户端到第二客户端,在此路径方向下,传输路径经过的多个目标传输节点具有排列顺序。第二客户端传输第二流数据时,可以按照第一客户端和第二客户端的传输路径的反向顺序,将第二流数据从第二客户端传输至第一客户端,相应地将第二流数据顺次推送至传输路径经过的其他目标传输节点。
例如,在视频直播场景中,主播端与嘉宾端的传输路径依次经过传输节点1、传输节点2和传输节点3,嘉宾端将发布的音视频流数据推送至与其直接连接的传输节点3,之后按照传输路径的反向顺序,将音视频流数据推送至传输节点2,进一步推送至传输节点1,最终推送至主播端。
步骤204,将第二流数据推送至与目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端。
在网络拓扑结构,部分传输节点存在关联传输节点,关联传输节点可以是直接连接的或间接连接的传输节点。可以根据节点连接顺序,将关联传输节点分为多个等级,如一级关联传输节点、二级关联传输节点、三级关联传输节点等,其中一级关联传输节点为与某一传输节点直接连接的传输节点,二级关联传输节点为与一级关联传输节点直接连接的传输节点,其他级别的关联传输节点以此类推。第一客户端与第二客户端的传输路径经过的目标传输节点可以包括多种连接,如目标传输节点可以与其他目标传输节点、一级关联传输节点、第一客户端或第三客户端直接连接。
基于关联传输节点的等级设置以及目标传输节点的连接关系,目标传输节点接收到第二客户端传输的第二流数据后,在将第二流数据推送至其他目标传输节点的同时,将第二流数据推送至与其直接连接的一级关联传输节点或第一客户端或第三客户端。
建立传输路径时,可以在传输路径经过的目标传输节点本地记录其在该传输路径中的下行目标传输节点。在网络拓扑结构中,对于某一传输路径中相邻的两个传输节点,按照第一客户端至其他客户端的传输方向,限定位于传输方向末端的传输节点是位于传输方向起始端的传输节点的下行传输节点。例如,第一客户端到第二客户端的传输路径为节点1-节点2-节点3,第一客户端与节点1直接连接,第二客户端与节点3直接连接,则限定节点2为节点1的下行传输节点,节点1为节点2的上行传输节点。
这时在目标传输节点接收到第二客户端发布的第二流数据之后,在将第二流数据推送至与目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端之前,本发明实施例所述方法还可以包括:查找目标传输节点在传输路径中的下行目标传输节点,从与目标传输节点直接连接的一级关联传输节点中,去除所查找的下行目标传输节点。完成上述去除步骤后,目标传输节点将第二流数据推送至除查找到的下行目标传输节点外的与其直接连接的其他目标传输节点。
可以在构建网络拓扑结构时,在各传输节点本地记录该传输节点的所有一级关联传输节点,即上行目标传输节点和所有下行目标传输节点,具体可以记录所有一级关联传输节点的节点标识。完成对目标传输节点在该传输路径中的下行目标传输节点的查找后,可以从目标传输节点本地提取与该目标传输节点直接连接的一级关联传输节点。
当第一客户端与不同用户客户端的多条传输路径存在交叉或交汇时,交叉或交汇处的传输节点本地记录有针对多条传输路径的多个下行目标传输节点。为查找出针对某一传输路径的下行目标传输节点,本发明实施例可以在使用某一传输路径传输第一流数据过程中,在第一流数据传输至某一目标传输节点时,将该目标传输节点在该传输路径中的下行目标传输节点与第一流数据的流标识对应存储在该目标传输节点本地。当第一流数据传输至第二客户端后,第二客户端发布第二流数据,第二流数据携带有第一流数据的流标识,当第二流数据传送至目标传输节点后,目标传输节点可以根据第一流数据的流标识,提取对应存储的下行目标传输节点。具体地,目标传输节点可以根据第二流数据携带的第一流数据的流标识,以及本地存储的第一流标识与下行目标传输节点的对应关系,提取与第一流标识对应的下行目标传输 节点。
当第一流数据传输至某一目标传输节点时,可以通过多种方式确定该目标传输节点在该传输路径下的下行传输节点,例如,第一流数据携带该传输路径经过的所有目标传输节点的节点标识,多个目标传输节点的节点标识按照第一客户端到第二客户端的流经方向有序排列,当第一流数据传输至某一目标传输节点后,可以获取当前目标传输节点的节点标识,根据第一流数据携带的节点标识序列,确定待传输的下一目标传输节点为下行目标传输节点。
还可以通过以下方法查找目标传输节点在该传输路径中的下行目标传输节点,方法具体包括:限定当第三客户端传输的第二流数据传输至某一目标传输节点时,让第二流数据携带该目标传输节点的下行目标传输节点的节点标识,当第二流数据传输至下一目标传输节点时,对第二流数据携带的节点标识做更改,更改成所述下一目标传输节点的下行目标传输节点的节点标识,按照上述方法传输第二流数据,当第二流数据传输至当前目标传输节点时,可以通过提取第二流数据携带的节点标识的方式,确定当前目标传输节点在该传输路径中的下行目标传输节点。
步骤205,迭代执行推送步骤,将第二流数据从接收到第二流数据的N级关联传输节点推送至直接连接的N+1级关联传输节点或第一客户端或第三客户端,直至推送至接入传输节点集群的第一客户端和所有第三客户端。
由于目标传输节点的关联传输节点可以包括直接连接和间接连接的多个传输节点,多个传输节点可能存在多级别关联,因此在将第二客户端发布的第二流数据推送至一级关联传输节点后,循环执行步骤204所述方法,将第二流数据推送至二级关联传输节点、…、N级关联传输节点、N+1级关联传输节点,直至推送至接入传输节点集群的第一客户端和所有第三客户端,从而完成对第二客户端发布的第二流数据的广播。因此本发明实施例利用目标传输节点和关联传输节点,将流数据广播至多个客户端。
在视频直播场景中,主播端和其他用户客户端接收到嘉宾发布的直播流数据后,对嘉宾发布的和主播发布的两路直播流数据进行合成,将合成后的直播流数据显示在客户端。
为使本领域技术人员更加清楚地理解本发明实施例,下面通过具体示例对本发明所述方法进行详细说明。
示例1
参照图3,示出了根据本发明实施例二的直播间的网络拓扑结构的示意图。在图3所示的直播间的网络拓扑结构中,1为主播端,2为普通用户端, 3为普通用户端,4为嘉宾端,a、b、c、d、e和f为传输节点。
用户进入直播间内成为普通用户端3,调度节点为普通用户端3分配传输节点和建立传输路径,使普通用户端3与主播端1、普通用户端2和嘉宾端4连接。主播端1与普通用户端3的传输路径为a-c-e,主播端按照传输路径a-c-e向普通用户端3传输流数据或指令;普通用户端3按照上述传输路径的反向路径e-c-a向主播端1传输流数据或请求。
普通用户端3可以向主播端1发送连麦请求,当主播批注该连麦请求后,普通用户端3成为具有广播权限的嘉宾端3。具有广播权限的嘉宾端3发布直播流数据时,直播流数据首先被推送至传输节点e,之后被推送至传输节点c和传输节点a,最终被推送至主播端1。在将传输节点c处的直播流数据推送至传输节点a的同时,将直播流数据推送至传输节点f,进一步推送至嘉宾端4。在将传输节点a处的直播流数据推送至主播端1的同时,将直播流数据逐步推送至传输节点b和传输节点d,最终推送至普通用户端2。基于上述多个推送步骤,实现对嘉宾端3发布的直播流数据的广播。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
参照图4,示出了根据本发明实施例三的一种流数据的传输方法的步骤流程示意图,具体可以包括如下步骤:
步骤301、接收从第一客户端按照传输路径传输的第一流数据,传输路径经过多个目标传输节点,至少目标传输节点具有关联传输节点。
本发明实施例所述的方法应用于存在以流式传输方式传输的视频流数据的场景。
***中包括多个客户端,客户端与客户端之间通过传输路径连接,传输路径流经一个或多个传输节点,基于多条传输路径使得某一客户端与其他多个客户端连接。
多条传输路径存在交汇和交叉的情况,存在两条或多条传输路径共用同 一传输节点的情况,因此针对某一传输路径上的传输节点可能具有位于其他传输路径上的、与该传输节点连接的关联传输节点。关联传输节点可以是与某一传输节点直接连接的传输节点,也可以是与某一传输节点直接连接和间接连接的多个传输节点。
本发明实施例中,第一客户端与第二客户端的传输路径经过多个传输节点,上述传输节点称为目标传输节点。至少一个目标传输节点具有关联传输节点。
第一客户端按照传输路径向第二客户端传输第一流数据,相应地第二客户端接收第一客户端传输的第一流数据。
步骤302、向目标传输节点传输第二流数据,以由各目标传输节点经关联传输节点将第二流数据推送至所述第一客户端以及至少一个第三客户端。
第二客户端广播流数据时,会将其发布的第二流数据传输至第一客户端与第二客户端的传输路径经过的目标传输节点,最终将第二流数据推送至第一客户端。如果目标传输节点具有关联传输节点,则目标传输节点在将接收的第二流数据推送至下一个目标传输节点的同时,将第二流数据推送至该目标传输节点的关联传输节点,最终将第二流数据推送至与关联传输节点连接的第三客户端,从而完成对第二流数据的广播传输。
在向目标传输节点传输第二流数据之前,本发明实施例所述方法还可以包括:向第一客户端发送特征客户端的申请请求,并接收第一客户端反馈的批准通知。
特征客户端为具有广播流数据权限的客户端。如果第二客户端预广播流数据,则需要向第一客户端发送特征客户端的申请请求,第一客户端的用户批注该申请请求后,第一客户端会向第二客户端反馈批准通知,第二客户端在接收到反馈的批准通知后,才具有广播流数据的权限。如果第一客户端的用户未批注申请请求,则第二客户端无权广播流数据。
第二客户端发送的申请请求中可以携带供预览信息,如第二客户端用户的音频、视频等,第一客户端用户可以查看预览信息,并根据预览信息对申请请求进行审批,判断是否要接受第二客户端发送的特征客户端的申请请求。预览操作提高了用户体验,提高了审批结果的准确性。
申请请求和批准通知可以与流数据共用同一传输路径,从而可以减少传输路径的建立。基于上述方法,向第一客户端发送特征客户端的申请请求,并接收第一客户端反馈的批准通知的步骤可以包括:按照第一客户端与第二客户端的传输路径向第一客户端发送成为特征客户端的申请请求;接收第一客户端按照该传输路径反馈的批准通知。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
本发明实施例使用同一传输路径传输流数据和信今,省去了传统方法中针对流数据和信今的多条传输路径的建立,节省了路径建立。
图5示出了根据本发明实施例四的一种流数据的传输装置的结构框图。图5中的流数据的传输装置包括:
第一流数据传输模块401,用于按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点。
第二流数据接收模块402,用于接收第二客户端向所述目标传输节点传输的第二流数据。
第二流数据推送模块403,用于将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
图6示出了根据本发明实施例五的一种流数据的传输装置的结构框图。图6中的流数据的传输装置包括:
第一流数据传输模块501,用于按照传输路径将第一流数据从第一客户 端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点。
第二流数据接收模块502,用于接收第二客户端向所述目标传输节点传输的第二流数据。
第二流数据推送模块503,用于将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
所述第二流数据接收模块502包括:
第二流数据获取模块5021,用于接收所述第二客户端向直接连接的目标传输节点传输的第二流数据;
第二流数据反向传输模块5022,用于按照所述传输路径的反向顺序,将所述第二流数据顺次推送到其他目标传输节点。
所述第二流数据推送模块503包括:
第二流数据直接推送模块5031,用于将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端;
第二流数据迭代推送模块5032,用于迭代执行推送步骤,将所述第二流数据从接收到所述第二流数据的N级关联传输节点推送至直接连接的N+1级关联传输节点或第一客户端或第三客户端,直至推送至接入传输节点集群的第一客户端和所有第三客户端。
本发明实施例中,优选地,所述装置还包括:
下行目标传输节点查找模块,用于在所述将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端之前,查找所述目标传输节点在所述传输路径中的下行目标传输节点,所述目标传输节点本地记录有在所述传输路径中的下行目标传输节点;
下行目标传输节点去除模块,用于从与所述目标传输节点直接连接的一级关联传输节点中,去除所查找的下行目标传输节点。
本发明实施例中,优选地,所述下行目标传输节点查找模块,具体用于根据所述第一流数据的流标识,提取对应存储的下行目标传输节点,所述下行目标传输节点与所述第一流数据的流标识对应存储,所述第二流数据携带所述第一流数据的流标识。
本发明实施例中,优选地,所述装置还包括:
广播传输方式判定模块,用于在所述将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端之前,判定所述第二流数据指向广播传输方式。
本发明实施例中,优选地,所述广播传输方式判定模块包括:
标识确定模块,用于确定所述第二流数据的数据协议头中包括广播传输方式的标识;
或,目的客户端数目确定模块,用于确定所述第二流数据发送至多个目的客户端。
本发明实施例中,优选地,所述装置还包括:
第二流数据单播模块,用于若所述第二流数据不指向广播传输方式,则将所述第二流数据从各目标传输节点推送至所述第一客户端。
本发明实施例中,优选地,所述装置还包括:
广播权限判定模块,用于判定所述第二客户端具备广播权限。
本发明实施例中,优选地,所述广播权限判定模块包括:
集合查找模块,用于查找具备广播权限的特征客户端集合;
第二客户端确定模块,用于确定所述第二客户端存在所述特征客户端集合中。
本发明实施例中,优选地,所述广播权限判定模块包括:
身份标识字段提取模块,用于从所述第二流数据的数据协议头提取所述第二客户端的身份标识字段;
身份标识字段识别模块,用于识别所述身份标识字段归属于目标数值区间。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
图7示出了根据本发明实施例六的一种流数据的传输装置的结构框图。图7中的流数据的传输装置包括:
第一流数据接收模块601,用于接收从第一客户端按照传输路径传输的第一流数据,所述传输路径经过多个目标传输节点,各目标传输节点具有至少一个关联传输节点。
第二流数据传输模块602,用于向所述目标传输节点传输第二流数据, 以由各目标传输节点经所述关联传输节点将所述第二流数据推送至所述第一客户端以及至少一个第三客户端。
本发明实施例中,优选地,所述装置还包括:
批准通知接收模块,用于在所述向所述目标传输节点传输第二流数据之前,向所述第一客户端发送特征客户端的申请请求,并接收所述第一客户端反馈的批准通知。
本发明实施例中,优选地,所述批准通知接收模块包括:
申请请求发送模块,用于按照所述传输路径向第一客户端发送成为特征客户端的申请请求;
批准通知获取模块,用于接收所述第一客户端按照所述传输路径反馈的批准通知。
依据本发明实施例,第二客户端接收到第一客户端按照传输路径传输的第一流数据后,如果第二客户端预向其他客户端传输第二流数据,则只需将第二流数据传输至第一流数据的传输路径经过的目标传输节点,进一步将第二流数据传输至目标传输节点的关联传输节点,即可将第二流数据传输至第一客户端和至少一个第三客户端,因此本发明实施例省去了第二流数据的新传输路径的建立,节省了路径建立时间,保证了流数据传输的实时性。
相比于背景技术中使用视频会议***进行多路连麦,本发明当流数据传输网络中同时存在多路流数据时,多路流数据的合成操作在用户客户端完成,从而省去了合成***的使用,解决了多***传输导致的延迟问题,进一步节省了***开销。
本发明实施例使用同一传输路径传输流数据和信今,省去了传统方法中针对流数据和信今的多条传输路径的建立,节省了路径建立。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的流数据的传输方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图8示出了可以实现根据本发明的流数据的传输方法的计算设备。该计算设备传统上包括处理器710和以存储器720形式的计算机程序产品或 者计算机可读介质。存储器720可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器720具有存储用于执行上述方法中的任何方法步骤的程序代码731的存储空间730。例如,存储程序代码的存储空间730可以存储分别用于实现上面的方法中的各种步骤的各个程序代码731。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图7所述的便携式或者固定存储单元。该存储单元可以具有与图9的计算设备中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码731’,即可以由例如诸如710之类的处理器读取的代码,这些代码当由计算设备运行时,导致该计算设备执行上面所描述的方法中的各个步骤。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或 过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的流数据的传输设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (30)

  1. 一种流数据的传输方法,包括:
    按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点;
    接收第二客户端向所述目标传输节点传输的第二流数据;
    将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
  2. 根据权利要求1所述的方法,其中,所述接收第二客户端向所述目标传输节点传输的第二流数据包括:
    接收所述第二客户端向直接连接的目标传输节点传输的第二流数据;
    按照所述传输路径的反向顺序,将所述第二流数据顺次推送到其他目标传输节点。
  3. 根据权利要求1所述的方法,其中,所述将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端包括:
    将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端;
    迭代执行推送步骤,将所述第二流数据从接收到所述第二流数据的N级关联传输节点推送至直接连接的N+1级关联传输节点或第一客户端或第三客户端,直至推送至接入传输节点集群的第一客户端和所有第三客户端。
  4. 根据权利要求3所述的方法,其中,所述目标传输节点本地记录有在所述传输路径中的下行目标传输节点,在所述将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端之前,所述方法还包括:
    查找所述目标传输节点在所述传输路径中的下行目标传输节点;
    从与所述目标传输节点直接连接的一级关联传输节点中,去除所查找的下行目标传输节点。
  5. 根据权利要求4所述的方法,其中,所述下行目标传输节点与所述第一流数据的流标识对应存储,所述第二流数据携带所述第一流数据的流标识;
    所述查找所述目标传输节点在所述传输路径中的下行目标传输节点包括:
    根据所述第一流数据的流标识,提取对应存储的下行目标传输节点。
  6. 根据权利要求1所述的方法,其中,在所述将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第 三客户端之前,所述方法还包括:
    判定所述第二流数据指向广播传输方式。
  7. 根据权利要求6所述的方法,其中,所述判定所述第二流数据指向广播传输方式包括:
    确定所述第二流数据的数据协议头中包括广播传输方式的标识;
    或,确定所述第二流数据发送至多个目的客户端。
  8. 根据权利要求6所述的方法,其中,所述方法还包括:
    若所述第二流数据不指向广播传输方式,则将所述第二流数据从各目标传输节点推送至所述第一客户端。
  9. 根据权利要求1或6所述的方法,其中,所述方法还包括:
    判定所述第二客户端具备广播权限。
  10. 根据权利要求9所述的方法,其中,所述判定所述第二客户端具备广播权限包括:
    查找具备广播权限的特征客户端集合;
    确定所述第二客户端存在所述特征客户端集合中。
  11. 根据权利要求9所述的方法,其中,所述判定所述第二客户端具备广播权限包括:
    从所述第二流数据的数据协议头提取所述第二客户端的身份标识字段;
    识别所述身份标识字段归属于目标数值区间。
  12. 一种流数据的传输方法,包括:
    接收从第一客户端按照传输路径传输的第一流数据,所述传输路径经过多个目标传输节点,各目标传输节点具有至少一个关联传输节点;
    向所述目标传输节点传输第二流数据,以由各目标传输节点经所述关联传输节点将所述第二流数据推送至所述第一客户端以及至少一个第三客户端。
  13. 根据权利要求12所述的方法,其中,在所述向所述目标传输节点传输第二流数据之前,所述方法还包括:
    向所述第一客户端发送特征客户端的申请请求,并接收所述第一客户端反馈的批准通知。
  14. 根据权利要求13所述的方法,其中,所述向所述第一客户端发送特征客户端的申请请求,并接收所述第一客户端反馈的批准通知包括:
    按照所述传输路径向第一客户端发送成为特征客户端的申请请求;
    接收所述第一客户端按照所述传输路径反馈的批准通知。
  15. 一种流数据的传输装置,包括:
    第一流数据传输模块,用于按照传输路径将第一流数据从第一客户端传送至第二客户端,所述传输路径经过多个目标传输节点,至少一个目标传输节点具有关联传输节点;
    第二流数据接收模块,用于接收第二客户端向所述目标传输节点传输的第二流数据;
    第二流数据推送模块,用于将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端。
  16. 根据权利要求15所述的装置,其中,所述第二流数据接收模块包括:
    第二流数据获取模块,用于接收所述第二客户端向直接连接的目标传输节点传输的第二流数据;
    第二流数据反向传输模块,用于按照所述传输路径的反向顺序,将所述第二流数据顺次推送到其他目标传输节点。
  17. 根据权利要求15所述的装置,其中,所述第二流数据推送模块包括:
    第二流数据直接推送模块,用于将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端;
    第二流数据迭代推送模块,用于迭代执行推送步骤,将所述第二流数据从接收到所述第二流数据的N级关联传输节点推送至直接连接的N+1级关联传输节点或第一客户端或第三客户端,直至推送至接入传输节点集群的第一客户端和所有第三客户端。
  18. 根据权利要求17所述的装置,其中,所述装置还包括:
    下行目标传输节点查找模块,用于在所述将所述第二流数据推送至与所述目标传输节点直接连接的一级关联传输节点或第一客户端或第三客户端之前,查找所述目标传输节点在所述传输路径中的下行目标传输节点,所述目标传输节点本地记录有在所述传输路径中的下行目标传输节点;
    下行目标传输节点去除模块,用于从与所述目标传输节点直接连接的一级关联传输节点中,去除所查找的下行目标传输节点。
  19. 根据权利要求18所述的装置,其中:
    所述下行目标传输节点查找模块,具体用于根据所述第一流数据的流标识,提取对应存储的下行目标传输节点,所述下行目标传输节点与所述第一流数据的流标识对应存储,所述第二流数据携带所述第一流数据的流标识。
  20. 根据权利要求15所述的装置,其中,所述装置还包括:
    广播传输方式判定模块,用于在所述将所述第二流数据从各目标传输节点,经所述关联传输节点推送至所述第一客户端以及至少一个第三客户端之前,判定所述第二流数据指向广播传输方式。
  21. 根据权利要求20所述的装置,其中,所述广播传输方式判定模块包括:
    标识确定模块,用于确定所述第二流数据的数据协议头中包括广播传输方式的标识;
    或,目的客户端数目确定模块,用于确定所述第二流数据发送至多个目的客户端。
  22. 根据权利要求20所述的装置,其中,所述装置还包括:
    第二流数据单播模块,用于若所述第二流数据不指向广播传输方式,则将所述第二流数据从各目标传输节点推送至所述第一客户端。
  23. 根据权利要求15或20所述的装置,其中,所述装置还包括:
    广播权限判定模块,用于判定所述第二客户端具备广播权限。
  24. 根据权利要求23所述的装置,其中,所述广播权限判定模块包括:
    集合查找模块,用于查找具备广播权限的特征客户端集合;
    第二客户端确定模块,用于确定所述第二客户端存在所述特征客户端集合中。
  25. 根据权利要求23所述的装置,其中,所述广播权限判定模块包括:
    身份标识字段提取模块,用于从所述第二流数据的数据协议头提取所述第二客户端的身份标识字段;
    身份标识字段识别模块,用于识别所述身份标识字段归属于目标数值区间。
  26. 一种流数据的传输装置,包括:
    第一流数据接收模块,用于接收从第一客户端按照传输路径传输的第一流数据,所述传输路径经过多个目标传输节点,各目标传输节点具有至少一个关联传输节点;
    第二流数据传输模块,用于向所述目标传输节点传输第二流数据,以由各目标传输节点经所述关联传输节点将所述第二流数据推送至所述第一客户端以及至少一个第三客户端。
  27. 根据权利要求26所述的装置,其中,所述装置还包括:
    批准通知接收模块,用于在所述向所述目标传输节点传输第二流数据之 前,向所述第一客户端发送特征客户端的申请请求,并接收所述第一客户端反馈的批准通知。
  28. 根据权利要求27所述的装置,其中,所述批准通知接收模块包括:
    申请请求发送模块,用于按照所述传输路径向第一客户端发送成为特征客户端的申请请求;
    批准通知获取模块,用于接收所述第一客户端按照所述传输路径反馈的批准通知。
  29. 一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算设备上运行时,导致所述计算设备执行根据权利要求1-14中的任一个所述的流数据的传输方法。
  30. 一种计算机可读介质,其中存储了如权利要求29所述的计算机程序。
PCT/CN2017/117749 2016-12-30 2017-12-21 一种流数据的传输方法和装置 WO2018121405A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611261609.XA CN106657109A (zh) 2016-12-30 2016-12-30 一种流数据的传输方法和装置
CN201611261609.X 2016-12-30

Publications (1)

Publication Number Publication Date
WO2018121405A1 true WO2018121405A1 (zh) 2018-07-05

Family

ID=58838995

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/117749 WO2018121405A1 (zh) 2016-12-30 2017-12-21 一种流数据的传输方法和装置

Country Status (2)

Country Link
CN (1) CN106657109A (zh)
WO (1) WO2018121405A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901692A (zh) * 2020-08-06 2020-11-06 杭州当虹科技股份有限公司 一种基于多音视频流合成vr的***
CN112866725A (zh) * 2021-01-14 2021-05-28 视联动力信息技术股份有限公司 一种直播控制方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657109A (zh) * 2016-12-30 2017-05-10 北京奇虎科技有限公司 一种流数据的传输方法和装置
CN108989836B (zh) * 2017-05-31 2021-11-09 腾讯科技(深圳)有限公司 一种多媒体数据流的处理方法、装置及存储介质
CN107864122B (zh) * 2017-10-18 2021-05-28 武汉斗鱼网络科技有限公司 一种连麦主播直播流的显示方法及装置
CN108900919A (zh) * 2018-06-29 2018-11-27 乐蜜有限公司 一种直播中的连麦方法、装置、服务器及终端
CN109286775B (zh) * 2018-10-29 2021-10-08 视联动力信息技术股份有限公司 一种多人会议控制方法及***
CN110519610B (zh) * 2019-08-14 2021-08-06 咪咕文化科技有限公司 直播资源处理方法及***、服务器和客户端设备
CN113766251A (zh) * 2020-06-22 2021-12-07 北京沃东天骏信息技术有限公司 直播连麦的处理方法、***、服务器及存储介质
CN112866726A (zh) * 2020-12-17 2021-05-28 杭州当虹科技股份有限公司 一种基于移动平台的线上展会多机位直播装置和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7808521B2 (en) * 2006-01-09 2010-10-05 Apple Inc. Multimedia conference recording and manipulation interface
CN102365857A (zh) * 2009-03-30 2012-02-29 阿尔卡特朗讯公司 用于有效传输电话会议的多媒体流的方法和装置
CN104917620A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种对等网络会议接入方法、客户端及***
CN106657109A (zh) * 2016-12-30 2017-05-10 北京奇虎科技有限公司 一种流数据的传输方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945049B (zh) * 2010-09-20 2015-12-16 中兴通讯股份有限公司 多协议标签交换***、节点设备及双向隧道的建立方法
CN102055672B (zh) * 2010-12-27 2013-03-13 北京星网锐捷网络技术有限公司 一种数据流传输路径的控制方法、装置和路由设备
CN105828214A (zh) * 2016-03-31 2016-08-03 徐文波 视频直播中互动的实现方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7808521B2 (en) * 2006-01-09 2010-10-05 Apple Inc. Multimedia conference recording and manipulation interface
CN102365857A (zh) * 2009-03-30 2012-02-29 阿尔卡特朗讯公司 用于有效传输电话会议的多媒体流的方法和装置
CN104917620A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种对等网络会议接入方法、客户端及***
CN106657109A (zh) * 2016-12-30 2017-05-10 北京奇虎科技有限公司 一种流数据的传输方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901692A (zh) * 2020-08-06 2020-11-06 杭州当虹科技股份有限公司 一种基于多音视频流合成vr的***
CN112866725A (zh) * 2021-01-14 2021-05-28 视联动力信息技术股份有限公司 一种直播控制方法及装置

Also Published As

Publication number Publication date
CN106657109A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
WO2018121405A1 (zh) 一种流数据的传输方法和装置
CN109522330B (zh) 基于区块链的云平台数据处理方法、装置、设备及介质
US8346957B2 (en) Method and apparatus for transmitting/receiving information in internet protocol network
CN107070866B (zh) 一种流数据的传输方法和装置
US11611602B2 (en) Method and system for group call using unicast and multicast
US8379641B2 (en) Light host management protocol on multicast capable router
US9973290B2 (en) System for media rebroadcasting for synchronized rendering across multiple devices
CN109521956B (zh) 一种基于区块链的云存储方法、装置、设备及存储介质
US20170187986A1 (en) Live streaming media method, publish side live, server and terminal
US20150088995A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
CN101540872A (zh) 媒体控制服务器多通道级联的控制方法、装置和***
CN109522462B (zh) 一种基于区块链的云查询方法、装置、设备及存储介质
WO2018121705A1 (zh) 一种流数据的双向传输方法和装置
JP2015525014A (ja) 同じ意味の複数の信号を取り込む方法
CN106302362A (zh) 多媒体内容发送方法、分享方法、接收方法及对应装置
US8325725B2 (en) Efficient host management protocol on multicast capable router
US9998519B2 (en) Techniques for promoting and viewing social content written by nearby people
WO2018121681A1 (zh) 一种远程开启流数据传输的方法和装置
WO2018121739A1 (zh) 流数据的传输方法和装置
CN108668151B (zh) 音视频交互方法及装置
CN110602515A (zh) 基于区块链的数据处理方法、服务器及存储介质
KR101406243B1 (ko) 스트리밍 서비스 시스템 및 그 방법
JP2011176601A (ja) コンテンツ配信システム、ネットワーク装置、コンテンツ配信サーバ及びユーザ端末
CN110660205B (zh) 报警信息处理方法、装置、电子设备及可读存储介质
KR101970200B1 (ko) 영상 녹화 장치를 이용하여 복수의 sns 서버로 라이브 방송을 제공하는 방법 및 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17888722

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17888722

Country of ref document: EP

Kind code of ref document: A1