+

WO2011150845A1 - Mehtod, device and system for verifying integrity of streaming media contents - Google Patents

Mehtod, device and system for verifying integrity of streaming media contents Download PDF

Info

Publication number
WO2011150845A1
WO2011150845A1 PCT/CN2011/075054 CN2011075054W WO2011150845A1 WO 2011150845 A1 WO2011150845 A1 WO 2011150845A1 CN 2011075054 W CN2011075054 W CN 2011075054W WO 2011150845 A1 WO2011150845 A1 WO 2011150845A1
Authority
WO
WIPO (PCT)
Prior art keywords
data block
verification information
streaming media
played
media file
Prior art date
Application number
PCT/CN2011/075054
Other languages
French (fr)
Chinese (zh)
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 WO2011150845A1 publication Critical patent/WO2011150845A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • 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/70Media network packetisation
    • 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/762Media network packet handling at the source 
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a method, device, and system for verifying the integrity of streaming media content. Background technique
  • Streaming media refers to media formats that are streamed on the Internet.
  • Service providers can provide video playback services to users through streaming media, such as IPTV (Internet Protocol Television) services.
  • the means for releasing the video playing service may adopt a node-assisted distribution scheme, that is, the streaming media server of the service provider can send the streaming media content to the user, and the user can also send the saved streaming media content to other users in the Internet.
  • the user receives or sends the video play file through the terminal device provided by the service provider.
  • the terminal device is a set top box.
  • the terminal device In order to ensure that the streaming media content received by the terminal device is correct, the terminal device needs to perform integrity verification on the received streaming media content. In order to enable service operators to provide fast and smooth video playback services, terminal devices must be able to guarantee continuous verification of streaming media content integrity.
  • the method adopted by the service provider is:
  • the streaming media server divides the streaming media content into a plurality of data blocks, and uses the tree chain based on the Merkle tree to construct the verification information of the data block, and all the data blocks are carried based on the network transmission.
  • the authentication information of the Merkle tree's tree chain is constructed.
  • the terminal device uses the Merkle tree-based tree chain to verify the integrity of the received data block according to the verification information carried by the data block.
  • the foregoing process of verifying the content integrity of the streaming media may also be used in a working scenario of real-time integrity verification, such as a P2P file system, or a P2P flow, for continuous data streams or streaming media that are end-to-end (P2P, Peer To Peer). Media system.
  • the inventors of the present invention found that with high-definition multimedia
  • the popularity of physical devices the capacity of high-definition streaming media content is large, because the maximum length of data blocks that can be transmitted in the network is fixed, the number of data blocks obtained by HD streaming media content is large, resulting in the construction of these data blocks.
  • the Merkle tree is so deep that the length of the validation information for each block of data based on the tree chain of the Merkle tree is large. Therefore, in this case, when the streaming media content is transmitted over the network, all the data blocks must carry large-capacity verification information constructed based on the tree chain of the Merkle tree, which may cause the transmission cost of the downloaded content of the terminal device to be large.
  • Embodiments of the present invention provide a method and device for verifying the integrity of streaming media content.
  • a method for verifying integrity of streaming media content comprising: a streaming media server reading an Nth fragment of a source streaming media file, the fragment comprising M data blocks; and an Mth data block of the fragment As the Mth data block of the Nth fragment of the back stream media file, starting from the Mth data block of the Nth fragment of the post stream media file, calculating the Nth of the post stream media file
  • the verification information of the mth data block of the fragment is generated by adding the verification information of the mth data block to the m-1th data block of the Nth slice of the source streaming media file to generate the mth number a data block, the m-th data block is used as the m-1th data block of the Nth slice of the post-streaming media file, until the Nth slice of the post-streaming media file is constructed
  • a method for verifying integrity of a streaming media content comprising: transmitting, by a terminal device, a first request message, where the first request message is used to request independent verification information of a first data block of a slice of the received downstream media file,
  • the slice includes K data blocks; receiving independent verification information of the first data block; verifying the integrity of the first data block according to the independent verification information of the first data block, when the first data block is When complete, starting from the first data block, extracting the verification information of the k+1th data block of the slice from the kth data block that has been verified as complete, according to the k+1th
  • the verification information of the data block verifies the integrity of the k+1th data block of the slice until the integrity of the Kth data block of the slice is verified, k is from 1 to K-1; Before the integrity of the Kth data block of the fragment, when the verification information of the Tth data block is missing, T is any integer from 2 to K, and sends a second request message, the second request message Independent verification information for requesting
  • a streaming media server comprising: a read fragmentation unit, configured to read an Rth slice of a source streaming media file, the slice includes Z data blocks; and the constructed streaming media file unit is used to The Zth data block of the fragment is used as the Zth data block of the Rth slice of the back stream media file, starting from the Zth data block of the Rth slice of the post stream media file, The verification information of the zth data block of the Rth slice of the subsequent streaming media file is added to the z-1th of the Rth slice of the source streaming media file by adding the verification information of the zth data block.
  • the data block generates a third data block, and the third data block is used as the z-1th data block of the Rth slice of the post-streaming media file until the post-streaming media is constructed.
  • the first data block of the Rth slice of the file z from Z to 2; constructs an independent verification information element for constructing independent verification information for each data block of the Rth slice in the post-streaming file And separately storing the independent verification
  • a terminal device comprising: a sending request message unit, configured to send a third request message, where the third request message is used to request independent verification information of a first data block of a slice of the received downstream media file,
  • the segmentation includes S data blocks;
  • Receiving a verification information unit configured to receive independent verification information of the first data block
  • a verification integrity unit configured to verify the integrity of the first data block according to the independent verification information of the first data block, when the first data block is complete, starting from the first data block, Verifying that the verification information of the s+1th data block of the fragment is extracted from the complete sth data block, and verifying the s+ of the fragment according to the verification information of the s+1th data block.
  • G is any integer from 2 to S, and sending a fourth request message, where the The four request messages are used to request independent verification information of the Gth data block, receive independent verification information of the Gth data block, and verify the integrity of the Gth data block according to the independent verification information of the Gth data block.
  • a system for verifying the integrity of streaming media content includes: the streaming media server and the terminal device.
  • the streaming media server processes the source streaming media file to obtain a post-streaming media file, where the data block in the post-streaming media file carries the verification information of the next data block, and the streaming media server further constructs the post-streaming media file.
  • Independent verification information for each of the data blocks in each, and these independent verification letters The information is saved separately. Therefore, the embodiment of the present invention can ensure that all data blocks in the downloaded media file downloaded by the terminal device can be continuously verified, and the transmission overhead required for the terminal device to download the streaming media file is small.
  • Embodiment 1 is a schematic flow chart of Embodiment 1 of a method for verifying the integrity of streaming media content in an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a Merkle tree in an embodiment of the present invention.
  • Embodiment 3 is a schematic flow chart of Embodiment 2 of a method for verifying the integrity of streaming media content in an embodiment of the present invention
  • Embodiment 4 is a schematic flow chart of Embodiment 3 of a method for verifying the integrity of streaming media content in an embodiment of the present invention
  • FIG. 5 is a schematic diagram of a logical structure of a fourth embodiment of a streaming media server according to an embodiment of the present invention
  • FIG. 6 is a schematic structural diagram of a fifth embodiment of a terminal device according to an embodiment of the present invention
  • an embodiment of a method for verifying integrity of streaming media content in an embodiment of the present invention includes:
  • the streaming media content exists in the form of a file.
  • the streaming media server divides the source streaming media file into a series of Fragmentation, each fragment includes a certain number of data blocks, wherein the data block is the smallest unit of network transmission, the ordering of the fragments and the ordering of all the data blocks are arranged in order from the front to the back according to the playing order of the streaming media content.
  • the streaming media server needs to process the source streaming media file in units of fragments to generate a post-streaming media file.
  • the streaming media server is a post-release streaming media.
  • the file, wherein the serial number of the fragment of the post-streaming media file corresponds to the serial number of the fragment of the source streaming media file.
  • the process of processing the source streaming media file by the streaming media server is described by taking the Nth fragment of the source streaming media file as an example, where the Nth fragment includes M data blocks.
  • the streaming media server reads the Nth fragment of the source streaming media file, where the Nth fragment includes M data blocks, and the identifiers of the M data blocks are B N , 1 B N , 2 , .. . , B N , M, the process of constructing the Nth slice of the stream media file is as follows: The remaining fragments of the source stream file except the first slice are processed in the same way as the Nth slice:
  • the last data block B N , M is used as the last data block of the Nth slice of the post-stream media file, that is, the Mth data block of the Nth slice of the post-stream media file;
  • the hash summary algorithm (for example, MD5, SHA-1) has low computational overhead and high security.
  • the streaming media server uses a hash digest algorithm to calculate the data block. verify message.
  • the data block B N , M calls the hash summary function h ( ), obtains the hash value h ( B N , M ), and then adds the hash value h ( B N , ⁇ ) to the end of the data block ⁇ ⁇ , ⁇ 4 ,
  • the data block B ' N , M _ l is used as the M-1th data block of the Nth slice of the post-streaming media file, and then the hash digest function h ( ) is generated to generate the data block B' N .
  • the streaming media server obtains a post-streaming media file, and the data blocks of each fragment of the subsequent streaming media file are connected to each other in a hash chain.
  • the streaming media server saves the backup of all the fragments of the streaming media file, and stores the fragments in each terminal device in the streaming media system for request playback.
  • the terminal device downloads the streaming media content.
  • the streaming media server also stores the corresponding relationship between the scatter-segmented shards and the terminal device that holds the shards in a directory server, and the directory server may be Streaming media server, can also be another a separate server, the terminal device requesting to play the streaming media content may obtain a list of addresses of the terminal devices having a better state of a certain fragment from the directory server, and sequentially request the other terminal device to download the fragment according to the address list.
  • the terminal device requests the streaming server to provide the fragment.
  • the terminal device may draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, so that the terminal device is downloaded in succession. Parallelism, the terminal device can also verify these parallel downloaded fragments in parallel.
  • the process of constructing the Nth fragment of the post-streaming media file by the streaming server is as an example, and the process further includes:
  • the streaming server calls the hash digest function to generate the first data block of the Nth fragment of the streaming media file.
  • the hash value is added to the first data block of the shard that is consecutively located before the Nth shard in the post-streaming file, and the hash value is added to the Nth of the post-streaming file.
  • the terminal device Because the hash chain is not applicable to the scenario where the data block of the post-streaming media file is randomly lost, in order to enable the service provider to provide fast and smooth video playing services, the terminal device must be able to absolutely verify the integrity of the streaming media content, so the terminal device It is necessary to be able to obtain independent verification information for all data blocks of the post-streaming media file.
  • the streaming media server uses a Merkle tree-based tree chain to construct independent verification information for each data block in the post-streaming media file. The specific process is as follows:
  • All the shards of the post-streaming media file construct a Merkle tree. Assuming that the post-streaming media file has two shards, each shard has four data blocks.
  • the process of constructing the Merkle tree is as follows: Each leaf of the Merkle tree
  • the sequence numbers in the s slices, D s , t are arranged in the Merkle tree in the right-to-left order from the hash value of the last data block of the last slice of the post-streaming file.
  • the structure of the Merkle tree is from the second slice
  • the hash values of all the child nodes under each parent node of the Merkle tree are concatenated together and then hashed to obtain their parent nodes, which is determined by the following formula.
  • D s , b represents the leaf node corresponding to the bth data block of the sth slice
  • D s , c represents the leaf node corresponding to the cth data block of the sth slice
  • D s , b ⁇ s , c represents the parent node of the leaf node corresponding to the data block between the bth data block and the cth data block of the sth slice.
  • the root node of the Merkle tree is h ra . t , then h ra to the root node. t digitally sign and obtain the digital signature information sign ( h ro . t ) of the root node.
  • the Merkle tree should be a binary balanced tree. If the Merkle tree is unbalanced, the balanced binary tree balancing algorithm is called to rebalance the Merkle tree.
  • the Merkle tree constructed according to all the shards of the post media file is shown in Figure 2.
  • the streaming server After constructing the Merkle tree, the streaming server adds the complete information of the data block on the verification path of the Merkle tree to the data block as the verification information of the data block, and the verification path is composed of one node on each layer of the tree. These nodes are from the sibling node on the leaf path to the next layer node of the root node.
  • its verification information is: sign ( h r .. t ), D 2 , ⁇ 2A , Di, w , 2 , 4 , and the sequence number 3 of the data block and the sequence number 1 of the fragment containing the data block.
  • the independent verification information of a data block includes: a digital signature information sign (h ra .
  • the size of the complete information of the verification path of a block in the post-streaming file may exceed the capacity of the largest data structure that the network can transmit.
  • the independent verification information of the data block of the post-stream media file can be constructed into multiple Merkle trees, and the length of the complete information of the verification path of each Merkle tree is limited to the length of the largest data block.
  • each shard has four data blocks
  • the current processing to the data block B 2 , 1 traverses the current Merkle tree, and finds a hash value h ( B 2 , ) The position of the leaf node D 2 , 1 in the ⁇ 6 tree, that is, the leftmost end of the current Merkle tree. If you insert the leaf node D 2 ,! After the leaf node D 2 , the size of the complete information of the verification path to the root node has exceeded the capacity of the largest data structure that the network can transmit, then the leaf node D 2 , the Merkle tree, and the leaf are saved. Node D 2 , as the first leaf node of the newly created Merkle tree, creates a new Merkle tree.
  • the independent verification information of all the data blocks in the post-streaming media file is separately saved.
  • the independent verification information of all the data blocks in the post-streaming media file may be saved in the verification server, and the verification server may be the streaming media server. , or it can be another separate server.
  • the streaming media server processes the source streaming media file to obtain a post-streaming media file, where the data block in the post-streaming media file carries the verification information of the next data block, and the streaming media server also constructs the post-streaming media file.
  • the independent verification information of each of the data blocks is saved separately. Therefore, this embodiment can ensure that all the data blocks in the post-streaming media file downloaded by the terminal device can be continuously verified and the terminal device is downloaded.
  • the transmission overhead required for streaming media files is small, and the verification information of the first data block of the fragment is signed with a digital signature, effectively eliminating the possibility that the verification information of the first data block is forged, and ensuring adoption.
  • the first embodiment describes a method for verifying the integrity of the streaming media content from the perspective of the streaming media server. The method for verifying the integrity of the streaming media content will be described from the perspective of the terminal device.
  • an embodiment of the present invention further provides another embodiment of a method for verifying integrity of a streaming media content, including:
  • the terminal device When the terminal device needs to play a certain streaming media content, the terminal device starts to request the download of the downstream media file including the streaming media content.
  • the terminal device is a fragment of the downloaded streaming media file.
  • the terminal device sequentially requests downloading from the first fragment of the post-streaming media file, but the time required for each fragment to be sent from the sender to the terminal device to receive the entire process may be due to network or the like. The difference is that the verification of the shard by the terminal device does not necessarily start with the first shard.
  • the terminal device may first request, from the directory server, a set of terminal devices that can provide the fragment, and the directory server returns a state with a better state according to the state of the terminal device that owns the fragment.
  • the address list of the group terminal device the terminal device sequentially selects a terminal device from the address list according to the address list returned by the directory server, and sends the fragment download request until the terminal device responds, if no terminal device can provide the fragment , the terminal device will request the flow
  • the media server provides the shard.
  • the terminal device After the downloading starts, the terminal device performs streaming content integrity verification on the received fragment from the first data block of the fragment, and since the received fragment does not carry the verification information of the first data block of the fragment, In this embodiment, the terminal device sends a first request message to the verification server, where the first request message is used to request the verification information of the first data block received by the terminal device.
  • the terminal device receives the independent verification information of the first data block from the verification server.
  • the independent verification information of all the data blocks of the post-stream media file saved by the verification server is adopted in the embodiment 1 shown in FIG.
  • the post-streaming media file has two shards, each of which has four data blocks, and the Merkle tree constructed according to all the shards of the post-media file is as shown in FIG. 2, and the first sub-segment
  • the independent verification information of the first data block of the slice is: sign ( h rt , D 2 , ⁇ .2, 4 , 3 ⁇ i, 4 , D L 2 ) .
  • the verification process of the first data block by the terminal device is as follows:
  • the verification information of the second data block of the same slice is extracted from the first data block, that is, the true hash value of the second data block, the terminal device
  • the received second data block is calculated by using a hash digest algorithm, and the calculated hash value is compared with the real hash value. If they are the same, the second data block is complete.
  • the verification of the third data block of the same slice is extracted from the second data block.
  • the information, that is, the true hash value of the third data block the terminal device uses the hash digest algorithm to calculate the received third data block, and compares the calculated hash value with the actual hash value, if The same, the third data block is complete. Continue to verify subsequent blocks of the same slice until the last block of the same slice is verified.
  • the terminal device will verify that the verification information of the data block is missing when verifying the integrity of a data block. Therefore, the terminal device requests independent verification information of the data block from the verification server, and uses the independent verification information of the data block sent by the verification server to verify the integrity of the data block.
  • This process and the process of verifying the first data block in step 203 can be performed. The same is true, and the difference is that when the terminal device receives the independent verification information of the data block from the verification server, the data block is extracted on the Merkle tree according to the independent verification information of the data block.
  • the verification path stepwise constructing the nodes on the verification path along the verification path, and when constructing to a node, if the content of the node with the same sequence number that was saved when verifying the integrity of other data blocks is the same, the configuration verification is stopped.
  • the terminal device requests the third data block of the first fragment from the verification server.
  • the independent verification information according to the independent verification information of the data block, extracts the verification path of the data block on the Merkle tree, and gradually constructs the node on the verification path along the verification path, because the first one of the first fragment is verified.
  • the constructed node D'L w (D , 4 ) is the node W of the Merkle tree as shown in FIG. 2 (DL).
  • the true value of w , 4 so as long as the hash value of the node of the same sequence number generated during the process of verifying the third data block of the first slice is the same as the constructed node W, the first one can be judged
  • the third data block of the slice is complete.
  • the terminal device extracts the first branch from the third data block of the first slice.
  • the fourth block of the slice continue to verify the fourth of the first slice Data block, until the complete integrity of the last data block of the first slice of the verification.
  • the terminal device For each shard, the terminal device sets a counter for the corrupted data block with a preset value of 0.
  • the terminal device When verifying that a data block is broken, its processing flow is as follows:
  • the terminal device adds 1 to the counter of the damaged data block and discards the data block;
  • the terminal device requests the terminal device or the streaming server that provides the fragment to download the data block.
  • the fragment is judged to be broken.
  • the terminal device will request to download the fragment to other terminal devices or streaming servers that can provide the fragment.
  • the terminal device may allocate a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, so that the terminal device fragment is considered.
  • the parallelism of the download, the terminal device can also carry out the risk identification of these parallel downloaded segments in parallel, specifically:
  • the terminal device except the first data block from the first shard Extracting the verification information of the second data block of the first fragment, and extracting the verification information of the first data block of the subsequent three fragments from the first data block of the first fragment, if the terminal device has already Start to download all the fragments in parallel, so the terminal device can verify the integrity of the second data block of the first fragment and the first data block of the subsequent three fragments in parallel until the parallel insurance completes all the fragments. Integrity.
  • the terminal device extracts the first data block of the fragment from the verification server by using the independent verification information of all the data blocks stored in the verification server, without the verification information of all the data blocks being missing. Verification information, and then continuous integrity verification of subsequent data blocks. If the verification information of a certain data block is missing, the independent verification information of the data block is extracted from the verification server, and the subsequent data blocks can be continuously performed. Integrity verification, so in this embodiment, the terminal device can continuously perform integrity verification on all received data blocks, effectively eliminating the possibility of leaking damaged data blocks.
  • the video player service provided by the service operator allows the user to pass the video cassette recorder (Video
  • an embodiment of the present invention further provides another embodiment of a method for verifying integrity of a streaming media content, including:
  • the user can perform these operations through the VCR operation button on the remote controller.
  • the terminal device receives the indication message of the user, and the terminal device can learn from the indication message that the data block to be played by the user specified by the VCR operation is known.
  • the terminal device determines, according to the received indication message, the location of the data block to be played in all the data blocks in the post-streaming media file.
  • the post-streaming media file has two fragments, and the first fragment has eight fragments. Data blocks.
  • the terminal device determines, according to the received indication message, the location of the data block to be played in all the data blocks in the backstream media file as the third data block of the first fragment.
  • step 403 determine whether the data block to be played has been buffered, if not, then perform step 404 and step 405, and if so, proceed to step 406;
  • the terminal device After determining that the data block to be played is the third data block of the first slice, the terminal device determines whether the third data block of the first slice has been buffered.
  • the terminal device downloads the fragment containing the data block, that is, the terminal device downloads a slice. In this embodiment, the terminal device does not have the data block to be played.
  • downloading the fragment containing the data block to be played instead of downloading the data block to be played and the subsequent data block of this data block is because in the streaming media system, the post-streaming media file is released.
  • the node-assisted distribution scheme therefore, it is more convenient to request to download a slice than to request the download of the data block to be played and the subsequent data block of this data block.
  • the terminal device does not start streaming the content from the first data block containing the slice of the data block to be played.
  • Sexual verification but request independent verification information of the data block to be played (the third data block of the first fragment) from the verification server, and receive independent verification information of the data block to be played from the verification server, according to Independent verification information of the played data block verifies the data to be played Block integrity, when the data block to be played is complete, that is, the third data block of the first fragment is complete, the terminal device extracts the fourth data block of the first fragment
  • the verification information when the fourth data block of the first fragment is complete, extracts the verification information of the fifth data block of the first fragment, and the terminal device continues to operate until the verification is completed.
  • For the verification information of the eighth data block of a slice refer to the second embodiment shown in FIG. 3 for a more detailed verification process.
  • step 406 determining whether the data block to be played has passed the integrity verification, and if so, executing step 407, if not, executing step 408;
  • the terminal device determines whether the data block to be played has passed the integrity verification, and if so, plays the data block to be played, and if not, the terminal device re-downloads to be played.
  • the data block the terminal device performs integrity verification on the data block to be played according to the verification information of the data block to be played extracted from the previous data block of the data block to be played, and the verification process is more detailed.
  • the user can also jump forward or backward continuously through the VCR operation, or jump forward and then jump backwards, etc.
  • the operation of the terminal device is similar to the above process. I won't go into details.
  • the terminal device starts playing the video according to the VCR operation.
  • the terminal device uses the independent verification information provided by the verification server to verify the data block to be played, in the case that the data block to be played is not buffered, In the case where the played data block is buffered, the verification information of the data block to be played extracted from the previous data block of the data block to be played is subjected to integrity verification on the data block to be played, and therefore, In this embodiment, the terminal device can perform integrity verification of the data block in the VCR operation scenario.
  • the read fragment unit 501 is configured to read the Rth slice of the source streaming media file, where the Rth slice includes Z data blocks;
  • the post-construction media file unit 502 is configured to calculate the Z-th data block of the Rth slice as the Z-th data block of the Rth slice of the R-stream file, and calculate the verification information of the Z-th data block.
  • the Z-2th data block is used as the Z-2th data block of the Rth slice of the post-streaming media file, and the above operation is continued until the first R of the R-slice of the streaming media file is constructed.
  • the data block is configured to construct an independent verification information unit 503 for constructing independent verification information of each data block in the post-streaming media file, and separately storing the independent verification information of each data block in the post-streaming media file.
  • the configuration independent verification information unit 503 may use the Merkle tree-based tree chain to construct independent verification information of each data block of the Rth slice in the stream media file.
  • the terminal device can draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, thus considering the parallelism of the terminal device fragment downloading.
  • the constructed streaming media file unit 502 is further configured to: when constructing the first data block of the Rth slice of the streaming media file, calculate the first of the Rth fragments of the streaming media file The verification information of the data block, the verification information of the first data block of the Rth slice of the post-stream media file is added to the first one of the plurality of consecutive segments located in front of the Rth slice in the post-stream media file
  • the constructed media file unit 502 can determine the number of fragments that are consecutively located before the Rth slice according to the size of the buffer of the terminal device.
  • an embodiment 5 of the terminal device in the embodiment of the present invention includes:
  • the sending request message unit 601 is configured to send a third request message, where the third request message is used to request independent verification information of the first data block of the current fragment of the received post-streaming media file, and the fragment includes S data block;
  • the receiving verification information unit 602 is configured to receive, after the sending request message unit 601 sends the third request message, the independent verification information of the first data block of the fragment;
  • a verification integrity unit 603 configured to verify the first one according to the independent verification information of the first data block The integrity of the data block, when the first data block is complete, starting from the first data block, extracting the s+1th data block of the slice from the sth data block that has been verified as complete Verification information, verifying the integrity of the s+1th data block of the slice according to the verification information of the s+1th data block, until the integrity of the Sth data block of the slice is verified, s from 1 Up to S-1, before verifying the integrity of the Sth data block of the fragment, when the verification information of the Gth data block is missing, G is any integer from 2 to S, and sends a fourth request message.
  • the fourth request message is used to request independent verification information of the Gth data block, receive independent verification information of the Gth data block, and verify the integrity of the Gth data block according to the independent verification information of the Gth data block.
  • the verification integrity unit 603 may include a verification subunit 604, and the verification subunit 604 is configured to receive independent verification information of the Gth data block, and extract the Gth data block according to the independent verification information of the Gth data block.
  • the verification path on the Merkle tree stepwise constructing the nodes on the verification path along the verification path of the Gth data block on the Merkle tree, when constructing to a node, if it is verifying the integrity of other data blocks If the contents of the saved nodes of the same sequence number are the same, then the remaining nodes on the verification path are stopped, and the constructed nodes are saved, and the Gth data block is complete.
  • the terminal device can draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, thus considering the parallelism of the terminal device fragment downloading.
  • the verification integrity unit 603 is further configured to: when the first data block is complete, extract the first data block of the i slices consecutively located after the current slice from the first data block. Verification information, verifying the integrity of the first data block of the i slices in parallel according to the verification information of the first data block of the i slices, and including the fragment of the complete first data block in the i slices The same verification method is used together with the current slice to verify the integrity of the remaining data blocks in parallel.
  • the terminal device further includes:
  • the receiving indication message unit 605 is configured to receive an indication message of the user, where the indication message is used to specify a data block to be played by the VCR operation;
  • the VCR executing unit 606 is configured to determine, according to the indication message received by the indication message unit 605, the position of the data block to be played in all the data blocks in the post-streaming media file; determine whether the data block to be played has been buffered, if The data block to be played is not buffered, according to the data block to be played back.
  • the location in all the data blocks in the streaming media file downloads the fragment containing the data block to be played, and the sending request message unit 601 requests the independent verification information of the data block to be played, and receives the independent verification of the data block to be played.
  • an embodiment 6 of the system for integrity of streaming media content in the embodiment of the present invention includes:
  • the streaming media server 701 and the terminal device 702 may be the same as the streaming media server shown in FIG. 5, and the terminal device 702 in this embodiment may be the same as the foregoing FIG.
  • the terminal devices are the same, and those skilled in the art can understand that all or part of the various methods of the above embodiments can be completed by a program to instruct related hardware, and the program can be stored in a In a computer readable storage medium, the storage medium may include: a ROM, a RAM, a magnetic disk or an optical disk, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

A method for verifying the integrity of streaming media contents includes: reading, by a streaming media server, the N-th fragment of a source streaming media file, wherein the fragment comprises M data blocks; taking the M-th data block of the fragment as the M-th data block of the N-th fragment of a later streaming media file; beginning from the M-th data block of the N-th fragment of the later streaming media file, calculating verification information for the m-th data block of the N-th fragment of the later streaming media file; by adding the verification information for the m-th data block to the (m-1)-th data block of the N-th fragment of the source streaming media file, generating the (m-1)'-th data block; taking the (m-1)'-th data block as the (m-1)-th data block of the N-th fragment of the later streaming media file; continuing until completing the construction of the first data block of the N-th fragment of the later streaming media file, wherein m is from M to 2; constructing independent verification information for each data block of the N-th fragment of the later streaming media file, and individually storing the independent verification information.

Description

流媒体内容完整性的方法、 设备以及系统  Method, device and system for streaming media content integrity
本申请要求于 2010 年 11 月 1 日提交中国专利局、 申请号为 201010528198.2、发明名称为 "验证流媒体内容完整性的方法、设备以及系统" 的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域  This application claims priority to Chinese Patent Application No. 201010528198.2, entitled "Method, Equipment and System for Verifying the Integrity of Streaming Media Content", filed on November 1, 2010, the entire contents of which are hereby incorporated by reference. Combined in this application. Technical field
本发明涉及通信技术领域, 具体涉及一种验证流媒体内容完整性的方法、 设备以及系统。 背景技术  The present invention relates to the field of communications technologies, and in particular, to a method, device, and system for verifying the integrity of streaming media content. Background technique
流媒体是指采用流式传输的方式在互联网播放的媒体格式,业务运营商可 以采用流媒体方式向用户提供视频播放业务, 例如宽带交互式电视(IPTV, Internet Protocol Television )业务。 目前视频播放业务的发布手段可以采用节 点辅助分发方案, 即, 除了业务运营商的流媒体服务器能够向用户发送流媒体 内容, 用户也能够向互联网中的其他用户发送自身保存的流媒体内容。用户接 收或发送视频播放文件是通过业务运营商提供的终端设备来实现,通常这个终 端设备为机顶盒。  Streaming media refers to media formats that are streamed on the Internet. Service providers can provide video playback services to users through streaming media, such as IPTV (Internet Protocol Television) services. At present, the means for releasing the video playing service may adopt a node-assisted distribution scheme, that is, the streaming media server of the service provider can send the streaming media content to the user, and the user can also send the saved streaming media content to other users in the Internet. The user receives or sends the video play file through the terminal device provided by the service provider. Usually, the terminal device is a set top box.
为了保证终端设备所接收的流媒体内容正确,终端设备需要对所接收的流 媒体内容进行完整性验证。为了使得业务运营商能够提供快速流畅的视频播放 业务, 终端设备要能够绝对保证持续验证流媒体内容完整性。  In order to ensure that the streaming media content received by the terminal device is correct, the terminal device needs to perform integrity verification on the received streaming media content. In order to enable service operators to provide fast and smooth video playback services, terminal devices must be able to guarantee continuous verification of streaming media content integrity.
目前, 业务运营商所采用的方法为: 流媒体服务器将流媒体内容划分为许 多数据块, 采用基于 Merkle树的树链来构造数据块的验证信息, 进行网络传输 时所有数据块都携带各自基于 Merkle树的树链构造而成的验证信息,终端设备 按照数据块携带的验证信息采用基于 Merkle树的树链来验证所接收的数据块 的完整性。  At present, the method adopted by the service provider is: The streaming media server divides the streaming media content into a plurality of data blocks, and uses the tree chain based on the Merkle tree to construct the verification information of the data block, and all the data blocks are carried based on the network transmission. The authentication information of the Merkle tree's tree chain is constructed. The terminal device uses the Merkle tree-based tree chain to verify the integrity of the received data block according to the verification information carried by the data block.
上述进行流媒体内容完整性验证的过程,也可以用在对端到端(P2P, Peer To Peer )的连续数据流或流媒体进行实时完整性验证的工作场景, 如 P2P文件 系统, 或 P2P流媒体系统。  The foregoing process of verifying the content integrity of the streaming media may also be used in a working scenario of real-time integrity verification, such as a P2P file system, or a P2P flow, for continuous data streams or streaming media that are end-to-end (P2P, Peer To Peer). Media system.
在对现有技术的研究和实践过程中,本发明的发明人发现, 随着高清多媒 体设备的普及, 高清流媒体内容的容量很大, 由于网络中能传输的数据块的最 大长度是固定的,所以由高清流媒体内容划分所得的数据块数量很多,导致按 照这些数据块构造的 Merkle树的高度很深, 从而使得每个数据块基于 Merkle 树的树链构造而成的验证信息的长度很大。 因此在这种情况下, 流媒体内容进 行网络传输时, 所有数据块都要携带基于 Merkle树的树链构造而成的大容量 的验证信息, 会导致终端设备下载流媒体内容的传输开销很大。 发明内容 In the research and practice of the prior art, the inventors of the present invention found that with high-definition multimedia The popularity of physical devices, the capacity of high-definition streaming media content is large, because the maximum length of data blocks that can be transmitted in the network is fixed, the number of data blocks obtained by HD streaming media content is large, resulting in the construction of these data blocks. The Merkle tree is so deep that the length of the validation information for each block of data based on the tree chain of the Merkle tree is large. Therefore, in this case, when the streaming media content is transmitted over the network, all the data blocks must carry large-capacity verification information constructed based on the tree chain of the Merkle tree, which may cause the transmission cost of the downloaded content of the terminal device to be large. . Summary of the invention
本发明实施例提供一种验证流媒体内容完整性的方法和设备。  Embodiments of the present invention provide a method and device for verifying the integrity of streaming media content.
一种验证流媒体内容完整性的方法, 包括: 流媒体服务器读取源流媒体文 件的第 N个分片, 所述分片包括 M个数据块; 将所述分片的第 M个数据块作为 后流媒体文件的第 N个分片的第 M个数据块, 从所述后流媒体文件的第 N个分 片的第 M个数据块开始, 计算所述后流媒体文件的第 N个分片的第 m个数据块 的验证信息, 通过将第 m个数据块的验证信息添加到所述源流媒体文件的第 N 个分片的第 m-1个数据块生成第 m-Γ个数据块, 将第 m-Γ个数据块作为所述后 流媒体文件的第 N个分片的第 m-1个数据块, 直至构造完所述后流媒体文件的 第 N个分片的第一个数据块, m从 M至 2; 构造所述后流媒体文件中第 N个分片 的每个数据块的独立验证信息, 并单独存储所述独立验证信息。  A method for verifying integrity of streaming media content, comprising: a streaming media server reading an Nth fragment of a source streaming media file, the fragment comprising M data blocks; and an Mth data block of the fragment As the Mth data block of the Nth fragment of the back stream media file, starting from the Mth data block of the Nth fragment of the post stream media file, calculating the Nth of the post stream media file The verification information of the mth data block of the fragment is generated by adding the verification information of the mth data block to the m-1th data block of the Nth slice of the source streaming media file to generate the mth number a data block, the m-th data block is used as the m-1th data block of the Nth slice of the post-streaming media file, until the Nth slice of the post-streaming media file is constructed One data block, m from M to 2; constructs independent verification information for each data block of the Nth slice in the post-streaming file, and separately stores the independent verification information.
一种验证流媒体内容完整性的方法, 包括: 终端设备发送第一请求消息, 所述第一请求消息用于请求接收的后流媒体文件的分片的第一个数据块的独 立验证信息, 所述分片包括 K个数据块;接收第一个数据块的独立验证信息; 按 照所述第一个数据块的独立验证信息验证第一个数据块的完整性,当第一个数 据块是完整的时候, 从第一个数据块开始, 从已经验证为完整的第 k个数据块 中提取出所述分片的第 k+1个数据块的验证信息, 按照所述第 k+1个数据块的 验证信息验证所述分片的第 k+1个数据块的完整性, 直至验证完所述分片的第 K个数据块的完整性, k从 1至 K-1; 在验证完所述分片的第 K个数据块的完整性 之前, 当第 T个数据块的验证信息缺失时, T为 2至 K中的任一整数, 发送第二 请求消息, 所述第二请求消息用于请求第 T个数据块的独立验证信息, 接收第 T个数据块的独立验证信息,按照所述第 T个数据块的独立验证信息验证第 T个 数据块的完整性。 A method for verifying integrity of a streaming media content, comprising: transmitting, by a terminal device, a first request message, where the first request message is used to request independent verification information of a first data block of a slice of the received downstream media file, The slice includes K data blocks; receiving independent verification information of the first data block; verifying the integrity of the first data block according to the independent verification information of the first data block, when the first data block is When complete, starting from the first data block, extracting the verification information of the k+1th data block of the slice from the kth data block that has been verified as complete, according to the k+1th The verification information of the data block verifies the integrity of the k+1th data block of the slice until the integrity of the Kth data block of the slice is verified, k is from 1 to K-1; Before the integrity of the Kth data block of the fragment, when the verification information of the Tth data block is missing, T is any integer from 2 to K, and sends a second request message, the second request message Independent verification information for requesting the Tth data block, receiving Independent verification information T blocks of data, according to the independent verification information verifying the T first data blocks of the T The integrity of the data block.
一种流媒体服务器, 包括: 读取分片单元, 用于读取源流媒体文件的第 R 个分片, 所述分片包括 Z个数据块; 构造后流媒体文件单元, 用于将所述分片 的第 Z个数据块作为后流媒体文件的第 R个分片的第 Z个数据块,从所述后流媒 体文件的第 R个分片的第 Z个数据块开始,计算所述后流媒体文件的第 R个分片 的第 z个数据块的验证信息,通过将第 z个数据块的验证信息添加到所述源流媒 体文件的第 R个分片的第 z-1个数据块生成第 ζ-Γ个数据块, 将第 ζ-Γ个数据块 作为所述后流媒体文件的第 R个分片的第 z-1个数据块,直至构造完所述后流媒 体文件的第 R个分片的第一个数据块, z从 Z至 2; 构造独立验证信息单元, 用 于构造所述后流媒体文件中第 R个分片的每个数据块的独立验证信息, 并单独 存储所述独立验证信息。  A streaming media server, comprising: a read fragmentation unit, configured to read an Rth slice of a source streaming media file, the slice includes Z data blocks; and the constructed streaming media file unit is used to The Zth data block of the fragment is used as the Zth data block of the Rth slice of the back stream media file, starting from the Zth data block of the Rth slice of the post stream media file, The verification information of the zth data block of the Rth slice of the subsequent streaming media file is added to the z-1th of the Rth slice of the source streaming media file by adding the verification information of the zth data block The data block generates a third data block, and the third data block is used as the z-1th data block of the Rth slice of the post-streaming media file until the post-streaming media is constructed. The first data block of the Rth slice of the file, z from Z to 2; constructs an independent verification information element for constructing independent verification information for each data block of the Rth slice in the post-streaming file And separately storing the independent verification information.
一种终端设备, 包括: 发送请求消息单元, 用于发送第三请求消息, 所述 第三请求消息用于请求接收的后流媒体文件的分片的第一个数据块的独立验 证信息, 所述分片包括 S个数据块;  A terminal device, comprising: a sending request message unit, configured to send a third request message, where the third request message is used to request independent verification information of a first data block of a slice of the received downstream media file, The segmentation includes S data blocks;
接收验证信息单元, 用于接收第一个数据块的独立验证信息;  Receiving a verification information unit, configured to receive independent verification information of the first data block;
验证完整性单元,用于按照所述第一个数据块的独立验证信息验证第一个 数据块的完整性, 当第一个数据块是完整的时候, 从第一个数据块开始, 从已 经验证为完整的第 s个数据块中提取出所述分片的第 s+1个数据块的验证信息, 按照所述第 s+1个数据块的验证信息验证所述分片的第 s+1个数据块的完整性, 直至验证完所述分片的第 S个数据块的完整性, s从 1至 S-1;  a verification integrity unit, configured to verify the integrity of the first data block according to the independent verification information of the first data block, when the first data block is complete, starting from the first data block, Verifying that the verification information of the s+1th data block of the fragment is extracted from the complete sth data block, and verifying the s+ of the fragment according to the verification information of the s+1th data block. The integrity of 1 data block, until the integrity of the Sth data block of the slice is verified, s from 1 to S-1;
在验证完所述分片的第 S个数据块的完整性之前, 当第 G个数据块的验证 信息缺失时, G为 2至 S中的任一整数, 发送第四请求消息, 所述第四请求消息 用于请求第 G个数据块的独立验证信息, 接收第 G个数据块的独立验证信息, 按照第 G个数据块的独立验证信息验证第 G个数据块的完整性。  Before verifying the integrity of the Sth data block of the fragment, when the verification information of the Gth data block is missing, G is any integer from 2 to S, and sending a fourth request message, where the The four request messages are used to request independent verification information of the Gth data block, receive independent verification information of the Gth data block, and verify the integrity of the Gth data block according to the independent verification information of the Gth data block.
一种验证流媒体内容完整性的系统,包括:上述流媒体服务器和终端设备。 在本发明实施例中,流媒体服务器对源流媒体文件进行处理得到后流媒体 文件, 其中后流媒体文件中的数据块携带下一数据块的验证信息, 流媒体服务 器还构造后流媒体文件中所有数据块各自的独立验证信息,将这些独立验证信 息单独保存,因此本发明实施例能够保证终端设备下载的后流媒体文件中的所 有数据块都能绝对持续得到验证,并且使得终端设备下载后流媒体文件所需的 传输开销较小。 附图说明 A system for verifying the integrity of streaming media content includes: the streaming media server and the terminal device. In the embodiment of the present invention, the streaming media server processes the source streaming media file to obtain a post-streaming media file, where the data block in the post-streaming media file carries the verification information of the next data block, and the streaming media server further constructs the post-streaming media file. Independent verification information for each of the data blocks in each, and these independent verification letters The information is saved separately. Therefore, the embodiment of the present invention can ensure that all data blocks in the downloaded media file downloaded by the terminal device can be continuously verified, and the transmission overhead required for the terminal device to download the streaming media file is small. DRAWINGS
图 1是本发明实施例中验证流媒体内容完整性的方法的实施例一的流程示 意图;  1 is a schematic flow chart of Embodiment 1 of a method for verifying the integrity of streaming media content in an embodiment of the present invention;
图 2是本发明实施例中 Merkle树的示意图;  2 is a schematic diagram of a Merkle tree in an embodiment of the present invention;
图 3是本发明实施例中验证流媒体内容完整性的方法的实施例二的流程示 意图;  3 is a schematic flow chart of Embodiment 2 of a method for verifying the integrity of streaming media content in an embodiment of the present invention;
图 4是本发明实施例中验证流媒体内容完整性的方法的实施例三的流程示 意图;  4 is a schematic flow chart of Embodiment 3 of a method for verifying the integrity of streaming media content in an embodiment of the present invention;
图 5是本发明实施例中一种流媒体服务器的实施例四的逻辑结构示意图; 图 6是本发明实施例中一种终端设备的实施例五的逻辑结构示意图; 图 7是本发明实施例中一种验证流媒体内容完整性的系统的实施例六的逻 辑结构示意图。 具体实施方式  5 is a schematic diagram of a logical structure of a fourth embodiment of a streaming media server according to an embodiment of the present invention; FIG. 6 is a schematic structural diagram of a fifth embodiment of a terminal device according to an embodiment of the present invention; A logical structure diagram of Embodiment 6 of a system for verifying the integrity of streaming media content. detailed description
本发明实施例提供一种验证流媒体内容完整性的方法,本发明实施例还提 供相应的设备以及系统。 以下分别进行详细说明。 实施例一、 请参阅图 1 , 本发明实施例中验证流媒体内容完整性的方法的 一个实施例包括:  The embodiment of the invention provides a method for verifying the integrity of the content of the streaming media. The embodiment of the invention further provides a corresponding device and system. The details are described below separately. Embodiment 1 Referring to FIG. 1 , an embodiment of a method for verifying integrity of streaming media content in an embodiment of the present invention includes:
101、 读取源流媒体文件;  101. Read the source streaming media file.
在流媒体系统中, 流媒体内容以文件的形式存在, 当一个新的源流媒体文 件被加入到业务运营商的流媒体服务器的时候,流媒体服务器将该源流媒体文 件划分为一系列的分片,每个分片包括一定数量的数据块, 其中数据块为网络 传输的最小单元,分片的排序和所有的数据块的排序都是按照流媒体内容的播 放次序从前到后依次排列,流媒体服务器需要以分片为单位处理该源流媒体文 件以生成后流媒体文件, 当流媒体内容发布时, 流媒体服务器是发布后流媒体 文件, 其中后流媒体文件的分片的序号与源流媒体文件的分片的序号——对 应。 In the streaming media system, the streaming media content exists in the form of a file. When a new source streaming media file is added to the service provider's streaming media server, the streaming media server divides the source streaming media file into a series of Fragmentation, each fragment includes a certain number of data blocks, wherein the data block is the smallest unit of network transmission, the ordering of the fragments and the ordering of all the data blocks are arranged in order from the front to the back according to the playing order of the streaming media content. The streaming media server needs to process the source streaming media file in units of fragments to generate a post-streaming media file. When the streaming media content is published, the streaming media server is a post-release streaming media. The file, wherein the serial number of the fragment of the post-streaming media file corresponds to the serial number of the fragment of the source streaming media file.
在本实施例中, 将以读取源流媒体文件的第 N个分片为例对流媒体服务器 处理源流媒体文件的过程进行描述, 其中第 N个分片包括 M个数据块。  In this embodiment, the process of processing the source streaming media file by the streaming media server is described by taking the Nth fragment of the source streaming media file as an example, where the Nth fragment includes M data blocks.
102、 构造后流媒体文件;  102. Constructing a streaming media file;
流媒体服务器读取源流媒体文件的第 N个分片, 其中第 N个分片包括 M个 数据块, 这 M个数据块的标识为 BN, 1 BN, 2, .. . , BN, M , 构造后流媒体文件 的第 N个分片的过程如下所述, 源流媒体文件除第一个分片之外的剩余分片也 是和第 N个分片一样进行处理: The streaming media server reads the Nth fragment of the source streaming media file, where the Nth fragment includes M data blocks, and the identifiers of the M data blocks are B N , 1 B N , 2 , .. . , B N , M, the process of constructing the Nth slice of the stream media file is as follows: The remaining fragments of the source stream file except the first slice are processed in the same way as the Nth slice:
1、将最后一个数据块 BN,M作为后流媒体文件的第 N个分片的最后一个数据 块, 即后流媒体文件的第 N个分片的第 M个数据块; 1. The last data block B N , M is used as the last data block of the Nth slice of the post-stream media file, that is, the Mth data block of the Nth slice of the post-stream media file;
2、 由于哈希摘要算法(例如 MD5 , SHA-1 )具有低计算开销, 高安全性 等特性, 在本实施例中, 为了降低验证开销, 流媒体服务器采用哈希摘要算法 来计算数据块的验证信息。  2. The hash summary algorithm (for example, MD5, SHA-1) has low computational overhead and high security. In this embodiment, in order to reduce the verification overhead, the streaming media server uses a hash digest algorithm to calculate the data block. verify message.
数据块 BN, M调用哈希摘要函数 h ( ) , 得到哈希值 h ( BN, M ) , 然后将哈 希值 h ( BN, Μ )添加到数据块 ΒΝ, Μ4的末尾,构成数据块 B 'N, M_l 将数据块 B'N, 作为后流媒体文件的第 N个分片的第 M-1个数据块, 然后再调用哈希摘要函 数 h ( ) , 生成哈希值 h ( B N, M-i ) , 将哈希值 h ( B N, M-I ) 添加到数据块 BN, 的末尾,构成数据块 B'N, M_2 ,将数据块 B'N, M_2作为后流媒体文件的第 N个分 片的第 M-2个数据块, 继续上述操作, 直至构造完后流媒体文件的第 N个分片 的第一个数据块。将源流媒体文件的所有分片都处理完毕后, 流媒体服务器得 到后流媒体文件,该后流媒体文件的每个分片的数据块之间以哈希链的形式相 互连接。 The data block B N , M calls the hash summary function h ( ), obtains the hash value h ( B N , M ), and then adds the hash value h ( B N , Μ ) to the end of the data block Β Ν , Μ4 , The data block B ' N , M _ l is used as the M-1th data block of the Nth slice of the post-streaming media file, and then the hash digest function h ( ) is generated to generate the data block B' N . after the end of the Xi value h (BN, Mi), the hash value h (BN, MI) added to the data block B N, constituting a data block B 'N, M_ 2, the data block B' N, M_ 2 as The M-2th data block of the Nth slice of the streaming media file continues the above operation until the first data block of the Nth slice of the streaming media file is constructed. After all the fragments of the source streaming media file are processed, the streaming media server obtains a post-streaming media file, and the data blocks of each fragment of the subsequent streaming media file are connected to each other in a hash chain.
由于流媒体内容的发布是采用节点辅助分发方案,流媒体服务器保存后流 媒体文件的所有分片的备份,并将这些分片分散保存在流媒体系统中的各个终 端设备里, 以供请求播放流媒体内容的终端设备下载, 在本实施例中, 流媒体 服务器还将分散保存的分片与保存分片的终端设备之间的对应关系以列表的 形式保存在目录服务器中, 目录服务器可以就是流媒体服务器,也可以是另一 个单独的服务器,请求播放流媒体内容的终端设备可以从目录服务器获得一组 拥有某分片的较佳状态的终端设备的地址列表,按照这个地址列表依次向其他 终端设备请求下载该分片,在下载过程中,若其他终端设备都无法提供该分片, 终端设备则会请求流媒体服务器提供该分片。 Since the distribution of the streaming media content is performed by the node-assisted distribution scheme, the streaming media server saves the backup of all the fragments of the streaming media file, and stores the fragments in each terminal device in the streaming media system for request playback. The terminal device downloads the streaming media content. In this embodiment, the streaming media server also stores the corresponding relationship between the scatter-segmented shards and the terminal device that holds the shards in a directory server, and the directory server may be Streaming media server, can also be another a separate server, the terminal device requesting to play the streaming media content may obtain a list of addresses of the terminal devices having a better state of a certain fragment from the directory server, and sequentially request the other terminal device to download the fragment according to the address list. During the download process, if the other terminal device cannot provide the fragment, the terminal device requests the streaming server to provide the fragment.
进一步的, 为了提高终端设备下载流媒体内容的速度, 终端设备可以在自 身的内存中划出一定容量的緩沖区, 并行下载后流媒体文件的多个分片, 因此 考虑到终端设备分片下载的并行性,终端设备同样可以对这些并行下载的分片 并行进行验证。 仍然以流媒体服务器构造后流媒体文件的第 N个分片的过程为 例, 该过程还包括:  Further, in order to improve the speed at which the terminal device downloads the streaming media content, the terminal device may draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, so that the terminal device is downloaded in succession. Parallelism, the terminal device can also verify these parallel downloaded fragments in parallel. For example, the process of constructing the Nth fragment of the post-streaming media file by the streaming server is as an example, and the process further includes:
3、 当构造完后流媒体文件的第 N个分片的第一个数据块, 流媒体服务器 调用哈希摘要函数, 生成后流媒体文件的第 N个分片的第一个数据块的哈希 值, 将这个哈希值添加到后流媒体文件中若干个连续位于第 N个分片前面的分 片的第一个数据块中 , 即将这个哈希值添加到后流媒体文件的第 N-1个分片的 第一个数据块中, 第 N-2个分片的第一个数据块中, ..., 以及第 N-X个分片的第 一个数据块中, 其中 X值按照终端设备在自身的内存中划出的緩沖区的大小而 定。  3. When the first data block of the Nth fragment of the streaming media file is constructed, the streaming server calls the hash digest function to generate the first data block of the Nth fragment of the streaming media file. The hash value is added to the first data block of the shard that is consecutively located before the Nth shard in the post-streaming file, and the hash value is added to the Nth of the post-streaming file. - in the first data block of the 1 slice, in the first data block of the N-2th slice, ..., and in the first data block of the NX slice, wherein the X value is in accordance with The size of the buffer that the terminal device draws in its own memory.
103、 构造后流媒体文件的独立验证信息。  103. Construct independent verification information of the streaming media file.
由于哈希链不适用于后流媒体文件的数据块随机丢失的场景,为了使得业 务运营商能够提供快速流畅的视频播放业务,终端设备要能够绝对保证持续验 证流媒体内容完整性,因此终端设备必须要能够获得后流媒体文件的所有数据 块的独立验证信息。 在本实施例中, 流媒体服务器采用基于 Merkle树的树链来 构造后流媒体文件中每个数据块的独立验证信息, 具体的过程如下:  Because the hash chain is not applicable to the scenario where the data block of the post-streaming media file is randomly lost, in order to enable the service provider to provide fast and smooth video playing services, the terminal device must be able to absolutely verify the integrity of the streaming media content, so the terminal device It is necessary to be able to obtain independent verification information for all data blocks of the post-streaming media file. In this embodiment, the streaming media server uses a Merkle tree-based tree chain to construct independent verification information for each data block in the post-streaming media file. The specific process is as follows:
后流媒体文件的所有分片构造一棵 Merkle树,假设后流媒体文件有两个分 片, 每个分片各有四个数据块, 构造 Merkle树的过程具体为: Merkle树的每一 个叶子节点 Ds, t是由一个数据块 Bs,t的哈希值构成, 即, Ds, t=h ( Bs, t ), 其中, s是分片的序号, t是数据块在第 s个分片中的序号, Ds,t在 Merkle树里是按照从 右至左的顺序从后流媒体文件的最后一个分片的最后一个数据块的哈希值开 始开始排列在 Merkle树的最低层里,也就是说 Merkle树的构造是从第二个分片 的最后一个数据块开始的, Merkle树的每个父节点下面所有子节点的哈希值串 联到一起再进行哈希计算就得到它们的父节点, 即由下面的公式决定, All the shards of the post-streaming media file construct a Merkle tree. Assuming that the post-streaming media file has two shards, each shard has four data blocks. The process of constructing the Merkle tree is as follows: Each leaf of the Merkle tree The node D s , t is composed of a hash value of a data block B s , t , that is, D s , t =h ( B s , t ), where s is the sequence number of the slice, and t is the data block at the The sequence numbers in the s slices, D s , t are arranged in the Merkle tree in the right-to-left order from the hash value of the last data block of the last slice of the post-streaming file. In the lowest layer, that is to say the structure of the Merkle tree is from the second slice At the beginning of the last data block, the hash values of all the child nodes under each parent node of the Merkle tree are concatenated together and then hashed to obtain their parent nodes, which is determined by the following formula.
Ds, b~s. c-h ( Ds, b~s. ( b+c-l ) /2, Ds, ( b+c+1 ) /2~s, c ) D s , b~s. ch ( D s , b~s. ( b+cl ) /2, D s , ( b+c+1 ) /2~s, c )
其中, Ds, b表示第 s个分片的第 b个数据块对应的叶子节点; Ds, c表示第 s 个分片的第 c个数据块对应的叶子节点; Ds,b~s,c表示第 s个分片的第 b个数据块到 第 c个数据块间的数据块对应的叶子节点的父节点。 Where D s , b represents the leaf node corresponding to the bth data block of the sth slice; D s , c represents the leaf node corresponding to the cth data block of the sth slice; D s , b ~ s , c represents the parent node of the leaf node corresponding to the data block between the bth data block and the cth data block of the sth slice.
例如, DL 4=h ( DL !^, 2 , DL 3-1 , 4 ), 这个过程一直进行下去直至得到For example, D L 4 =h ( D L !^, 2 , D L 3-1 , 4 ), this process continues until it is obtained
Merkle树的根节点 hrat, 然后对该根节点 hrat进行数字签名, 获得根节点的数字 签名信息 sign ( hrot ), Merkle树应该是二叉平衡树, 如果 Merkle树不平衡, 则 调用平衡二叉树的平衡算法, 使 Merkle树重新平衡。 按照后媒体文件所有分片 构造的 Merkle树如图 2所示。 The root node of the Merkle tree is h ra . t , then h ra to the root node. t digitally sign and obtain the digital signature information sign ( h ro . t ) of the root node. The Merkle tree should be a binary balanced tree. If the Merkle tree is unbalanced, the balanced binary tree balancing algorithm is called to rebalance the Merkle tree. The Merkle tree constructed according to all the shards of the post media file is shown in Figure 2.
构造完 Merkle树后, 流媒体服务器将数据块在 Merkle树的验证路径上的完 整信息作为该数据块的验证信息添加到该数据块上,验证路径是由树的每一层 上的一个节点组成,这些节点是由该叶子路径上的兄弟节点直到根节点的下一 层节点为止, 如对数据块 3而言, 它的验证信息为: sign ( hr。。t )、 D2, ^2A, Di, w, 2, 4、 以及数据块的序号 3和包含该数据块的分片的序号 1。 某个数 据块的独立验证信息包括: 根节点的数字签名信息 sign ( hrat ), 和所述数据块 对应的叶子节点到根节点所在路径上每一层节点 (根节点除外) 的兄弟节点, 和数据块的序号, 和包含该数据块的分片的序号。 After constructing the Merkle tree, the streaming server adds the complete information of the data block on the verification path of the Merkle tree to the data block as the verification information of the data block, and the verification path is composed of one node on each layer of the tree. These nodes are from the sibling node on the leaf path to the next layer node of the root node. For data block 3 , its verification information is: sign ( h r .. t ), D 2 , ^ 2A , Di, w , 2 , 4 , and the sequence number 3 of the data block and the sequence number 1 of the fragment containing the data block. The independent verification information of a data block includes: a digital signature information sign (h ra . t ) of the root node, and a brother of each layer node (except the root node) corresponding to the leaf node to the root node corresponding to the data block The node, and the sequence number of the data block, and the sequence number of the fragment containing the data block.
如果使用单棵 Merkle树,后流媒体文件中一个数据块的验证路径的完整信 息的大小 4艮有可能超过网络能传输的最大数据结构的容量大小。为防止这种情 况的出现, 可以把后流媒体文件的数据块的独立验证信息构成多棵 Merkle树, 将每棵 Merkle树的验证路径的完整信息的长度限制在最大数据块的长度之内。  If a single Merkle tree is used, the size of the complete information of the verification path of a block in the post-streaming file may exceed the capacity of the largest data structure that the network can transmit. To prevent this from happening, the independent verification information of the data block of the post-stream media file can be constructed into multiple Merkle trees, and the length of the complete information of the verification path of each Merkle tree is limited to the length of the largest data block.
仍然假设后流媒体文件有两个分片,每个分片各有四个数据块, 当前处理 到数据块 B2, 1 遍历当前 Merkle树, 找到由哈希值 h ( B2, )构成的叶子节点 D2, 1在^^^6树中的位置, 即当前 Merkle树的最左端。 如果插入叶子节点 D2,! 后,该叶子节点 D2, 到根节点的验证路径的完整信息的大小已超过网络能传输 的最大数据结构的容量大小, 则保存未插入叶子节点 D2, Merkle树, 将叶子 节点 D2, 作为新建的 Merkle树的第一个叶子节点, 新建一棵 Merkle树。 Still suppose that the post-streaming media file has two shards, each shard has four data blocks, and the current processing to the data block B 2 , 1 traverses the current Merkle tree, and finds a hash value h ( B 2 , ) The position of the leaf node D 2 , 1 in the ^^^6 tree, that is, the leftmost end of the current Merkle tree. If you insert the leaf node D 2 ,! After the leaf node D 2 , the size of the complete information of the verification path to the root node has exceeded the capacity of the largest data structure that the network can transmit, then the leaf node D 2 , the Merkle tree, and the leaf are saved. Node D 2 , as the first leaf node of the newly created Merkle tree, creates a new Merkle tree.
后流媒体文件中所有数据块的独立验证信息都要单独保存, 在本实施例 中, 可以将后流媒体文件中所有数据块的独立验证信息保存在验证服务器中, 验证服务器可以就是流媒体服务器, 也可以是另一个单独的服务器。  The independent verification information of all the data blocks in the post-streaming media file is separately saved. In this embodiment, the independent verification information of all the data blocks in the post-streaming media file may be saved in the verification server, and the verification server may be the streaming media server. , or it can be another separate server.
在本实施例中, 流媒体服务器对源流媒体文件进行处理得到后流媒体文 件, 其中后流媒体文件中的数据块携带下一数据块的验证信息, 流媒体服务器 还构造后流媒体文件中所有数据块各自的独立验证信息,将这些独立验证信息 单独保存中,因此本实施例能够保证终端设备下载的后流媒体文件中的所有数 据块都能绝对持续得到验证,并且使得终端设备下载后流媒体文件所需的传输 开销较小, 而且分片的第一个数据块的验证信息用数字签名签署,有效的杜绝 了第一个数据块的验证信息被伪造的可能性,并且保证了采用哈希链构造的分 片的后继数据块的验证信息的可靠性。 实施例一是从流媒体服务器的角度来描述验证流媒体内容完整性的方法, 下面将从终端设备的角度来描述验证流媒体内容完整性的方法。  In this embodiment, the streaming media server processes the source streaming media file to obtain a post-streaming media file, where the data block in the post-streaming media file carries the verification information of the next data block, and the streaming media server also constructs the post-streaming media file. The independent verification information of each of the data blocks is saved separately. Therefore, this embodiment can ensure that all the data blocks in the post-streaming media file downloaded by the terminal device can be continuously verified and the terminal device is downloaded. The transmission overhead required for streaming media files is small, and the verification information of the first data block of the fragment is signed with a digital signature, effectively eliminating the possibility that the verification information of the first data block is forged, and ensuring adoption. The reliability of the verification information of the subsequent data blocks of the fragment constructed by the hash chain. The first embodiment describes a method for verifying the integrity of the streaming media content from the perspective of the streaming media server. The method for verifying the integrity of the streaming media content will be described from the perspective of the terminal device.
实施例二、 请参阅图 3 , 本发明实施例还提供验证流媒体内容完整性的方 法的另一实施例, 包括:  Embodiment 2 Referring to FIG. 3, an embodiment of the present invention further provides another embodiment of a method for verifying integrity of a streaming media content, including:
301、 发送第一请求消息;  301. Send a first request message.
当终端设备需要播放某一流媒体内容时,终端设备开始请求包含该流媒体 内容的后流媒体文件的下载, 实质上, 终端设备是下载后流媒体文件的分片。 在本实施例中, 终端设备是从后流媒体文件的第一个分片开始依次请求下载, 但是由于每个分片从发送方发送到终端设备接收整个过程所需的时间会因为 网络等原因而有所不同,因此终端设备对每个分片的验证并不是一定从第一个 分片开始。  When the terminal device needs to play a certain streaming media content, the terminal device starts to request the download of the downstream media file including the streaming media content. In essence, the terminal device is a fragment of the downloaded streaming media file. In this embodiment, the terminal device sequentially requests downloading from the first fragment of the post-streaming media file, but the time required for each fragment to be sent from the sender to the terminal device to receive the entire process may be due to network or the like. The difference is that the verification of the shard by the terminal device does not necessarily start with the first shard.
当终端设备下载到某一分片时,终端设备可以先向目录服务器请求能提供 该分片的终端设备的集合, 目录服务器根据拥有该分片的终端设备的状态,返 回具有较佳状态的一组终端设备的地址列表,终端设备根据目录服务器返回的 地址列表, 依次从地址列表中选择一个终端设备, 发送该分片下载请求, 直到 有终端设备响应为止, 若没有终端设备能够提供该分片, 终端设备则会请求流 媒体服务器提供该分片。 下载开始后, 终端设备要对接收的分片从分片的第一 数据块开始进行流媒体内容完整性验证,由于接收的分片中没有携带分片的第 个数据块的验证信息, 因此在本实施例中, 终端设备向验证服务器发送第一 请求消息, 该第一请求消息用于请求终端设备接收的第一个数据块的验证信 When the terminal device downloads a certain fragment, the terminal device may first request, from the directory server, a set of terminal devices that can provide the fragment, and the directory server returns a state with a better state according to the state of the terminal device that owns the fragment. The address list of the group terminal device, the terminal device sequentially selects a terminal device from the address list according to the address list returned by the directory server, and sends the fragment download request until the terminal device responds, if no terminal device can provide the fragment , the terminal device will request the flow The media server provides the shard. After the downloading starts, the terminal device performs streaming content integrity verification on the received fragment from the first data block of the fragment, and since the received fragment does not carry the verification information of the first data block of the fragment, In this embodiment, the terminal device sends a first request message to the verification server, where the first request message is used to request the verification information of the first data block received by the terminal device.
302、 接收第一个数据块的独立验证信息; 302. Receive independent verification information of the first data block.
终端设备从验证服务器接收第一个数据块的独立验证信息, 在本实施例 中 在验证服务器保存的后流媒体文件的所有数据块的独立验证信息是采用与 如图 1所示的实施例一相同的基于 Merkle树的树链构造的。  The terminal device receives the independent verification information of the first data block from the verification server. In this embodiment, the independent verification information of all the data blocks of the post-stream media file saved by the verification server is adopted in the embodiment 1 shown in FIG. The same Merkle tree-based tree chain construction.
303、 对第一个数据块进行验证;  303. Verify the first data block.
在本实施例中,仍然假设后流媒体文件有两个分片,每个分片各有四个数 据块, 按照后媒体文件所有分片构造的 Merkle树如图 2所示, 第一个分片的第 一个数据块的独立验证信息为: sign ( hr t, D2, ι.2,4 , 3~i, 4, DL 2, 终端设 备对第一个数据块的验证过程如下: In this embodiment, it is still assumed that the post-streaming media file has two shards, each of which has four data blocks, and the Merkle tree constructed according to all the shards of the post-media file is as shown in FIG. 2, and the first sub-segment The independent verification information of the first data block of the slice is: sign ( h rt , D 2 , ι.2, 4 , 3 ~i, 4 , D L 2 ) . The verification process of the first data block by the terminal device is as follows:
1、 用对 Merkle树的根节点进行数字签名的同样方法验证第一个数据块所 携带的 sign ( hroot ) 的完整性, 若验证结果是 sign ( hroot )是完整的, 则执行以 下验证第一个数据块的流媒体内容完整性的步骤; 1. Verify the integrity of the sign ( h root ) carried by the first data block by the same method of digitally signing the root node of the Merkle tree. If the verification result is that sign ( h root ) is complete, perform the following verification. The step of streaming media content integrity of the first data block;
2、 采用哈希算法生成第一个数据块的哈希值 ;  2. Using a hash algorithm to generate a hash value of the first data block;
3、采用哈希算法计算 在 Merkle树上的父节点, 即 w, 2=h ( D 1 Di, 2 ), D'i, ι~ι, 4— h ( D'i, 2, Di, 3~i, 4 ), h'root=h ( D 4 , D2, i~2, 4 ); 3. Use the hash algorithm to calculate the parent node on the Merkle tree, ie w , 2 =h ( D 1 Di, 2 ), D'i, ι~ι, 4— h ( D'i, 2 , Di, 3 ~i, 4 ), h' root =h ( D 4 , D 2 , i~ 2 , 4 );
4、将 h'r t与第一个数据块所携带的数字签名 sign ( hroot )中的 hr。。t进行比较。 如果相同, 则第一个数据块是完整的。 4, the h r h 'r t with a data block carried by the first digital signature sign (h root) of. . t for comparison. If they are the same, the first data block is complete.
304、 对其他数据块进行验证。  304. Verify other data blocks.
当第一个数据块经过验证是完整的时候,则从第一个数据块中提取同分片 的第二个数据块的验证信息,也就是第二个数据块的真实哈希值, 终端设备采 用哈希摘要算法对接收的第二个数据块进行计算,将计算所得的哈希值与真实 的哈希值进行比较, 如果相同, 则第二个数据块是完整的。 当第二个数据块经 过验证是完整的时候,则从第二个数据块中提取同分片的第三个数据块的验证 信息,也就是第三个数据块的真实哈希值, 终端设备采用哈希摘要算法对接收 的第三个数据块进行计算,将计算所得的哈希值与真实的哈希值进行比较,如 果相同, 则第三个数据块是完整的。 继续验证同分片的后继数据块, 直至验证 完同分片的最后一个数据块。 When the first data block is verified to be complete, the verification information of the second data block of the same slice is extracted from the first data block, that is, the true hash value of the second data block, the terminal device The received second data block is calculated by using a hash digest algorithm, and the calculated hash value is compared with the real hash value. If they are the same, the second data block is complete. When the second data block is verified to be complete, the verification of the third data block of the same slice is extracted from the second data block. The information, that is, the true hash value of the third data block, the terminal device uses the hash digest algorithm to calculate the received third data block, and compares the calculated hash value with the actual hash value, if The same, the third data block is complete. Continue to verify subsequent blocks of the same slice until the last block of the same slice is verified.
由于例如网络丢包, 乱序等种种原因,在险证完同分片的最后一个数据块 之前,终端设备会在验证某一数据块的完整性时发生该数据块的验证信息缺失 的情况, 因此终端设备会向验证服务器请求该数据块的独立验证信息, 采用验 证服务器发送的该数据块的独立验证信息验证该数据块的完整性,这个过程与 步骤 203验证第一个数据块的过程可以是一样的, 也可以是有所不同的, 不同 之处在于, 当终端设备从验证服务器接收到该数据块的独立验证信息,按照该 数据块的独立验证信息提取出该数据块在 Merkle树上的验证路径,沿着验证路 径逐步构造验证路径上的节点, 当构造到某一节点时,若与在验证其他数据块 的完整性时已保存的相同序号的节点的内容相同,则停止构造验证路径上的剩 余节点, 保存已构造的节点, 验证结果是该数据块是完整的。 举例如下:  Due to various reasons such as network packet loss and out-of-order, before the last data block of the fragment is completed, the terminal device will verify that the verification information of the data block is missing when verifying the integrity of a data block. Therefore, the terminal device requests independent verification information of the data block from the verification server, and uses the independent verification information of the data block sent by the verification server to verify the integrity of the data block. This process and the process of verifying the first data block in step 203 can be performed. The same is true, and the difference is that when the terminal device receives the independent verification information of the data block from the verification server, the data block is extracted on the Merkle tree according to the independent verification information of the data block. The verification path, stepwise constructing the nodes on the verification path along the verification path, and when constructing to a node, if the content of the node with the same sequence number that was saved when verifying the integrity of other data blocks is the same, the configuration verification is stopped. The remaining nodes on the path, save the constructed node, the verification result is that the data block is finished of. Examples are as follows:
仍然假设后流媒体文件共两个分片,每个分片有四个数据块,按照后媒体 文件所有分片构造的 Merkle树如图 2所示。若第一个分片的第二个数据块丢失, 需要验证第一个分片的第三个数据块的完整性时,终端设备会向验证服务器请 求第一个分片的第三个数据块的独立验证信息,按照该数据块的独立验证信息 提取出该数据块在 Merkle树上的验证路径,沿着验证路径逐步构造验证路径上 的节点, 因为在验证第一个分片的第一个数据块时, 当第一个分片的第一个数 据块是完整的时候, 已构造的节点 D'L w即(D , 4 )就是如图 2所示的 Merkle 树的节点 W即(DL w, 4 )的真实值, 所以只要在验证第一个分片的第三个 数据块的过程中生成的同样序号的节点的哈希值与已构造的节点 W相同, 则可判断第一个分片的第三个数据块是完整的,当第一个分片的第三个数据块 的完整的时候,终端设备从第一个分片的第三个数据块中提取出第一个分片的 第四个数据块, 继续验证第一个分片的第四个数据块, 直至验证完第一个分片 的最后一个数据块的完整性。 It is still assumed that the post-streaming media file has two shards, each shard has four data blocks, and the Merkle tree constructed according to all the shards of the post media file is as shown in FIG. 2. If the second data block of the first fragment is lost, and the integrity of the third data block of the first fragment needs to be verified, the terminal device requests the third data block of the first fragment from the verification server. The independent verification information, according to the independent verification information of the data block, extracts the verification path of the data block on the Merkle tree, and gradually constructs the node on the verification path along the verification path, because the first one of the first fragment is verified. In the case of a data block, when the first data block of the first fragment is complete, the constructed node D'L w (D , 4 ) is the node W of the Merkle tree as shown in FIG. 2 (DL). The true value of w , 4 ), so as long as the hash value of the node of the same sequence number generated during the process of verifying the third data block of the first slice is the same as the constructed node W, the first one can be judged The third data block of the slice is complete. When the third data block of the first slice is complete, the terminal device extracts the first branch from the third data block of the first slice. The fourth block of the slice, continue to verify the fourth of the first slice Data block, until the complete integrity of the last data block of the first slice of the verification.
对于每个分片,终端设备都会设置一个预设值为 0的破损数据块的计数器, 当验证某个数据块为破损时, 其处理流程如下: For each shard, the terminal device sets a counter for the corrupted data block with a preset value of 0. When verifying that a data block is broken, its processing flow is as follows:
1、 终端设备将破损数据块的计数器加 1 , 并丢弃该数据块;  1. The terminal device adds 1 to the counter of the damaged data block and discards the data block;
2、 若该数据块是不可缺失的, 终端设备重新向提供该分片的终端设备或 者流媒体服务器请求下载该数据块;  2. If the data block is indispensable, the terminal device requests the terminal device or the streaming server that provides the fragment to download the data block.
3、 若破损数据块的计数器超过一个预先设定的阙值, 则该分片被判断为 破损的。终端设备将向其他能提供该分片的终端设备或者流媒体服务器请求下 载该分片。  3. If the counter of the damaged data block exceeds a preset threshold, the fragment is judged to be broken. The terminal device will request to download the fragment to other terminal devices or streaming servers that can provide the fragment.
进一步的, 为了提高终端设备下载后流媒体文件的速度, 终端设备可以在 自身的内存中划出一定容量的緩沖区, 并行下载后流媒体文件的多个分片, 因 此考虑到终端设备分片下载的并行性,终端设备同样也可以对这些并行下载的 分片并行进行险证, 具体为:  Further, in order to improve the speed of the streaming media file after the terminal device downloads, the terminal device may allocate a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, so that the terminal device fragment is considered. The parallelism of the download, the terminal device can also carry out the risk identification of these parallel downloaded segments in parallel, specifically:
假设后流媒体文件有 4个分片,当第一个分片的第一个数据块采用步骤 203 经过验证后证实是完整的之后,终端设备除了从第一个分片的第一个数据块提 取出第一个分片的第二个数据块的验证信息,还从第一分片的第一个数据块提 取出后继 3个分片的第一个数据块的验证信息, 如果终端设备已经开始并行下 载所有的分片,因此终端设备可以并行验证第一个分片的第二个数据块和后继 3个分片的第一数据块的完整性, 直至并行险证完所有的分片的完整性。  Assuming that the backstream media file has 4 shards, after the first data block of the first shard is verified to be complete after being verified in step 203, the terminal device except the first data block from the first shard Extracting the verification information of the second data block of the first fragment, and extracting the verification information of the first data block of the subsequent three fragments from the first data block of the first fragment, if the terminal device has already Start to download all the fragments in parallel, so the terminal device can verify the integrity of the second data block of the first fragment and the first data block of the subsequent three fragments in parallel until the parallel insurance completes all the fragments. Integrity.
在本实施例中,终端设备通过在验证服务器中保存的所有数据块的独立验 证信息,在所有数据块的验证信息不缺失的情况下,从验证服务器中提取分片 的第一个数据块的验证信息,再持续的对后继数据块进行完整性验证,在某个 数据块的验证信息缺失的情况下,从验证服务器中提取该数据块的独立验证信 息, 同样能够持续的对后继数据块进行完整性验证, 因此在本实施例中, 终端 设备能够对所有收到的数据块持续进行完整性验证,有效的杜绝了检漏损坏的 数据块的可能性。 业务运营商提供的视频播放业务可以让用户通过盒式磁带录像机 (Video In this embodiment, the terminal device extracts the first data block of the fragment from the verification server by using the independent verification information of all the data blocks stored in the verification server, without the verification information of all the data blocks being missing. Verification information, and then continuous integrity verification of subsequent data blocks. If the verification information of a certain data block is missing, the independent verification information of the data block is extracted from the verification server, and the subsequent data blocks can be continuously performed. Integrity verification, so in this embodiment, the terminal device can continuously perform integrity verification on all received data blocks, effectively eliminating the possibility of leaking damaged data blocks. The video player service provided by the service operator allows the user to pass the video cassette recorder (Video
Cassette Recorder, VCR)操作对观看的视频向前跳进或者向后跳进,这会导致下 一播放的数据块不一定是已被緩沖且通过验证的数据块,下面将对终端设备在 VCR操作场景下进行数据块的完整性验证的过程进行详细描述, 实施例三、 请参阅图 4, 本发明实施例还提供验证流媒体内容完整性的方 法的另一实施例, 包括: The Cassette Recorder (VCR) operation jumps forward or backwards into the watched video, which causes the next played data block not necessarily to be buffered and verified by the data block. The following will operate the VCR on the terminal device. The process of verifying the integrity of the data block in the scenario is described in detail. Embodiment 3 Referring to FIG. 4, an embodiment of the present invention further provides another embodiment of a method for verifying integrity of a streaming media content, including:
401、 接收用户的指示消息;  401. Receive an indication message of the user.
当用户想对业务运营商提供的视频向前跳进或者向后跳进时,用户可以通 过遥控器上的 VCR操作按鈕执行这些操作。终端设备接收用户的指示消息,终 端设备可以从该指示消息中获知用户通过 VCR操作指定的将被播放的数据块。  When the user wants to jump forward or backward in the video provided by the service provider, the user can perform these operations through the VCR operation button on the remote controller. The terminal device receives the indication message of the user, and the terminal device can learn from the indication message that the data block to be played by the user specified by the VCR operation is known.
402、 确定将被播放的数据块的位置;  402. Determine a location of a data block to be played;
终端设备按照接收的指示消息确定将被播放的数据块在后流媒体文件中 所有数据块里的位置, 在本实施例中, 后流媒体文件有两个分片, 第一个分片 有八个数据块。终端设备按照接收的指示消息确定将被播放的数据块在后流媒 体文件中所有数据块里的位置为第一个分片的第三个数据块。  The terminal device determines, according to the received indication message, the location of the data block to be played in all the data blocks in the post-streaming media file. In this embodiment, the post-streaming media file has two fragments, and the first fragment has eight fragments. Data blocks. The terminal device determines, according to the received indication message, the location of the data block to be played in all the data blocks in the backstream media file as the third data block of the first fragment.
403、 判断将被播放的数据块是否已被緩沖, 若否, 则执行步骤 404和步骤 405 , 若是, 则执行步骤 406;  403, determine whether the data block to be played has been buffered, if not, then perform step 404 and step 405, and if so, proceed to step 406;
终端设备确定将被播放的数据块是第一个分片的第三个数据块后,判断第 一个分片的第三个数据块是否已被緩沖。  After determining that the data block to be played is the third data block of the first slice, the terminal device determines whether the third data block of the first slice has been buffered.
404、 下载包含将被播放的数据块的分片;  404. Download a slice that includes a data block to be played;
若将被播放的数据块没有被緩沖, 终端设备下载包含这个的数据块的分 片, 也就是说, 终端设备下载一个分片, 在本实施例中, 终端设备在将被播放 的数据块没有被緩沖的情况下,下载包含将被播放的数据块的分片而不是下载 将被播放的数据块和这个数据块的后继数据块,是因为在流媒体系统中,后流 媒体文件的发布采用的是节点辅助分发方案, 因此,请求下载一个分片要比请 求下载将被播放的数据块和这个数据块的后继数据块在操作上更方便。  If the data block to be played is not buffered, the terminal device downloads the fragment containing the data block, that is, the terminal device downloads a slice. In this embodiment, the terminal device does not have the data block to be played. In the case of buffering, downloading the fragment containing the data block to be played instead of downloading the data block to be played and the subsequent data block of this data block is because in the streaming media system, the post-streaming media file is released. The node-assisted distribution scheme, therefore, it is more convenient to request to download a slice than to request the download of the data block to be played and the subsequent data block of this data block.
405、 验证将被播放的数据块和后继数据块的完整性;  405. Verify the integrity of the data block and subsequent data blocks to be played;
虽然将被播放的数据块没有被緩沖,为了提高业务运营商的视频播放业务 的流畅性,终端设备不从包含将被播放的数据块的分片的第一个数据块开始进 行流媒体内容完整性验证, 而是向验证服务器请求将被播放的数据块(第一个 分片的第三个数据块)的独立验证信息,从验证服务器接收将被播放的数据块 的独立验证信息,按照将被播放的数据块的独立验证信息验证将被播放的数据 块的完整性, 当将被播放的数据块是完整的时候, 即第一个分片的第三个数据 块是完整的时候, 终端设备从中提取出第一个分片的第四个数据块的验证信 息, 当第一个分片的第四个数据块是完整的时候,再从中提取出第一个分片的 第五个数据块的验证信息, 终端设备持续操作下去, 直至验证完第一个分片的 第八个数据块的验证信息, 更详细的验证过程请参照如图 3所示的实施例二。 Although the data block to be played is not buffered, in order to improve the smoothness of the video broadcast service of the service provider, the terminal device does not start streaming the content from the first data block containing the slice of the data block to be played. Sexual verification, but request independent verification information of the data block to be played (the third data block of the first fragment) from the verification server, and receive independent verification information of the data block to be played from the verification server, according to Independent verification information of the played data block verifies the data to be played Block integrity, when the data block to be played is complete, that is, the third data block of the first fragment is complete, the terminal device extracts the fourth data block of the first fragment The verification information, when the fourth data block of the first fragment is complete, extracts the verification information of the fifth data block of the first fragment, and the terminal device continues to operate until the verification is completed. For the verification information of the eighth data block of a slice, refer to the second embodiment shown in FIG. 3 for a more detailed verification process.
406、 判断将被播放的数据块是否已通过完整性验证, 若是, 则执行步骤 407 , 若否, 则执行步骤 408;  406, determining whether the data block to be played has passed the integrity verification, and if so, executing step 407, if not, executing step 408;
若将被播放的数据块已被緩沖,终端设备判断将被播放的数据块是否已通 过完整性验证, 若是, 则播放将被播放的数据块, 若否, 终端设备则重新下载 将被播放的数据块,终端设备按照从将被播放的数据块的前一数据块中提取出 的将被播放的数据块的验证信息对将被播放的数据块进行完整性验证,更详细 的验证过程请参照如图 3所示的实施例二。  If the data block to be played has been buffered, the terminal device determines whether the data block to be played has passed the integrity verification, and if so, plays the data block to be played, and if not, the terminal device re-downloads to be played. The data block, the terminal device performs integrity verification on the data block to be played according to the verification information of the data block to be played extracted from the previous data block of the data block to be played, and the verification process is more detailed. Embodiment 2 shown in FIG.
需要说明的是,用户也可以通过 VCR操作将视频连续的向前跳进或者连续 向后跳进, 又或者向前跳进后再向后跳进等等, 终端设备的操作同上述过程类 似, 就不再赘述。  It should be noted that the user can also jump forward or backward continuously through the VCR operation, or jump forward and then jump backwards, etc. The operation of the terminal device is similar to the above process. I won't go into details.
407、 播放将被播放的数据块;  407. Play a data block to be played;
终端设备根据 VCR操作开始播放视频。  The terminal device starts playing the video according to the VCR operation.
408、 重新下载并验证将被播放的数据块的完整性。  408. Re-download and verify the integrity of the data block to be played.
本实施例中, 当用户通过 VCR操作来观看视频时,终端设备在将被播放的 数据块没有被緩沖的情况下,采用验证服务器提供的独立验证信息来验证将被 播放的数据块,在将被播放的数据块已緩沖的情况下,从将被播放的数据块的 前一数据块中提取出的将被播放的数据块的验证信息对将被播放的数据块进 行完整性验证, 因此, 在本实施例中, 终端设备能够在 VCR操作场景下进行数 据块的完整性验证。 下面对本发明实施例中流媒体服务器进行描述, 请参阅图 5 , 本发明实施 例中流媒体服务器的一个实施例四包括:  In this embodiment, when the user views the video through the VCR operation, the terminal device uses the independent verification information provided by the verification server to verify the data block to be played, in the case that the data block to be played is not buffered, In the case where the played data block is buffered, the verification information of the data block to be played extracted from the previous data block of the data block to be played is subjected to integrity verification on the data block to be played, and therefore, In this embodiment, the terminal device can perform integrity verification of the data block in the VCR operation scenario. The following describes the streaming media server in the embodiment of the present invention. Referring to FIG. 5, an embodiment 4 of the streaming media server in the embodiment of the present invention includes:
读取分片单元 501 , 用于读取源流媒体文件的第 R个分片, 第 R个分片包括 Z个数据块; 构造后流媒体文件单元 502, 用于将第 R个分片的第 Z个数据块作为后流媒 体文件的第 R个分片的第 Z个数据块, 计算第 Z个数据块的验证信息, 将第 Z个 数据块的验证信息添加到第 Z-1个数据块中生成第 Ζ-Γ个数据块,将第 Ζ-Γ个数 据块作为后流媒体文件的第 R个分片的第 Z-1个数据块,再计算第 Ζ-Γ个数据块 的验证信息,将第 Ζ-Γ个数据块的验证信息添加到第 Z-2个数据块中生成第 Z-2' 个数据块, 将第 Z-2'个数据块作为后流媒体文件的第 R个分片的第 Z-2个数据 块, 继续上述操作, 直至构造完后流媒体文件的第 R个分片的第一个数据块; 构造独立验证信息单元 503, 用于构造后流媒体文件中每个数据块的独立 验证信息, 并单独存储后流媒体文件中每个数据块的独立验证信息。 具体的, 构造独立验证信息单元 503可以采用基于 Merkle树的树链构造后流媒体文件中 第 R个分片的每个数据块的独立验证信息。 The read fragment unit 501 is configured to read the Rth slice of the source streaming media file, where the Rth slice includes Z data blocks; The post-construction media file unit 502 is configured to calculate the Z-th data block of the Rth slice as the Z-th data block of the Rth slice of the R-stream file, and calculate the verification information of the Z-th data block. Adding the verification information of the Zth data block to the Z-1th data block to generate the Ζ-Γ data block, and using the Ζ-Γ data block as the Zth of the Rth slice of the post-streaming media file - 1 data block, then calculate the verification information of the Ζ-Γ data block, add the verification information of the Ζ-Γ data block to the Z-2 data block to generate the Z-2'th data block, The Z-2th data block is used as the Z-2th data block of the Rth slice of the post-streaming media file, and the above operation is continued until the first R of the R-slice of the streaming media file is constructed. The data block is configured to construct an independent verification information unit 503 for constructing independent verification information of each data block in the post-streaming media file, and separately storing the independent verification information of each data block in the post-streaming media file. Specifically, the configuration independent verification information unit 503 may use the Merkle tree-based tree chain to construct independent verification information of each data block of the Rth slice in the stream media file.
为了提高终端设备下载流媒体内容的速度,终端设备可以在自身的内存中 划出一定容量的緩沖区, 并行下载后流媒体文件的多个分片, 因此考虑到终端 设备分片下载的并行性, 进一步的, 构造后流媒体文件单元 502还用于, 当构 造完后流媒体文件的第 R个分片的第一个数据块, 计算后流媒体文件的第 R个 分片的第一个数据块的验证信息, 将后流媒体文件的第 R个分片的第一个数据 块的验证信息添加到后流媒体文件中若干个连续位于第 R个分片前面的分片 的第一个数据块中, 具体的, 构造后流媒体文件单元 502可以按照终端设备的 緩沖区的大小确定若干个连续位于第 R个分片前面的分片的数量。  In order to improve the speed at which the terminal device downloads the streaming media content, the terminal device can draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, thus considering the parallelism of the terminal device fragment downloading. Further, the constructed streaming media file unit 502 is further configured to: when constructing the first data block of the Rth slice of the streaming media file, calculate the first of the Rth fragments of the streaming media file The verification information of the data block, the verification information of the first data block of the Rth slice of the post-stream media file is added to the first one of the plurality of consecutive segments located in front of the Rth slice in the post-stream media file In the data block, specifically, the constructed media file unit 502 can determine the number of fragments that are consecutively located before the Rth slice according to the size of the buffer of the terminal device.
本实施例中的终端设备可以与如图 6所示的实施例五的终端设备相同。 下面对本发明实施例中终端设备进行描述, 请参阅图 6, 本发明实施例中 终端设备的一个实施例五包括:  The terminal device in this embodiment may be the same as the terminal device in the fifth embodiment shown in FIG. 6. The following describes the terminal device in the embodiment of the present invention. Referring to FIG. 6, an embodiment 5 of the terminal device in the embodiment of the present invention includes:
发送请求消息单元 601 , 用于发送第三请求消息, 该第三请求消息用于请 求接收的后流媒体文件的当前分片的第一个数据块的独立验证信息,并且该分 片包括 S个数据块;  The sending request message unit 601 is configured to send a third request message, where the third request message is used to request independent verification information of the first data block of the current fragment of the received post-streaming media file, and the fragment includes S data block;
接收验证信息单元 602,用于在发送请求消息单元 601发送完第三请求消息 之后, 接收该分片的第一个数据块的独立验证信息;  The receiving verification information unit 602 is configured to receive, after the sending request message unit 601 sends the third request message, the independent verification information of the first data block of the fragment;
验证完整性单元 603, 用于按照第一个数据块的独立验证信息验证第一个 数据块的完整性, 当第一个数据块是完整的时候, 从第一个数据块开始, 从已 经验证为完整的第 s个数据块中提取出该分片的第 s+1个数据块的验证信息,按 照第 s+1个数据块的验证信息验证该分片的第 s+1个数据块的完整性,直至验证 完该分片的第 S个数据块的完整性, s从 1至 S-1 , 在验证完该分片的第 S个数据 块的完整性之前, 当第 G个数据块的验证信息缺失时, G为 2至 S中的任一整数, 发送第四请求消息, 第四请求消息用于请求第 G个数据块的独立验证信息, 接 收第 G个数据块的独立验证信息, 按照第 G个数据块的独立验证信息验证第 G 个数据块的完整性。 a verification integrity unit 603, configured to verify the first one according to the independent verification information of the first data block The integrity of the data block, when the first data block is complete, starting from the first data block, extracting the s+1th data block of the slice from the sth data block that has been verified as complete Verification information, verifying the integrity of the s+1th data block of the slice according to the verification information of the s+1th data block, until the integrity of the Sth data block of the slice is verified, s from 1 Up to S-1, before verifying the integrity of the Sth data block of the fragment, when the verification information of the Gth data block is missing, G is any integer from 2 to S, and sends a fourth request message. The fourth request message is used to request independent verification information of the Gth data block, receive independent verification information of the Gth data block, and verify the integrity of the Gth data block according to the independent verification information of the Gth data block.
进一步的, 验证完整性单元 603可以包括验证子单元 604, 验证子单元 604 用于接收第 G个数据块的独立验证信息, 按照第 G个数据块的独立验证信息提 取出第 G个数据块在 Merkle树上的验证路径, 沿着第 G个数据块在 Merkle树上 的验证路径逐步构造该验证路径上的节点, 当构造到某一节点时, 若与在验证 其他数据块的完整性时已保存的相同序号的节点的内容相同,则停止构造该验 证路径上的剩余节点, 保存已构造的节点, 第 G个数据块是完整的。  Further, the verification integrity unit 603 may include a verification subunit 604, and the verification subunit 604 is configured to receive independent verification information of the Gth data block, and extract the Gth data block according to the independent verification information of the Gth data block. The verification path on the Merkle tree, stepwise constructing the nodes on the verification path along the verification path of the Gth data block on the Merkle tree, when constructing to a node, if it is verifying the integrity of other data blocks If the contents of the saved nodes of the same sequence number are the same, then the remaining nodes on the verification path are stopped, and the constructed nodes are saved, and the Gth data block is complete.
为了提高终端设备下载流媒体内容的速度,终端设备可以在自身的内存中 划出一定容量的緩沖区, 并行下载后流媒体文件的多个分片, 因此考虑到终端 设备分片下载的并行性, 进一步, 验证完整性单元 603还用于, 当第一个数据 块是完整的时候, 从第一个数据块中提取出连续位于当前分片之后的 i个分片 的第一个数据块的验证信息, 按照 i个分片的第一个数据块的验证信息并行验 证 i个分片的第一个数据块的完整性, 将 i个分片中包含完整的第一个数据块的 分片与当前分片一起采用同样的验证方法并行验证各自剩余数据块的完整性。  In order to improve the speed at which the terminal device downloads the streaming media content, the terminal device can draw a buffer of a certain capacity in its own memory, and download multiple fragments of the streaming media file in parallel, thus considering the parallelism of the terminal device fragment downloading. Further, the verification integrity unit 603 is further configured to: when the first data block is complete, extract the first data block of the i slices consecutively located after the current slice from the first data block. Verification information, verifying the integrity of the first data block of the i slices in parallel according to the verification information of the first data block of the i slices, and including the fragment of the complete first data block in the i slices The same verification method is used together with the current slice to verify the integrity of the remaining data blocks in parallel.
为了终端设备能够在 VCR操作场景下进行数据块的流媒体内容完整性验 证, 进一步, 终端设备还包括:  In order to enable the terminal device to perform the streaming content integrity verification of the data block in the VCR operation scenario, the terminal device further includes:
接收指示消息单元 605, 用于接收用户的指示消息, 该指示消息用于指定 通过 VCR操作将被播放的数据块;  The receiving indication message unit 605 is configured to receive an indication message of the user, where the indication message is used to specify a data block to be played by the VCR operation;
VCR执行单元 606用于,按照指示消息单元 605所接收的指示消息确定将被 播放的数据块在后流媒体文件中所有数据块里的位置;判断将被播放的数据块 是否已被緩沖, 若将被播放的数据块没有被緩沖,按照将被播放的数据块在后 流媒体文件中所有数据块里的位置下载包含将被播放的数据块的分片,采用发 送请求消息单元 601请求将被播放的数据块的独立验证信息, 接收将被播放的 数据块的独立验证信息,按照将被播放的数据块的独立验证信息验证将被播放 的数据块的完整性; 若将被播放的数据块已被緩沖, 判断将被播放的数据块是 否已通过完整性验证, 若是, 则播放将被播放的数据块, 若否, 则重新下载将 被播放的数据块,按照从将被播放的数据块的前一数据块中提取出的将被播放 的数据块的验证信息对将被播放的数据块进行完整性验证。 下面对本发明实施例中验证流媒体内容完整性的系统进行描述,请参阅图 7, 本发明实施例中险证流媒体内容完整性的系统的一个实施例六包括: The VCR executing unit 606 is configured to determine, according to the indication message received by the indication message unit 605, the position of the data block to be played in all the data blocks in the post-streaming media file; determine whether the data block to be played has been buffered, if The data block to be played is not buffered, according to the data block to be played back. The location in all the data blocks in the streaming media file downloads the fragment containing the data block to be played, and the sending request message unit 601 requests the independent verification information of the data block to be played, and receives the independent verification of the data block to be played. Information, verifying the integrity of the data block to be played according to the independent verification information of the data block to be played; if the data block to be played has been buffered, it is determined whether the data block to be played has passed the integrity verification, if , playing the data block to be played, if not, re-downloading the data block to be played, according to the verification information of the data block to be played extracted from the previous data block of the data block to be played. The data block to be played is subjected to integrity verification. The system for verifying the integrity of the streaming media content in the embodiment of the present invention is described below. Referring to FIG. 7, an embodiment 6 of the system for integrity of streaming media content in the embodiment of the present invention includes:
流媒体服务器 701和终端设备 702, 需要说明的是, 本实施例中的流媒体服 务器 701可以与前述图 5所示的流媒体服务器相同, 本实施例中的终端设备 702 可以与前述图 6所示的终端设备相同, 具体此处不再赘述 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: ROM、 RAM, 磁盘或光盘等。  The streaming media server 701 and the terminal device 702, it should be noted that the streaming media server 701 in this embodiment may be the same as the streaming media server shown in FIG. 5, and the terminal device 702 in this embodiment may be the same as the foregoing FIG. The terminal devices are the same, and those skilled in the art can understand that all or part of the various methods of the above embodiments can be completed by a program to instruct related hardware, and the program can be stored in a In a computer readable storage medium, the storage medium may include: a ROM, a RAM, a magnetic disk or an optical disk, and the like.
以上对本发明实施例所提供的验证流媒体内容完整性的方法以及设备和 系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行 了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同 时, 对于本领域的一般技术人员, 依据本发明的思想, 在具体实施方式及应用 范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。  The method, device and system for verifying the integrity of the streaming media content provided by the embodiments of the present invention are described in detail. The principles and implementation manners of the present invention are described in the specific examples. The description of the above embodiments is only used. To help understand the method of the present invention and its core ideas; at the same time, for those of ordinary skill in the art, in accordance with the idea of the present invention, there will be changes in the specific embodiments and applications, and in summary, the present specification The content should not be construed as limiting the invention.

Claims

权 利 要 求 Rights request
1、 一种验证流媒体内容完整性的方法, 其特征在于, 包括:  A method for verifying integrity of a streaming media content, comprising:
流媒体服务器读取源流媒体文件的第 N个分片,所述分片包括 M个数据块; 将所述分片的第 M个数据块作为后流媒体文件的第 N个分片的第 M个数据 块, 从所述后流媒体文件的第 N个分片的第 M个数据块开始, 计算所述后流媒 体文件的第 N个分片的第 m个数据块的验证信息, 通过将第 m个数据块的验证 信息添加到所述源流媒体文件的第 N个分片的第 m-1个数据块生成第 m-Γ个数 据块, 将第 m-Γ个数据块作为所述后流媒体文件的第 N个分片的第 m-1个数据 块, 直至构造完所述后流媒体文件的第 N个分片的第一个数据块, m从 M至 2;  The streaming media server reads the Nth fragment of the source streaming media file, the fragment includes M data blocks; and the Mth data block of the fragment is used as the Nth fragment of the post-streaming media file. M data blocks, starting from the Mth data block of the Nth slice of the post-streaming media file, calculating verification information of the mth data block of the Nth slice of the post-streaming media file, Adding the verification information of the mth data block to the m-1th data block of the Nth slice of the source streaming media file to generate the mth-th data block, and using the m-th data block as the The m-1th data block of the Nth slice of the subsequent streaming media file, until the first data block of the Nth slice of the subsequent streaming media file is constructed, m is from M to 2;
构造所述后流媒体文件中第 N个分片的每个数据块的独立验证信息, 并单 独存储所述独立验证信息。  The independent verification information of each data block of the Nth slice in the post-streaming media file is constructed, and the independent verification information is separately stored.
2、 根据权利要求 1所述的方法, 其特征在于, 构造所述后流媒体文件中第 N个分片的每个数据块的独立验证信息, 具体为:  The method according to claim 1, wherein the independent verification information of each data block of the Nth slice in the back stream media file is configured as follows:
采用基于 Merkle树的树链构造所述后流媒体文件中第 N个分片的每个数据 块的独立验证信息。  The Merkle tree-based tree chain is used to construct independent verification information for each data block of the Nth slice in the post-streaming media file.
3、 根据权利要求 1或 2所述的方法, 其特征在于, 还包括:  The method according to claim 1 or 2, further comprising:
当构造完所述后流媒体文件的第 N个分片的第一个数据块, 计算所述后流 媒体文件的第 N个分片的第一个数据块的验证信息, 将所述后流媒体文件的第 N个分片的第一个数据块的验证信息添加到所述后流媒体文件中若干个连续 位于第 N个分片前面的分片的第一个数据块中。  When the first data block of the Nth fragment of the post-streaming media file is constructed, the verification information of the first data block of the Nth fragment of the post-streaming media file is calculated, and the back stream is The verification information of the first data block of the Nth slice of the media file is added to the first data block of the plurality of consecutive segments located in front of the Nth slice in the subsequent streaming media file.
4、 根据权利要求 3所述的方法, 其特征在于,  4. The method of claim 3, wherein
若干个连续位于第 N个分片前面的分片的数量由终端设备的緩沖区的大 小而定。  The number of shards that are consecutively located before the Nth shard is determined by the size of the buffer of the terminal device.
5、 一种验证流媒体内容完整性的方法, 其特征在于, 包括:  5. A method for verifying integrity of a streaming media content, comprising:
终端设备发送第一请求消息,所述第一请求消息用于请求接收的后流媒体 文件的分片的第一个数据块的独立验证信息, 所述分片包括 K个数据块;  The terminal device sends a first request message, where the first request message is used to request independent verification information of the first data block of the slice of the received downstream media file, where the fragment includes K data blocks;
接收第一个数据块的独立验证信息;  Receiving independent verification information of the first data block;
按照所述第一个数据块的独立验证信息验证第一个数据块的完整性,当第 一个数据块是完整的时候, 从第一个数据块开始, 从已经验证为完整的第 k个 数据块中提取出所述分片的第 k+1个数据块的验证信息, 按照所述第 k+1个数 据块的验证信息验证所述分片的第 k+1个数据块的完整性, 直至验证完所述分 片的第 K个数据块的完整性, k从 1至 K-1; Verifying the integrity of the first data block according to the independent verification information of the first data block, when the first When a data block is complete, starting from the first data block, extracting the verification information of the k+1th data block of the slice from the kth data block that has been verified as complete, according to the The verification information of the k+1 data blocks verifies the integrity of the k+1th data block of the slice until the integrity of the Kth data block of the slice is verified, k is from 1 to K-1 ;
在验证完所述分片的第 K个数据块的完整性之前, 当第 T个数据块的验证 信息缺失时, T为 2至 K中的任一整数, 发送第二请求消息, 所述第二请求消息 用于请求第 T个数据块的独立验证信息, 接收第 T个数据块的独立验证信息, 按照所述第 T个数据块的独立验证信息验证第 T个数据块的完整性。  Before verifying the integrity of the Kth data block of the fragment, when the verification information of the Tth data block is missing, T is any integer from 2 to K, and sending a second request message, the The second request message is used to request independent verification information of the Tth data block, receive independent verification information of the Tth data block, and verify the integrity of the Tth data block according to the independent verification information of the Tth data block.
6、 根据权利要求 5所述的方法, 其特征在于, 所述后流媒体文件的数据块 的独立验证信息是采用基于 Merkle树的树链构造的, 接收第 T个数据块的独立 验证信息, 按照所述第 T个数据块的独立验证信息验证第 T个数据块的完整性, 具体为:  The method according to claim 5, wherein the independent verification information of the data block of the back stream media file is constructed by using a Merkle tree-based tree chain, and receives independent verification information of the Tth data block. Verifying the integrity of the Tth data block according to the independent verification information of the Tth data block, specifically:
接收第 T个数据块的独立验证信息;  Receiving independent verification information of the Tth data block;
按照所述第 T个数据块的独立验证信息提取出第 T个数据块在 Merkle树上 的验证路径, 沿着所述验证路径逐步构造所述验证路径上的节点, 当构造到某 一节点时,若与在验证其他数据块的完整性时已保存的相同序号的节点的内容 相同, 则停止构造所述验证路径上的剩余节点, 保存已构造的节点, 第 T个数 据块是完整的。  Extracting, according to the independent verification information of the Tth data block, a verification path of the Tth data block on the Merkle tree, and gradually constructing a node on the verification path along the verification path, when constructing to a certain node If the content of the node with the same sequence number that was saved when verifying the integrity of other data blocks is the same, then the remaining nodes on the verification path are stopped, and the constructed node is saved, and the Tth data block is complete.
7、 根据权利要求 5或 6所述的方法, 其特征在于, 还包括:  The method according to claim 5 or 6, further comprising:
当第一个数据块是完整的时候,从第一个数据块中提取出连续位于所述分 片之后的 j个分片的第一个数据块的验证信息, 按照所述 j个分片的第一个数据 块的验证信息并行验证所述 j个分片的第一个数据块的完整性, 将 j个分片中包 含完整第一个数据块的分片与所述 j个分片前面的所述分片一起采用同样的验 证方法并行验证各自剩余数据块的完整性。  When the first data block is complete, the verification information of the first data block of the j fragments consecutively located after the fragment is extracted from the first data block, according to the j fragments The verification information of the first data block verifies the integrity of the first data block of the j fragments in parallel, and includes the fragment of the complete first data block in the j fragments and the front of the j fragments The shards together use the same verification method to verify the integrity of the remaining data blocks in parallel.
8、 根据权利要求 7所述的方法, 其特征在于, 还包括:  8. The method according to claim 7, further comprising:
接收用户的指示消息, 所述指示消息用于指定通过盒式磁带录像机 VCR 操作将被播放的数据块;  Receiving an indication message of the user, where the indication message is used to specify a data block to be played by the VCR operation of the video cassette recorder;
按照所述指示消息确定将被播放的数据块在所述后流媒体文件中所有数 据块里的位置; Determining, according to the indication message, all the data blocks to be played in the post-streaming media file According to the location in the block;
判断将被播放的数据块是否已被緩沖, 若将被播放的数据块没有被緩沖, 按照将被播放的数据块在所述后流媒体文件中所有数据块里的位置下载包含 将被播放的数据块的分片,请求将被播放的数据块的独立验证信息,接收所述 将被播放的数据块的独立验证信息,按照所述将被播放的数据块的独立验证信 息验证将被播放的数据块的完整性;  Determining whether the data block to be played has been buffered, and if the data block to be played is not buffered, downloading the location of all the data blocks in the post-streaming file according to the data block to be played contains the content to be played. Fragmentation of the data block, requesting independent verification information of the data block to be played, receiving independent verification information of the data block to be played, verifying that the data will be played according to the independent verification information of the data block to be played. The integrity of the data block;
若将被播放的数据块已被緩沖,判断将被播放的数据块是否已通过完整性 验证,若是,则播放将被播放的数据块,若否,则重新下载将被播放的数据块, 按照从将被播放的数据块的前一数据块中提取出的将被播放的数据块的验证 信息对将被播放的数据块进行完整性验证。  If the data block to be played has been buffered, it is judged whether the data block to be played has passed the integrity verification, and if so, the data block to be played is played, and if not, the data block to be played is re-downloaded, according to The verification information of the data block to be played extracted from the previous data block of the data block to be played is subjected to integrity verification on the data block to be played.
9、 一种流媒体服务器, 其特征在于, 包括:  9. A streaming media server, comprising:
读取分片单元, 用于读取源流媒体文件的第 R个分片, 所述分片包括 Z个 数据块;  Reading a fragmentation unit, configured to read an Rth fragment of the source streaming media file, where the fragment includes Z data blocks;
构造后流媒体文件单元, 用于将所述分片的第 Z个数据块作为后流媒体文 件的第 R个分片的第 Z个数据块, 从所述后流媒体文件的第 R个分片的第 Z个数 据块开始,计算所述后流媒体文件的第 R个分片的第 z个数据块的验证信息,通 过将第 z个数据块的验证信息添加到所述源流媒体文件的第 R个分片的第 Z-1个 数据块生成第 z-1 '个数据块,将第 ζ-Γ个数据块作为所述后流媒体文件的第 R个 分片的第 z-1个数据块,直至构造完所述后流媒体文件的第 R个分片的第一个数 据块, z从 Z至 2;  Constructing a post-streaming file unit, configured to use the Zth data block of the slice as the Zth data block of the Rth slice of the post-streaming media file, from the Rth sub-stream of the post-streaming media file Starting with the Zth data block of the slice, calculating verification information of the zth data block of the Rth slice of the poststream media file, by adding verification information of the zth data block to the source streaming media file The Z-1th data block of the Rth slice generates the z-1th data block, and the ζ-Γ data block is used as the z-1th of the Rth slice of the post-streaming file. Data block until the first data block of the Rth slice of the stream media file is constructed, z from Z to 2;
构造独立验证信息单元, 用于构造所述后流媒体文件中第 R个分片的每个 数据块的独立验证信息, 并单独存储所述独立验证信息。  Constructing an independent verification information unit, configured to construct independent verification information of each data block of the Rth slice in the post-streaming media file, and separately storing the independent verification information.
10、 根据权利要求 9所述的流媒体服务器, 其特征在于,  10. The streaming server according to claim 9, wherein:
所述构造独立验证信息单元采用基于 Merkle树的树链构造所述后流媒体 文件中第 R个分片的每个数据块的独立验证信息。  The constructing independent verification information unit constructs independent verification information of each data block of the Rth slice in the post-stream media file by using a Merkle tree-based tree chain.
11、 根据权利要求 9或 10所述的流媒体服务器, 其特征在于,  11. The streaming server according to claim 9 or 10, characterized in that
所述构造后流媒体文件单元还用于, 当构造完所述后流媒体文件的第 R个 分片的第一个数据块, 计算所述后流媒体文件的第 R个分片的第一个数据块的 验证信息, 将所述后流媒体文件的第 R个分片的第一个数据块的验证信息添加 到所述后流媒体文件中若干个连续位于第 R个分片前面的分片的第一个数据 块中。 The post-construction streaming media file unit is further configured to: when constructing the first data block of the Rth fragment of the post-streaming media file, calculate the first of the Rth fragments of the post-streaming media file Data block Verifying information, adding verification information of the first data block of the Rth slice of the post-streaming file to the first of the plurality of consecutively located R-slices in the post-streaming file In the data block.
12、 根据权利要求 11所述的流媒体服务器, 其特征在于, 所述构造后流媒 体文件单元按照终端设备的緩沖区的大小确定若干个连续位于第 R个分片前 面的分片的数量。  The streaming media server according to claim 11, wherein the constructed media file unit determines the number of fragments that are consecutively located before the Rth slice according to the size of the buffer of the terminal device.
13、 一种终端设备, 其特征在于, 包括:  13. A terminal device, comprising:
发送请求消息单元, 用于发送第三请求消息, 所述第三请求消息用于请求 接收的后流媒体文件的分片的第一个数据块的独立验证信息, 所述分片包括 S 个数据块;  And a sending request message unit, configured to send a third request message, where the third request message is used to request independent verification information of the first data block of the slice of the received downstream media file, where the fragment includes S data Piece;
接收验证信息单元, 用于接收第一个数据块的独立验证信息;  Receiving a verification information unit, configured to receive independent verification information of the first data block;
验证完整性单元,用于按照所述第一个数据块的独立验证信息验证第一个 数据块的完整性, 当第一个数据块是完整的时候, 从第一个数据块开始, 从已 经验证为完整的第 s个数据块中提取出所述分片的第 s+1个数据块的验证信息, 按照所述第 s+1个数据块的验证信息验证所述分片的第 s+1个数据块的完整性, 直至验证完所述分片的第 S个数据块的完整性, s从 1至 S-1 ;  a verification integrity unit, configured to verify the integrity of the first data block according to the independent verification information of the first data block, when the first data block is complete, starting from the first data block, Verifying that the verification information of the s+1th data block of the fragment is extracted from the complete sth data block, and verifying the s+ of the fragment according to the verification information of the s+1th data block. The integrity of one data block, until the integrity of the Sth data block of the slice is verified, s from 1 to S-1;
在验证完所述分片的第 S个数据块的完整性之前, 当第 G个数据块的验证 信息缺失时, G为 2至 S中的任一整数, 发送请求消息单元还用于发送第四请求 消息, 所述第四请求消息用于请求第 G个数据块的独立验证信息, 接收验证信 息单元还用于接收第 G个数据块的独立验证信息, 按照第 G个数据块的独立验 证信息验证第 G个数据块的完整性。  Before verifying the integrity of the Sth data block of the slice, when the verification information of the Gth data block is missing, G is any integer from 2 to S, and the send request message unit is also used to send the first a fourth request message, the fourth request message is used to request independent verification information of the Gth data block, and the received verification information unit is further configured to receive independent verification information of the Gth data block, and perform independent verification according to the Gth data block. The information verifies the integrity of the Gth data block.
14、 根据权利要求 13所述的终端设备, 其特征在于,  14. The terminal device according to claim 13, wherein
所述验证完整性单元, 具体用于接收第 G个数据块的独立验证信息, 按照 所述第 G个数据块的独立验证信息提取出第 G个数据块在 Merkle树上的验证路 径,沿着所述验证路径逐步构造所述验证路径上的节点,当构造到某一节点时, 若与在验证其他数据块的完整性时已保存的相同序号的节点的内容相同,则停 止构造所述验证路径上的剩余节点, 保存已构造的节点, 第 G个数据块是完整 的。 The verification integrity unit is specifically configured to receive the independent verification information of the Gth data block, and extract the verification path of the Gth data block on the Merkle tree according to the independent verification information of the Gth data block. The verification path gradually constructs a node on the verification path, and when constructing to a node, if the content of the node of the same serial number that has been saved when verifying the integrity of other data blocks is the same, stopping the construction of the verification The remaining nodes on the path, save the constructed nodes, the Gth data block is complete.
15、 根据权利要求 13或 14所述的终端设备, 其特征在于, The terminal device according to claim 13 or 14, wherein
所述验证完整性单元还用于, 当第一个数据块是完整的时候,从第一个数 据块中提取出连续位于所述分片之后的 i个分片的第一个数据块的验证信息, 按照所述 i个分片的第一个数据块的验证信息并行验证所述 i个分片的第一个数 据块的完整性, 将 i个分片中包含完整的第一个数据块的分片与所述 i个分片前 面的所述分片一起采用同样的验证方法并行验证各自剩余数据块的完整性。  The verification integrity unit is further configured to: when the first data block is complete, extract, from the first data block, the verification of the first data block of the i slices consecutively after the fragment Information, verifying the integrity of the first data block of the i fragments in parallel according to the verification information of the first data block of the i fragments, and including the complete first data block in the i fragments The shards are used in parallel with the shards preceding the i shards to verify the integrity of the remaining data blocks in parallel using the same verification method.
16、 根据权利要求 15所述的终端设备, 其特征在于, 还包括:  The terminal device according to claim 15, further comprising:
接收指示消息单元, 用于接收用户的指示消息, 所述指示消息用于指定通 过 VCR操作将被播放的数据块;  Receiving an indication message unit, configured to receive an indication message of a user, where the indication message is used to specify a data block to be played by a VCR operation;
VCR执行单元,用于按照所述指示消息确定将被播放的数据块在所述后流 媒体文件中所有数据块里的位置; 判断将被播放的数据块是否已被緩沖, 若将 被播放的数据块没有被緩沖,按照将被播放的数据块在所述后流媒体文件中所 有数据块里的位置下载包含将被播放的数据块的分片,采用所述发送请求消息 单元请求将被播放的数据块的独立验证信息,接收所述将被播放的数据块的独 立验证信息,按照将被播放的数据块的独立验证信息验证将被播放的数据块的 完整性; 若将被播放的数据块已被緩沖, 判断将被播放的数据块是否已通过完 整性验证, 若是, 则播放将被播放的数据块, 若否, 则重新下载将被播放的数 据块,按照从将被播放的数据块的前一数据块中提取出的将被播放的数据块的 验证信息对将被播放的数据块进行完整性验证。  a VCR execution unit, configured to determine, according to the indication message, a position of a data block to be played in all data blocks in the post-streaming file; determine whether a data block to be played has been buffered, if it is to be played The data block is not buffered, and the fragment containing the data block to be played is downloaded according to the position of the data block to be played in all the data blocks in the post-streaming file, and the request is sent by the sending request message unit. Independent verification information of the data block, receiving independent verification information of the data block to be played, verifying the integrity of the data block to be played according to the independent verification information of the data block to be played; if the data to be played The block has been buffered to determine whether the data block to be played has passed the integrity verification. If so, the data block to be played will be played. If not, the data block to be played will be re-downloaded, according to the data to be played. The verification information of the data block to be played back extracted from the previous data block of the block performs integrity verification on the data block to be played.
17、 一种验证流媒体内容完整性的系统, 包括:  17. A system for verifying the integrity of streaming media content, comprising:
如权利要求 9至 12中任一项所述的流媒体服务器和如权利要求 13至 16 中任一项所述的终端设备。  A streaming media server according to any one of claims 9 to 12 and a terminal device according to any one of claims 13 to 16.
PCT/CN2011/075054 2010-11-01 2011-05-31 Mehtod, device and system for verifying integrity of streaming media contents WO2011150845A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010528198.2A CN102137089B (en) 2010-11-01 2010-11-01 Method, device and system for verifying content integrity of streaming media
CN201010528198.2 2010-11-01

Publications (1)

Publication Number Publication Date
WO2011150845A1 true WO2011150845A1 (en) 2011-12-08

Family

ID=44296745

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/075054 WO2011150845A1 (en) 2010-11-01 2011-05-31 Mehtod, device and system for verifying integrity of streaming media contents

Country Status (2)

Country Link
CN (1) CN102137089B (en)
WO (1) WO2011150845A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537540A (en) * 2018-03-23 2018-09-14 北京超雷科技中心(有限合伙) Method and device for electronic data preservation
CN113760937A (en) * 2021-09-17 2021-12-07 恒生电子股份有限公司 Data defect checking method and device, electronic equipment and storage medium
CN117112574A (en) * 2023-10-20 2023-11-24 美云智数科技有限公司 Tree service data construction method, device, computer equipment and storage medium

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259507B (en) * 2012-04-25 2020-12-08 华为技术有限公司 System and method for adaptive streaming segment integrity and authenticity
CN104661042A (en) * 2013-11-25 2015-05-27 乐视网信息技术(北京)股份有限公司 Method, device and system for transmitting transport stream
CN106570065B (en) * 2016-10-10 2020-01-14 北京金堤科技有限公司 Method and system for verifying whether timestamp of file in database is forged
EP3539271B1 (en) * 2016-11-10 2024-09-04 Telefonaktiebolaget LM Ericsson (PUBL) Resource segmentation to improve delivery performance
CN106648953A (en) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 File integrity checking method and device
CN107220559B (en) * 2017-06-11 2023-07-07 南京安链数据科技有限公司 Encryption storage method for non-tamperable file
CN107705208A (en) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 A kind of digital asset processing method and system based on Hash tree
CN108900282A (en) * 2018-06-29 2018-11-27 南昌华勤电子科技有限公司 The method of checking data integrity
CN110765163B (en) * 2019-10-17 2020-07-14 广州商品清算中心股份有限公司 Execution plan generation method for big data processing flow
CN111159750B (en) * 2020-04-07 2021-02-05 南京邮电大学 Automobile maintenance data storage method based on alliance chain
CN115242774B (en) * 2022-06-24 2024-09-03 浪潮通信技术有限公司 Edge computing gateway configuration transmission method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113215A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Fast update for hierarchical integrity schemes
CN101651719A (en) * 2009-09-11 2010-02-17 广东宇天信通通信科技有限公司 Communication system, equalization server and data verification method
CN101853190A (en) * 2010-06-04 2010-10-06 华中科技大学 A Data Integrity Verification Method Applicable to Embedded Processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131718B (en) * 2006-08-22 2012-05-23 华为技术有限公司 Method, equipment and system for validating completeness of protected contents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113215A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Fast update for hierarchical integrity schemes
CN101651719A (en) * 2009-09-11 2010-02-17 广东宇天信通通信科技有限公司 Communication system, equalization server and data verification method
CN101853190A (en) * 2010-06-04 2010-10-06 华中科技大学 A Data Integrity Verification Method Applicable to Embedded Processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537540A (en) * 2018-03-23 2018-09-14 北京超雷科技中心(有限合伙) Method and device for electronic data preservation
CN113760937A (en) * 2021-09-17 2021-12-07 恒生电子股份有限公司 Data defect checking method and device, electronic equipment and storage medium
CN117112574A (en) * 2023-10-20 2023-11-24 美云智数科技有限公司 Tree service data construction method, device, computer equipment and storage medium
CN117112574B (en) * 2023-10-20 2024-02-23 美云智数科技有限公司 Tree service data construction method, device, computer equipment and storage medium

Also Published As

Publication number Publication date
CN102137089B (en) 2013-09-11
CN102137089A (en) 2011-07-27

Similar Documents

Publication Publication Date Title
WO2011150845A1 (en) Mehtod, device and system for verifying integrity of streaming media contents
CN109587253B (en) A method for distributed storage of files based on blockchain
US8355433B2 (en) Encoding video streams for adaptive video streaming
WO2019218717A1 (en) Distributed storage method and apparatus, computer device, and storage medium
US9646141B2 (en) Fast start of streaming digital media playback with deferred license retrieval
CN108259507B (en) System and method for adaptive streaming segment integrity and authenticity
KR102238681B1 (en) Method of generating and verifying signature information and system thereof
JP7178998B2 (en) Resource segmentation to improve delivery performance
CN105228001B (en) A kind of method and system that FLV format videos play online
US9973290B2 (en) System for media rebroadcasting for synchronized rendering across multiple devices
CN108124202A (en) A kind of method that streaming media server is made to support HLS protocol
CN109151491B (en) Data distribution system, method and computer-readable storage medium
CN109525622B (en) Fragment resource ID generation method, resource sharing method, device and electronic equipment
JP7035093B2 (en) Staggered keyframe video coding
WO2013185514A1 (en) System and method for playing streaming media
CN103222276B (en) Processing method to be implemented upon the occurrence of an expression switch in http streaming
CN104661042A (en) Method, device and system for transmitting transport stream
CN114301602A (en) Video protection method and device based on block chain
CN103152606A (en) Video file processing method, device and system
CN111837405A (en) Method, system and medium for delivering manifestless streaming content
CN115567512A (en) Data transmission method, device, server, equipment, medium and program product
CN113169969A (en) Multicast to Unicast Conversion
CN107071548A (en) A kind of method for processing video frequency and system
CN115396689B (en) Intelligent cloud video transmission and storage method and system
WO2012071932A1 (en) Method and system for quick launch of segmented program

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: 11789224

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: 11789224

Country of ref document: EP

Kind code of ref document: A1

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载