CN113905248A - Live video data transmission method, device, equipment and storage medium - Google Patents

Live video data transmission method, device, equipment and storage medium Download PDF

Info

Publication number
CN113905248A
CN113905248A CN202111151821.1A CN202111151821A CN113905248A CN 113905248 A CN113905248 A CN 113905248A CN 202111151821 A CN202111151821 A CN 202111151821A CN 113905248 A CN113905248 A CN 113905248A
Authority
CN
China
Prior art keywords
video
streams
sub
data
video sub
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.)
Granted
Application number
CN202111151821.1A
Other languages
Chinese (zh)
Other versions
CN113905248B (en
Inventor
祝晓光
于潜江
王红光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Letv Cloud Network Technology Beijing Co ltd
Original Assignee
LeCloud Computing Co Ltd
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 LeCloud Computing Co Ltd filed Critical LeCloud Computing Co Ltd
Priority to CN202111151821.1A priority Critical patent/CN113905248B/en
Publication of CN113905248A publication Critical patent/CN113905248A/en
Application granted granted Critical
Publication of CN113905248B publication Critical patent/CN113905248B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The embodiment of the disclosure provides a live video data transmission method, a live video data transmission device, equipment and a storage medium. The method comprises the steps that a video data processing end divides target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm; the video data processing end respectively sends the video substreams to a plurality of devices so that each device stores one of the video substreams, and the plurality of devices comprise first devices; the method comprises the steps that a first device acquires target video sub-streams from a plurality of devices except a plurality of second devices of the first device, wherein the target video sub-streams are video sub-streams except a video sub-stream stored by the first device in the plurality of video sub-streams; the first device synthesizes the target video data based on the stored video substreams and the acquired target video substream. In this way, huge live broadcast requirements can be met under the condition that bandwidth resources of the live broadcast server are limited.

Description

Live video data transmission method, device, equipment and storage medium
Technical Field
The present disclosure relates to the field of video data transmission, and more particularly, to the field of live video data transmission.
Background
In the live broadcast system, the service capability of the live broadcast server is limited, but the number of devices with live broadcast requirements is huge, so that in the existing scheme, the live broadcast server cannot meet the huge broadcast requirements.
Disclosure of Invention
The disclosure provides a code stream switching method, a server, a client, a device and a storage medium.
According to a first aspect of the present disclosure, there is provided a live video data transmission method, including:
the video data processing end divides target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm;
the video data processing end respectively sends the video substreams to a plurality of devices so that each device stores one of the video substreams, and the plurality of devices comprise first devices;
the method comprises the steps that a first device acquires target video sub-streams from a plurality of devices except a plurality of second devices of the first device, wherein the target video sub-streams are video sub-streams except a video sub-stream stored by the first device in the plurality of video sub-streams;
the first device synthesizes the target video data based on the stored video substreams and the acquired target video substream.
In some implementations of the first aspect, the dividing, by the video data processing end, target video data to be transmitted into a plurality of video sub-streams based on a preset pre-fetching algorithm includes:
dividing target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, wherein each data block comprises a sequence number determined according to the time sequence of the target video data, and the sequence number takes zero as an initial sequence number;
and generating a plurality of video sub-streams from the plurality of data blocks based on a preset pre-fetching algorithm and the sequence number.
In some implementations of the first aspect, generating a plurality of video sub-streams from a plurality of data blocks based on a preset pre-fetch algorithm and sequence numbers includes:
acquiring the number of a plurality of data blocks and the number of a plurality of video sub-streams;
determining a plurality of video substreams based on a preset video substream determination formula from the plurality of data blocks, wherein the preset video substream determination formula is yb-sn + b-1, wherein yb represents a set of sequence numbers of the data blocks included in the b-th video substream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video substreams, n is an integer more than or equal to 0, and yb +1 is less than or equal to the number of the plurality of data blocks.
In some implementations of the first aspect, generating a plurality of video sub-streams from the plurality of data blocks based on a preset pre-fetch algorithm and sequence numbers further comprises:
acquiring the number of a plurality of data blocks and the number of a plurality of video sub-streams;
acquiring the number a of data blocks included in a data block set in a preset video sub-stream, wherein one video stream is composed of a plurality of data block sets;
the method comprises the steps of determining a plurality of video sub-streams from a plurality of data blocks based on a preset video sub-stream determination formula, wherein the preset video sub-stream determination formula is yb ═ asn + [ a (b-1), a × (b-1) +1, …, a × (b-1) + a-1], yb represents a set of serial numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video sub-streams, n is an integer more than or equal to 0, and yb +1 is less than or equal to the number of the plurality of data blocks.
In some implementations of the first aspect, each device further stores a sequence number identifier of the video substream, where the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, the sequence numbers being arranged in order from small to large; the first device synthesizes target video data based on the stored video substreams and the acquired target video substream, and includes:
and the first equipment synthesizes the target video data according to the sequence from small to large of the sequence identifications based on the sequence identifications of the stored video substreams and the sequence identifications of the target video substreams.
In some implementations of the first aspect, each device further stores a sequence number identifier of the video substream, where the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, the sequence numbers being arranged in order from small to large; the first device obtaining a target video substream from a plurality of devices other than a plurality of second devices of the first device, comprising:
the first device obtains the target video substream from a plurality of second devices except the first device according to the sequence number identification from small to large and based on the sequence number identification of the video substream.
According to a second aspect of the present disclosure, there is provided a live video data transmission apparatus, the apparatus comprising:
the video sub-stream dividing module is used for dividing target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm;
the video sub-stream sending module is used for sending the plurality of video sub-streams to the plurality of devices respectively so that each device stores one of the video sub-streams, the plurality of devices comprise a first device, and the first device is used for acquiring a target video sub-stream from the plurality of devices except for a plurality of second devices of the first device, and synthesizing target video data based on the stored video sub-stream and the acquired target video sub-stream, wherein the target video sub-stream is a video sub-stream of the plurality of video sub-streams except for the video sub-stream stored by the first device.
In some implementation manners of the second aspect, the video sub-stream dividing module may be further configured to divide target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, where each data block includes a sequence number determined according to a time sequence of the target video data, and the sequence number uses zero as a starting sequence number; and generating a plurality of video sub-streams from the plurality of data blocks based on a preset pre-fetching algorithm and the sequence number.
In some implementations of the second aspect, the video substream dividing module may be further configured to obtain a number of the plurality of data blocks and a number of the plurality of video substreams; and determining a plurality of video substreams from the plurality of data blocks based on a preset video substream determination formula, the preset video substream determination formula being ybSn + b-1, wherein ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video sub-streams, n is an integer more than or equal to 0, yb+1 ≦ number of data blocks.
In some implementations of the second aspect, the video substream dividing module may be further configured to obtain a number of the plurality of data blocks and a number of the plurality of video substreams; acquiring the number a of data blocks included in a data block set in a preset video sub-stream, wherein one video stream is composed of a plurality of data block sets; determining a plurality of video substreams based on a preset video substream determination formula from the plurality of data blocks, the preset video substream determination formula being yb=asn+[a*(b-1),a*(b-1)+1,…,a*(b-1)+a-1]Wherein, ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video sub-streams, n is an integer more than or equal to 0, yb+1 ≦ number of data blocks.
In some implementations of the second aspect, each device further stores therein a sequence number identifier of the video substream, where the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, the sequence numbers being arranged in descending order; and synthesizing the target video data by the first equipment according to the sequence number identifications from small to large based on the sequence number identifications of the stored video substreams and the sequence number identifications of the target video substreams.
In some implementations of the second aspect, each device further stores a sequence number time identifier of the video substream, where the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, the sequence numbers being arranged in order from small to large; and the first equipment acquires the stored target video substreams from a plurality of second equipment except the first equipment according to the sequence of the sequence number identification time from small to large and on the basis of the sequence number moment identifications of the target video substreams.
According to a third aspect of the present disclosure, an electronic device is provided. The electronic device includes: a memory having a computer program stored thereon and a processor that, when executing the program, implements the method of the first aspect and any possible implementation of the first aspect.
According to a fourth aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements a method as in the first aspect, and any possible implementation manner of the first aspect.
According to the live video data transmission method, the device, the equipment and the storage medium, the target video data are pre-fetched to generate the plurality of video sub-streams and are sent to the plurality of equipment, when the first equipment needs to obtain the complete target video data, the target video sub-streams are obtained from the plurality of equipment except the video sub-streams pre-fetched from the plurality of second equipment of the first equipment, and therefore under the condition that bandwidth resources of a live server are limited, increasingly huge live broadcast requirements are met.
It should be understood that the statements herein reciting aspects are not intended to limit the critical or essential features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. The accompanying drawings are included to provide a further understanding of the present disclosure, and are not intended to limit the disclosure thereto, and the same or similar reference numerals will be used to indicate the same or similar elements, where:
fig. 1 shows a flow diagram of a live video data transmission method according to an embodiment of the present disclosure;
fig. 2 illustrates a schematic diagram of determining a plurality of video sub-streams in accordance with an embodiment of the present disclosure;
fig. 3 shows a block diagram of a live video data transmission apparatus of an embodiment of the present disclosure;
FIG. 4 illustrates a block diagram of an exemplary electronic device capable of implementing embodiments of the present disclosure.
Detailed Description
To make the objects, technical solutions and advantages of the embodiments of the present disclosure more clear, the technical solutions of the embodiments of the present disclosure will be described clearly and completely with reference to the drawings in the embodiments of the present disclosure, and it is obvious that the described embodiments are some, but not all embodiments of the present disclosure. All other embodiments, which can be derived by a person skilled in the art from the embodiments disclosed herein without making any creative effort, shall fall within the protection scope of the present disclosure.
In addition, the term "and/or" herein is only one kind of association relationship describing an associated object, and means that there may be three kinds of relationships, for example, a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the character "/" herein generally indicates that the former and latter related objects are in an "or" relationship.
Currently, a prefetching method is only available in live broadcasting, prefetching is not available in on-demand broadcasting, and if prefetching does not exist in live broadcasting, P2P among users can only be performed through different playing delays, so that increasing the sharing rate inevitably leads to increasing the playing delay of users.
In the live broadcast system, the service capability of the live broadcast server is limited, but the number of devices with live broadcast requirements is huge, so that in the existing scheme, the live broadcast server cannot meet the huge broadcast requirements.
In the present disclosure, the inventor considers that in a live system, the playback delay is generally about tens of seconds, and there is a trend that the playback delay is reduced, but the P2P download rate is reduced due to the reduction of the buffer. In the method, the live broadcast time axis is divided into an emergency area and a non-emergency area, the emergency area is close to a playing point, in order to guarantee playing quality, the live broadcast time axis is directly downloaded from the CDN, most of the non-emergency area is downloaded from P2P, a certain number of video files are prefetched from the CDN, and the live broadcast time axis is convenient for P2P to share. The random prefetching method has the advantages that when the number of users is large, random variables are uniformly distributed, and the file theory is close to full coverage, so that the data sharing efficiency is improved under the condition of not reducing the playing delay.
The technical solutions provided by the embodiments of the present disclosure are described below with reference to the accompanying drawings.
Fig. 1 is a schematic flowchart of a live video data transmission method provided by an embodiment of the present disclosure, where an execution subject of the method may be a live server, a terminal device, or another server with computing processing capability.
As shown in fig. 1, the live video data transmission method may specifically include:
s101: the video data processing end divides target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm.
Specifically, because the video is composed of data blocks which are logically organized sub-streams, the video data processing end can divide the target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, wherein each data block comprises a sequence number determined according to the time sequence of the target video data, and the sequence number takes zero as an initial sequence number; and then generating a plurality of video sub-streams from the plurality of data blocks based on a preset pre-fetching algorithm and the sequence number.
In one embodiment, the process of generating the plurality of video sub-streams from the plurality of data blocks based on the pre-set pre-fetching algorithm and the sequence number may include obtaining a number of the plurality of data blocks and a number of the plurality of video sub-streams; then, a plurality of video sub-streams are determined from the plurality of data blocks based on a preset video sub-stream determination formula, wherein the preset video sub-stream determination formula is ybSn + b-1, wherein ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video sub-streams, n is an integer more than or equal to 0, yb+1 ≦ number of data blocks. In the present disclosure, by prefetching the target video data to be transmitted, the data difference of the different devices storing the video sub-streams is realized,so as to share with each other. In addition, the prefetch rate, i.e., the value of s, can be dynamically adjusted according to the number of node connections.
FIG. 2 is a schematic diagram of determining a plurality of video substreams in the above embodiment, with substream0 indicating y1That is, the 1 st video sub-stream, as shown in fig. 2, the bitstream 0 includes data blocks with sequence numbers 0, s, and 2s …. And the other video sub-streams are analogized according to the formula. For example, assuming that there are 10 substreams (substreams) in total in the system, i.e., s is 10, the 6 th substream will contain data blocks with sequence numbers 5, 15, 25, etc. by analogy with the above formula.
In one embodiment, in order to increase the speed of acquiring the video data and generating the video sub-streams, when each video sub-stream is generated in the process of generating the plurality of video sub-streams according to the plurality of data blocks based on the preset pre-fetching algorithm and the sequence number, the number of the acquired data blocks can be increased to realize the fast generation of the video sub-streams, and the time for changing the video data into the video sub-streams is reduced.
Specifically, the number of the plurality of data blocks and the number of the plurality of video substreams may be obtained; then, acquiring the number a of data blocks included in a data block set in a preset video sub-stream, wherein one video stream is composed of a plurality of data block sets; then, from the plurality of data blocks, a plurality of video substreams are determined based on a preset video substream determination formula, where the preset video substream determination formula is yb=asn+[a*(b-1),a*(b-1)+1,…,a*(b-1)+a-1]Wherein, ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the plurality of video sub-streams, n is an integer more than or equal to 0, yb+1 ≦ number of data blocks.
After the video sub-streams are determined, the video sub-streams may be sent to a plurality of devices through a Content Delivery Network (CDN) for storage, so that the devices prefetch the video sub-streams, that is, S102 is performed.
S102: the video data processing terminal respectively sends the plurality of video substreams to a plurality of devices so that each device stores one of the video substreams, and the plurality of devices comprise a first device.
It should be noted that the first device is a device with a live broadcast requirement.
S103: the first device acquires target video substreams from a plurality of devices except a plurality of second devices of the first device, wherein the target video substreams are video substreams of the plurality of video substreams except the video substream stored by the first device.
It should be noted that each device further stores a sequence number identifier of the video substream, where the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, the sequence numbers being arranged in a descending order; the process of acquiring the target video sub-stream in S103 is specifically to perform data transmission through P2P, and may include: the first device obtains the target video substream from a plurality of second devices except the first device in a way of P2P according to the sequence number identification from small to large and based on the sequence number identification of the video substream.
It can be understood that the sequence number identifier is an identifier of a video sub-stream stored in each device, for example, in a segment of live video, ten video sub-streams of the live video are stored in ten devices, the ten video sub-streams constitute the segment of live video, each device determines the sequence number identifier according to the minimum sequence number of the stored data block, and then in the process of acquiring other video sub-streams by the first device, the target video sub-streams can be sequentially acquired from the second device according to the sequence number identifiers, so that the video sub-streams are sequentially acquired, and the smoothness of live video playing is improved.
S104: the first device synthesizes the target video data based on the stored video substreams and the acquired target video substream.
In the process of synthesizing the target video data, the first device synthesizes the target video data according to the sequence number identifications from small to large based on the stored sequence number identifications of the video substreams and the sequence number identifications of the target video substreams.
In an embodiment, when the network condition of the first device fluctuates, the first device may further preferentially acquire the target video substream corresponding to the previous sequence number identifier according to a sequence from small to large of the sequence number identifiers.
In a specific example, taking the case that the CDN distributes 10 different substreams to 10 clients, the 10 substreams constitute a complete live video, and different substreams are prefetched for 10 clients. On the premise of ensuring the smoothness of the network, each client device is connected with other 9 client devices, so that the missing sublates can be supplemented, ideally, 10% of the sublates come from the CDN, 90% of the sublates come from the client devices, and 90% of the P2P download rate, so that the huge live broadcast requirements can be met under the condition that the bandwidth resources of the live broadcast server are limited.
In the live broadcast video data transmission method provided by the disclosure, a live broadcast server, namely a video data processing end divides target video data to be transmitted into a plurality of video sub-streams, respectively sends the plurality of video sub-streams to a plurality of devices through a CDN (content distribution network), so as to realize video data prefetching, and a first device with subsequent live broadcast requirements acquires the target video sub-streams from the plurality of devices except the video sub-streams prefetched from a plurality of second devices of the first device based on a P2P mode, so that bandwidth resources of the live broadcast server are saved, and accordingly, under the condition that the bandwidth resources of the live broadcast server are limited, increasingly huge live broadcast requirements are met.
It is noted that while for simplicity of explanation, the foregoing method embodiments have been described as a series of acts or combination of acts, it will be appreciated by those skilled in the art that the present disclosure is not limited by the order of acts, as some steps may, in accordance with the present disclosure, occur in other orders and concurrently. Further, those skilled in the art should also appreciate that the embodiments described in the specification are exemplary embodiments and that acts and modules referred to are not necessarily required by the disclosure.
The above is a description of embodiments of the method, and the embodiments of the apparatus are further described below.
Fig. 3 shows a block diagram of a live video data transmission apparatus 300 according to an embodiment of the present disclosure. As shown in fig. 3, the live video data transmission apparatus 300 may include:
the video sub-stream dividing module 301 is configured to divide target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm;
a video sub-stream sending module 302, configured to send the multiple video sub-streams to multiple devices respectively, so that each device stores one of the video sub-streams, where the multiple devices include a first device, and the first device acquires a target video sub-stream from multiple second devices of the multiple devices except the first device, and synthesizes the target video data based on the stored video sub-stream and the acquired target video sub-stream, where the target video sub-stream is a video sub-stream of the multiple video sub-streams except for the video sub-stream stored by the first device.
The video substream dividing module 301 may be further configured to divide the target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, where each data block includes a sequence number determined according to a time sequence of the target video data, and the sequence number uses zero as an initial sequence number; and generating the plurality of data blocks into the plurality of video sub-streams based on a preset pre-fetching algorithm and the sequence number.
The video substream dividing module 301 may be further configured to obtain the number of the plurality of data blocks and the number of the plurality of video substreams; and determining the plurality of video substreams based on a preset video substream determination formula from the plurality of data blocks, wherein the preset video substream determination formula is ybSn + b-1, wherein ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the video sub-streams, n is an integer more than or equal to 0, yb+1 is less than or equal to the number of the plurality of data blocks.
The video substream dividing module 301 may be further configured to obtain the number of the plurality of data blocks and the number of the plurality of video substreams; acquiring the number a of data blocks included in a data block set in a preset video sub-stream, wherein one video stream is composed of a plurality of data block sets; determining the plurality of video substreams from the plurality of data blocks based on a preset video substream determination formula, the plurality of video substreamsPresetting a video sub-stream determination formula as yb=asn+[a*(b-1),a*(b-1)+1,…,a*(b-1)+a-1]Wherein, ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the video sub-streams, n is an integer more than or equal to 0, yb+1 is less than or equal to the number of the plurality of data blocks.
In one embodiment, each device further stores a sequence number identifier of the video substream, wherein the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, and the sequence numbers are arranged in a descending order; and synthesizing the target video data by the first device according to the sequence number from small to large based on the sequence number identification of the stored video substream and the sequence number identification of the target video substream.
In one embodiment, each device further stores a sequence number identifier of the video substream, wherein the sequence number identifier is determined according to a first sequence number of sequence numbers of data blocks in the video substream stored in each device, and the sequence numbers are arranged in a descending order; and obtaining the target video substream from a plurality of second devices except the first device by the first device based on the sequence number identifications of the video substreams in the sequence from small to large of the sequence number identifications of the first device.
In the live video data transmission device provided by the disclosure, target video data to be transmitted are divided into a plurality of video sub-streams, the video sub-streams are respectively sent to a plurality of devices through a CDN (content distribution network), video data prefetching is realized, and subsequently, a first device with a live broadcast requirement acquires the target video sub-streams from the plurality of devices except the video sub-streams prefetched from a plurality of second devices of the first device in a P2P mode, so that bandwidth resources of a live broadcast server are saved, and increasingly huge live broadcast requirements are met under the condition that the bandwidth resources of the live broadcast server are limited.
It can be understood that each module in the live video data transmission apparatus shown in fig. 3 has a function of implementing each step of the video data processing end in fig. 1, and can achieve the corresponding technical effect, and for brevity, no further description is provided herein.
It can be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working process of the described module may refer to the corresponding process in the foregoing method embodiment, and is not described herein again.
In the technical scheme of the disclosure, the acquisition, storage, application and the like of the personal information of the related user all accord with the regulations of related laws and regulations, and do not violate the good customs of the public order.
The present disclosure also provides an electronic device, a readable storage medium, and a computer program product according to embodiments of the present disclosure. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the disclosure described and/or claimed herein.
The device 400 comprises a computing unit 401 which may perform various suitable actions and processes in accordance with a computer program stored in a Read Only Memory (ROM)402 or a computer program loaded from a storage unit 408 into a Random Access Memory (RAM) 403. In the RAM 403, various programs and data required for the operation of the device 400 can also be stored. The computing unit 401, ROM 402, and RAM 403 are connected to each other via a bus 404. An input/output (I/O) interface 405 is also connected to bus 404.
A number of components in device 400 are connected to I/O interface 405, including: an input unit 406 such as a keyboard, a mouse, or the like; an output unit 407 such as various types of displays, speakers, and the like; a storage unit 408 such as a magnetic disk, optical disk, or the like; and a communication unit 409 such as a network card, modem, wireless communication transceiver, etc. The communication unit 409 allows the device 400 to exchange information/data with other devices via a computer network, such as the internet, and/or various telecommunication networks.
Computing unit 401 may be a variety of general and/or special purpose processing components with processing and computing capabilities. Some examples of the computing unit 401 include, but are not limited to, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), various dedicated Artificial Intelligence (AI) computing chips, various computing units running machine learning model algorithms, a Digital Signal Processor (DSP), and any suitable processor, controller, microcontroller, and so forth. The computing unit 401 executes the respective methods and processes described above, such as the live video data transmission method. For example, in some embodiments, the live video data transmission method may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as storage unit 408. In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 400 via the ROM 402 and/or the communication unit 409. When the computer program is loaded into RAM 403 and executed by computing unit 401, one or more steps of the live video data transmission method described above may be performed. Alternatively, in other embodiments, the computing unit 401 may be configured to perform the live video data transmission method by any other suitable means (e.g., by means of firmware).
Various implementations of the systems and techniques described here above may be implemented in digital electronic circuitry, integrated circuitry, Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), system on a chip (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowchart and/or block diagram to be performed. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server may be a cloud server, a server of a distributed system, or a server with a combined blockchain.
It should be understood that various forms of the flows shown above may be used, with steps reordered, added, or deleted. For example, the steps described in the present disclosure may be executed in parallel, sequentially, or in different orders, as long as the desired results of the technical solutions disclosed in the present disclosure can be achieved, and the present disclosure is not limited herein.
The above detailed description should not be construed as limiting the scope of the disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may be made in accordance with design requirements and other factors. Any modification, equivalent replacement, and improvement made within the spirit and principle of the present disclosure should be included in the scope of protection of the present disclosure.

Claims (10)

1. A live video data transmission method, characterized in that the method comprises:
the video data processing end divides target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm;
the video data processing end respectively sends the video substreams to a plurality of devices so that each device stores one of the video substreams, wherein the plurality of devices comprise first devices;
the first device acquires target video sub-streams from a plurality of devices except a plurality of second devices of the first device, wherein the target video sub-streams are video sub-streams of the plurality of video sub-streams except the video sub-stream stored by the first device;
and the first device synthesizes the target video data based on the stored video sub-streams and the acquired target video sub-streams.
2. The method according to claim 1, wherein the video data processing end divides the target video data to be transmitted into a plurality of video sub-streams based on a preset pre-fetching algorithm, and comprises:
dividing the target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, wherein each data block comprises a sequence number determined according to the time sequence of the target video data, and the sequence number takes zero as an initial sequence number;
and generating the plurality of video sub-streams from the plurality of data blocks based on a preset pre-fetching algorithm and the sequence number.
3. The method of claim 2, wherein generating the plurality of video sub-streams from the plurality of data blocks based on a pre-set pre-fetching algorithm and the sequence number comprises:
obtaining the number of the plurality of data blocks and the number of the plurality of video substreams;
determining the plurality of video substreams based on a preset video substream determination formula from the plurality of data blocks, the preset video substream determination formula being ybSn + b-1, wherein ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the video sub-streams, n is an integer more than or equal to 0, yb+1 is less than or equal to the number of the plurality of data blocks.
4. The method of claim 2, wherein the generating the plurality of video sub-streams from the plurality of data blocks based on a pre-set pre-fetching algorithm and the sequence number further comprises:
obtaining the number of the plurality of data blocks and the number of the plurality of video substreams;
acquiring the number a of data blocks included in a data block set in a preset video sub-stream, wherein one video stream is composed of a plurality of data block sets;
determining the plurality of video substreams based on a preset video substream determination formula from the plurality of data blocks, the preset video substream determination formula being yb=asn+[a*(b-1),a*(b-1)+1,…,a*(b-1)+a-1]Wherein, ybRepresenting the set of sequence numbers of data blocks included in the b-th video sub-stream, b is more than or equal to 1 and less than or equal to s, s represents the number of the video sub-streams, n is an integer more than or equal to 0, yb+1 is less than or equal to the number of the plurality of data blocks.
5. The method according to claim 3, wherein each device further stores therein serial number identifiers of the video substreams, the serial number identifiers being determined according to a first serial number of the serial numbers of the data blocks in the video substreams stored in each device, the first serial number being arranged in descending order; the first device synthesizes the target video data based on the stored video substreams and the acquired target video substream, and includes:
and the first equipment synthesizes the target video data according to the sequence from small to large of the sequence identifications based on the stored sequence identifications of the video substreams and the sequence identifications of the target video substreams.
6. The method according to claim 1, wherein each device further stores therein serial number identifiers of the video substreams, the serial number identifiers being determined according to a first serial number of the serial numbers of the data blocks in the video substreams stored in each device, the first serial number being arranged in descending order; the first device obtaining a target video substream from a plurality of second devices of the plurality of devices except the first device, comprising:
and the first equipment acquires target video substreams from a plurality of second equipment except the first equipment on the basis of the serial number identifications of the video substreams according to the sequence from small to large of the serial number identifications.
7. A live video data transmission apparatus, the apparatus comprising:
the video sub-stream dividing module is used for dividing target video data to be transmitted into a plurality of video sub-streams based on a preset prefetching algorithm;
the video sub-stream sending module is configured to send the plurality of video sub-streams to a plurality of devices respectively, so that each device stores one of the video sub-streams, where the plurality of devices includes a first device, and the first device is configured to acquire a target video sub-stream from a plurality of second devices of the plurality of devices except the first device, and synthesize the target video data based on the stored video sub-stream and the acquired target video sub-stream, where the target video sub-stream is a video sub-stream of the plurality of video sub-streams except the video sub-stream stored by the first device.
8. The apparatus according to claim 7, wherein the video sub-stream dividing module is further configured to divide the target video data to be transmitted into a plurality of data blocks based on a preset data block division algorithm, where each data block includes a sequence number determined according to a time sequence of the target video data, and the sequence number uses zero as a starting sequence number; and generating the plurality of data blocks into the plurality of video sub-streams based on a preset pre-fetching algorithm and the sequence number.
9. An electronic device, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein the content of the first and second substances,
the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-6.
10. A non-transitory computer readable storage medium having stored thereon computer instructions for causing the computer to perform the method of any one of claims 1-6.
CN202111151821.1A 2021-09-29 2021-09-29 Live video data transmission method, device, equipment and storage medium Active CN113905248B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111151821.1A CN113905248B (en) 2021-09-29 2021-09-29 Live video data transmission method, device, equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111151821.1A CN113905248B (en) 2021-09-29 2021-09-29 Live video data transmission method, device, equipment and storage medium

Publications (2)

Publication Number Publication Date
CN113905248A true CN113905248A (en) 2022-01-07
CN113905248B CN113905248B (en) 2024-03-22

Family

ID=79189259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111151821.1A Active CN113905248B (en) 2021-09-29 2021-09-29 Live video data transmission method, device, equipment and storage medium

Country Status (1)

Country Link
CN (1) CN113905248B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363706A (en) * 2022-01-28 2022-04-15 北京百度网讯科技有限公司 Video data processing method, device, apparatus and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080281913A1 (en) * 2005-03-09 2008-11-13 Vudu, Inc. Live video broadcasting on distributed networks
CN101459848A (en) * 2008-12-26 2009-06-17 西安交通大学 Distributed multi-format digital video transcoding construction design method
CN103237300A (en) * 2013-04-28 2013-08-07 北京小米科技有限责任公司 Method, device and system for downloading file
CN104967866A (en) * 2015-05-13 2015-10-07 浙江树人大学 Dynamic self-adaptive P2P live streaming media substream scheduling method
CN105791836A (en) * 2016-03-07 2016-07-20 中国科学院计算技术研究所 Video coding method, video code stream adaptive transmission method and display method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080281913A1 (en) * 2005-03-09 2008-11-13 Vudu, Inc. Live video broadcasting on distributed networks
CN101459848A (en) * 2008-12-26 2009-06-17 西安交通大学 Distributed multi-format digital video transcoding construction design method
CN103237300A (en) * 2013-04-28 2013-08-07 北京小米科技有限责任公司 Method, device and system for downloading file
CN104967866A (en) * 2015-05-13 2015-10-07 浙江树人大学 Dynamic self-adaptive P2P live streaming media substream scheduling method
CN105791836A (en) * 2016-03-07 2016-07-20 中国科学院计算技术研究所 Video coding method, video code stream adaptive transmission method and display method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363706A (en) * 2022-01-28 2022-04-15 北京百度网讯科技有限公司 Video data processing method, device, apparatus and storage medium

Also Published As

Publication number Publication date
CN113905248B (en) 2024-03-22

Similar Documents

Publication Publication Date Title
CN109040230B (en) File downloading method, device, equipment/terminal/server and storage medium
CN108965098B (en) Message pushing method, device, medium and electronic equipment based on online live broadcast
CN107734394B (en) Method and device for displaying animation information
CN113794909A (en) Video streaming system, method, server, device, and storage medium
CN111757118A (en) Video transcoding processing method, device, equipment and medium
CN113132403A (en) Back-source method and device for content distribution network
CN113905248A (en) Live video data transmission method, device, equipment and storage medium
CN112653632A (en) Flow control realization method and device
CN113873318A (en) Video playing method, device, equipment and storage medium
CN114245175A (en) Video transcoding method and device, electronic equipment and storage medium
CN114040245A (en) Video playing method and device, computer storage medium and electronic equipment
CN113742389A (en) Service processing method and device
CN112350979B (en) Data transmission method and device
CN113824689B (en) Edge computing network, data transmission method, device, equipment and storage medium
CN112685481A (en) Data processing method and device
CN112667368A (en) Task data processing method and device
CN115567602A (en) CDN node back-to-source method, device and computer readable storage medium
CN114422572B (en) Cloud mobile phone control method and device, electronic equipment and storage medium
CN113568706B (en) Method and device for adjusting container for business, electronic equipment and storage medium
CN113365140B (en) MP4 online playing method, device, equipment, storage medium and program product
CN115277684A (en) File transmission method, device, equipment and storage medium
CN115988577A (en) Data transmission method, data transmission device, storage medium and electronic equipment
CN113905040A (en) File transmission method, device, system, equipment and storage medium
CN114157917B (en) Video editing method and device and terminal equipment
CN113766255A (en) Video stream merging method and device, electronic equipment and computer medium

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhu Xiaoguang

Inventor after: Yu Qianjiang

Inventor after: Lu Ping

Inventor before: Zhu Xiaoguang

Inventor before: Yu Qianjiang

Inventor before: Wang Hongguang

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230511

Address after: Room 07, Room 42301, 23rd Floor (23), Building 4, Yard 7, Qingnian Road, Chaoyang District, Beijing, 100123

Applicant after: LeTV Cloud Network Technology (Beijing) Co.,Ltd.

Address before: 100025 1508, 12 / F, building 3, 105 yaojiayuan Road, Chaoyang District, Beijing

Applicant before: LECLOUD COMPUTING Co.,Ltd.

GR01 Patent grant
GR01 Patent grant