CN110798734A - Video frame caching and forwarding method and device and computer equipment - Google Patents
Video frame caching and forwarding method and device and computer equipment Download PDFInfo
- Publication number
- CN110798734A CN110798734A CN201810872492.1A CN201810872492A CN110798734A CN 110798734 A CN110798734 A CN 110798734A CN 201810872492 A CN201810872492 A CN 201810872492A CN 110798734 A CN110798734 A CN 110798734A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- buffer
- forwarding
- key frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 239000000872 buffer Substances 0.000 claims abstract description 228
- 230000003139 buffering effect Effects 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000012769 display material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
The invention relates to a method and a device for caching and forwarding video frames, computer equipment and a computer readable storage medium. The method comprises the following steps: receiving a video frame of a video sharing terminal; if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame; if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer. According to the video frame caching method, the video sharing terminal only needs to send one piece of video frame data to the server for caching and forwarding, and network congestion of sending video frames to the plurality of video request terminals is avoided. The buffer only stores one key frame at the same time, so that the real-time performance of the video frames stored by the buffer is ensured, the occupation of buffer resources can be reduced, and the buffering and forwarding efficiency of the video frames is improved.
Description
Technical Field
The present invention relates to the field of live video broadcasting, and in particular, to a method and an apparatus for buffering and forwarding video frames, a computer device, and a computer-readable storage medium.
Background
With the development of the video live broadcast technology, the video live broadcast technology has been applied to various aspects of life, for example, video frame data played by a video sharing terminal can be synchronously relayed to other video requesting terminals through the video live broadcast technology, so that the playing content sharing of a plurality of video requesting terminals is realized.
For example, in the field of a network conference system or a remote office, a video sharing terminal often needs to share a video sharing computer desktop with other video requesting terminals to display material documents and the like. Since the key frame data of the desktop shared video is very large, but the subsequent video frame data changes little, if a peer-to-peer network (P2P) manner or a User Datagram Protocol (UDP) multicast manner is adopted, multiple key frames need to be sent to each video request terminal at the same time, or the key frames are frequently requested, a key frame storm may be caused, and video rebroadcast of the video request terminals may be blocked or delayed; in addition, when a new video requesting terminal member joins in the case of already opening the shared desktop, in the existing P2P method or UDP multicast method, it takes a long time for the new video requesting terminal to display the desktop of the sharer, and the sharing efficiency of the video frame is low.
Disclosure of Invention
Based on this, it is necessary to provide a method, an apparatus, a computer device and a computer readable storage medium for buffering and forwarding video frames, aiming at the problem that the conventional video frame sharing method is inefficient.
A video frame caching method comprises the following steps:
receiving a video frame of a video sharing terminal;
judging whether the received video frame is a key frame;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
According to the video frame caching method, the video frames of the video sharing terminal are stored in the cache for forwarding processing, and the video sharing terminal only needs to send one piece of video frame data to the server, so that the phenomenon that the video frame forwarding display is abnormal due to network congestion caused by the fact that the video sharing terminal sends the video frames to a plurality of video request terminals is avoided. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
In one embodiment, after determining whether the received video frame is a key frame, the method further includes: and if the received video frame is not the key frame, traversing the video frames in the buffer from the video frame pointed by the head pointer, deleting the video frames of which the buffer time exceeds a set time threshold, and moving the pointed position of the head pointer backwards to delete the position of the corresponding number of the video frames.
According to the technical scheme of the embodiment, when the non-key frame is received, the video frame with overtime cache in the cache is further deleted, the condition that the cached video frame exceeds the set time threshold value is avoided, and the real-time performance of the forwarded video frame is guaranteed.
In one embodiment, the buffer is a ring buffer, and the buffer comprises a plurality of storage sites connected end to end, wherein each site corresponds to a storage location of a frame of video frame; the buffer is provided with a head pointer and a tail pointer, the head pointer is used for pointing to the key frame stored in the buffer when the key frame is stored in the buffer, and the tail pointer is used for pointing to the latest video frame stored in the buffer.
According to the technical scheme of the embodiment, the buffer is set to be an annular buffer and comprises a plurality of storage sites which are connected end to end, each site corresponds to a storage position of one frame of video frame, the video frames cached by the annular buffer can be stored and read firstly, and the newly stored video frames cannot influence the positions of the stored video frames, so that the reading and positioning of the video frame data when the video frame data are cached and forwarded are facilitated.
In order to ensure that even if the video frame is not sent due to timeout, the buffer memory is not insufficient, in one embodiment, the memory size of the ring buffer is set to be larger than the product of the set time threshold and the frame rate. The maximum allowable timeout time for forwarding video frames can be controlled by setting the appropriate buffer size.
A forwarding method of video frames comprises the following steps:
receiving and caching a video frame of a video sharing terminal; wherein, the step of receiving and buffering the video frame of the video sharing terminal comprises the step of the buffering method of the video frame according to any one of the above embodiments;
receiving a video frame forwarding request of a video request terminal;
judging whether the video request terminal is a video request terminal for requesting video forwarding for the first time;
if the video request terminal is a video request terminal which requests video forwarding for the first time, judging whether a video frame pointed by a head pointer of a current buffer is a key frame;
if the video frame pointed by the head pointer is a key frame, forwarding the key frame to the video request terminal, and updating the pointed position of the forwarding pointer corresponding to the video request terminal to be the same as the pointed position of the head pointer;
and if the video frame pointed by the head pointer is not the key frame, sending a key frame request to the video sharing terminal.
According to the method for forwarding the video frame, the video frame of the video sharing terminal is stored in the buffer through the method for buffering the video frame of any embodiment, when a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the buffering time of the key frame exceeds a period of time, and the condition that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
In one embodiment, the step of determining whether the video requesting terminal is a video requesting terminal that requests video forwarding for the first time further includes: if the video request terminal is not the video request terminal which requests video forwarding for the first time, forwarding the subsequent one or more frames of video frames of the video frames pointed by the forwarding pointer corresponding to the video request terminal, and moving the pointed position of the forwarding pointer corresponding to the video request terminal backwards by the position of the corresponding number of the forwarded video frames.
According to the technical scheme of the embodiment, after the key frame forwarding when the video request terminal requests the video for the first time is completed, the subsequent video frames can be continuously forwarded, the continuous forwarding of the video frames is completed, and the continuous receiving and playing of the video frames of the video request terminal are ensured.
In an embodiment, when the subsequent one or more video frames of the video frame pointed by the forwarding pointer corresponding to the video request terminal are forwarded to the video request terminal, the number of the forwarded video frames is set according to the downlink bandwidth limit of the video request terminal.
According to the technical scheme of the embodiment, when the video frame is forwarded to the video request terminal, the video frame forwarded to the video request terminal is set according to the downlink bandwidth of the current video request terminal, so that the downlink bandwidth of the video request terminal can be flexibly adapted, and the efficiency and quality of the forwarded video frame received by the video request terminal are moderately improved while the fluency of the video frame received by the video request terminal is ensured.
In one embodiment, the video requesting terminal includes a plurality of video requesting terminals; the buffer is provided with a forwarding pointer aiming at each video request terminal, and the pointing position of each forwarding pointer is independent and is used for pointing to the video frame which is newly forwarded by the corresponding video request terminal.
According to the technical scheme of the embodiment, the buffer respectively sets an independent forwarding pointer for each video request terminal, the video frame forwarding processing of each video request terminal can be relatively independent, when the server forwards the video frames to each video request terminal, the number of frames for sending the video frames to each video request terminal each time can be adjusted in real time according to the downlink bandwidth of each video request terminal, and the video frames with different numbers can be sent to different video request terminals according to different downlink bandwidths of the different video request terminals, so that the video frame forwarding is more flexible and efficient.
A video frame buffering apparatus, comprising:
the video frame receiving module is used for receiving video frame data of the video sharing terminal;
the first key frame judging module is used for judging whether the received video frame is a key frame;
the first video frame buffer module is used for clearing the video frame data in the buffer if the received video frame is a key frame, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
and the second video frame caching module is used for shifting the pointing position of the tail pointer by one bit backwards and storing the received video frame into the pointing position of the tail pointer in the cache if the received video frame is not the key frame.
According to the video frame caching device, the video frames of the video sharing terminal are stored in the cache for forwarding processing, and the video sharing terminal only needs to send one piece of video frame data to the server, so that the phenomenon that the video frame forwarding display is abnormal due to network congestion caused by the fact that the video sharing terminal sends the video frames to a plurality of video request terminals is avoided. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
A forwarding apparatus for video frames, comprising the buffering apparatus for video frames as in any of the above embodiments, further comprising:
the forwarding request receiving module is used for receiving a video frame forwarding request of a video request terminal;
the first request judging module is used for judging whether the video request terminal is a video request terminal for first requesting video forwarding;
the second key frame judgment module is used for judging whether the video frame pointed by the head pointer of the current buffer is a key frame or not if the video request terminal is a video request terminal which requests video forwarding for the first time;
the first video frame forwarding module is used for forwarding the key frame to the video request terminal if the video frame pointed by the head pointer is the key frame, and updating the pointed position of the forwarding pointer corresponding to the video request terminal to be the same as the pointed position of the head pointer;
and the key frame request module is used for sending a key frame request to the video sharing terminal if the video frame pointed by the head pointer is not the key frame.
According to the forwarding device of the video frame, by the video frame caching method of any embodiment, the video frame of the video sharing terminal is stored in the buffer, when a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the key frame cache exceeds a period of time, and the situation that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the following steps when executing the computer program:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
When the processor of the computer device executes the program, the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer for forwarding, and the video sharing terminal only needs to send one piece of video frame data to the server, thereby avoiding abnormal forwarding and display of the video frames due to network congestion caused by the video sharing terminal sending the video frames to a plurality of video request terminals. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the following steps when executing the computer program:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
When the processor of the computer equipment executes the program, the steps are realized, so that the video frames of the video sharing terminal can be stored in the buffer, when new key frames are received, the video frames in the buffer are cleared, the key frames are stored, only one key frame is stored in the buffer at the same time, when the video frames are forwarded, the key frames are re-requested only when the key frame buffer exceeds a period of time, and the condition that the key frames are frequently requested can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
A computer-readable storage medium, on which a computer program is stored which, when executed by a processor, carries out the steps of:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
The computer readable storage medium stores the computer program, and the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer for forwarding, and the video sharing terminal only needs to send one piece of video frame data to the server, thereby avoiding network congestion caused by sending the video frames to a plurality of video request terminals by the video sharing terminal, so as to avoid abnormal forwarding and displaying of the video frames. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
A computer-readable storage medium, on which a computer program is stored which, when executed by a processor, carries out the steps of:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
The computer readable storage medium stores the computer program, and the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer, when a new key frame is received, the video frames in the buffer are cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the key frame buffer exceeds a period of time, and the situation that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
Drawings
FIG. 1 is a diagram of an exemplary embodiment of a method for buffering video frames and a method for forwarding video frames;
FIG. 2 is a flow chart illustrating a method for buffering video frames according to an embodiment;
FIG. 3 is a flowchart illustrating a method for forwarding video frames according to an embodiment;
FIG. 4 is a diagram of a ring buffer in one embodiment;
FIG. 5 is a diagram of a ring buffer in another embodiment;
FIG. 6 is a diagram of a ring buffer in yet another embodiment;
FIG. 7 is a flowchart illustrating a method for buffering video frames according to an embodiment;
FIG. 8 is a flowchart illustrating a method for forwarding video frames according to an embodiment;
FIG. 9 is a block diagram of an exemplary video frame buffer apparatus;
FIG. 10 is a block diagram showing a configuration of a video frame forwarding apparatus according to an embodiment;
FIG. 11 is a diagram illustrating an internal structure of a computer device in one embodiment.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The video frame caching method and the video forwarding method provided by the invention can be applied to the application environment shown in fig. 1. Among them, the video sharing terminal 101 and the video requesting terminal 102 communicate with the server 103 through a network. The video sharing terminal 101 sends a video frame to the server 103, the server 103 caches the received video frame, the video request terminal 102 sends a video frame request to the server 103, and the server 103 forwards the cached video frame to the corresponding video request terminal 101 after receiving the video frame request. The video sharing terminal 101 and the video requesting terminal 102 may be, but not limited to, various personal computers, notebook computers, smart phones, tablet computers, and portable wearable devices, and the server 103 may be implemented by an independent server or a server cluster formed by a plurality of servers.
In one embodiment, as shown in fig. 2, a method for buffering video frames is provided, which is described by taking the method as an example applied to the server in fig. 1, and includes the following steps:
s210, receiving a video frame of a video sharing terminal;
the video sharing terminal sends a set number of shared video frames to the server at intervals according to a set frequency, and in the step, the server receives the video frames sent by the video sharing terminal.
S220, judging whether the received video frame is a key frame;
in this step, the server determines whether the currently received video frame is a key frame.
S230, if the received video frame is a key frame, removing the video frame data in the buffer, storing the key frame in the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
the buffer is provided with a head pointer and a tail pointer, the head pointer is used for pointing to the initial position of the video frame buffered in the buffer, and the tail pointer is used for pointing to the end position of the video frame buffered in the buffer.
S240, if the received video frame is not the key frame, the pointing position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointing position of the tail pointer in the buffer.
In this step, if the video frame received by the processor is not a key frame, the position pointed by the tail pointer is shifted backward by one bit, and the received video frame is stored in the buffer at the position pointed by the tail pointer, so that the received video frame is stored at the tail of the stored video frame.
According to the video frame caching method, the video frames of the video sharing terminal are stored in the cache for forwarding processing, and the video sharing terminal only needs to send one piece of video frame data to the server, so that the phenomenon that the video frame forwarding display is abnormal due to network congestion caused by the fact that the video sharing terminal sends the video frames to a plurality of video request terminals is avoided. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
In one embodiment, after determining whether the received video frame is a key frame at S220, the method further includes:
and S250, if the received video frame is not the key frame, traversing the video frames in the buffer from the video frame pointed by the head pointer, deleting the video frames of which the buffer time exceeds a set time threshold, and moving the pointed position of the head pointer backwards to delete the position of the corresponding number of the video frames.
The set time threshold is a decision threshold for forwarding overtime, and specific values thereof can be set according to actual needs.
According to the technical scheme of the embodiment, when the non-key frame is received, the video frame with overtime cache in the cache is further deleted, the condition that the cached video frame exceeds the set time threshold value is avoided, and the real-time performance of the forwarded video frame is guaranteed.
Specifically, the buffer may be different types of buffers, and in one embodiment, the buffer is an annular buffer, and the buffer includes a plurality of storage sites connected end to end, where each site corresponds to a storage location of a frame of video frame;
the buffer is provided with a head pointer and a tail pointer, the head pointer is used for pointing to the key frame stored in the buffer when the key frame is stored in the buffer, and the tail pointer is used for pointing to the latest video frame stored in the buffer.
According to the technical scheme of the embodiment, the buffer is set to be an annular buffer and comprises a plurality of storage sites which are connected end to end, each site corresponds to a storage position of one frame of video frame, the video frames cached by the annular buffer can be stored and read firstly, and the newly stored video frames cannot influence the positions of the stored video frames, so that the reading and positioning of the video frame data when the video frame data are cached and forwarded are facilitated.
In order to ensure that even if the video frame is not sent due to timeout, the buffer memory is not insufficient, in one embodiment, the memory size of the ring buffer is set to be larger than the product of the set time threshold and the frame rate. The maximum allowable timeout time for forwarding video frames can be controlled by setting the appropriate buffer size.
For example, as shown in fig. 4 to fig. 6, a ring buffer named as "cachedFrames" may be defined, the size of the ring buffer is MAX _ CACHED _ FRAMES, and each element buffered in the ring buffer is a frame of shared video FRAMES. Taking the time threshold for the timeout is set to 6 seconds, the buffer needs to store at least 6 seconds of video frames. Taking a frame rate of 30 Frames/Second (FPS) as an example, the data of the frame to be saved in 6 seconds is: if 30FPS × 6s is 180 FRAMES, the memory size MAX _ cache _ FRAMES of the register is set to be 180 FRAMES.
The storage sites in the ring buffer are numbered with numbers 1, 2, and 3 … … N in sequence, where N is MAX _ cache _ FRAMES. The Size is a storage location number corresponding to a latest frame of video frame of the buffer, a head pointer HeadIndex is defined and used for pointing to a start location of the buffer video frame, a tail pointer BackIndex is defined and used for pointing to an end location of the buffer video frame, and the BackIndex is Size. The value recorded by the head pointer and the tail pointer represents that the pointer points to the storage position of the corresponding number of the ring buffer. If the key frame exists in the buffer, the HeadIndex corresponds to the key frame all the time, and the BackIndex points to the video frame which arrives recently.
Taking the example of buffering 6 frames of video frames into the buffer, as shown in fig. 4, the HeadIndex is 1, and the BackIndex is 6; on the basis, if a buffered 3-frame video frame is newly added, as shown in fig. 5, the HeadIndex is 1, and the updated BackIndex is 9; further, if a video frame with 3 frames timeout is deleted, the updated HeadIndex is 4 and BackIndex is 9 as shown in fig. 6.
As shown in fig. 7, when the ring buffer buffers the received video frames, if the key frame is written, all the video frames originally stored in the buffer are removed, and then the key frame is inserted again. The HeadIndex and BackIndex at this time both point to the key frame; if the key frame is not written, traversal is started from the HeadIndex, and the video frames with the buffering time exceeding 6 seconds are deleted, and the HeadIndex correspondingly increases the number of deleted video frames. And then adding the newly arrived video frame at the tail of the buffered video frame, and adding 1 to the BackIndex.
In an embodiment, as shown in fig. 3, a method for forwarding video frames is provided, which is described by taking the method as an example applied to the server in fig. 1, and includes the following steps:
s200, receiving and caching a video frame of the video sharing terminal;
the step of S200 of receiving and buffering the video frame of the video sharing terminal may include the step of the video frame buffering method according to any of the above embodiments;
s310, receiving a video frame forwarding request of a video request terminal;
s320, judging whether the video request terminal is a video request terminal for requesting video forwarding for the first time;
s330, if the video request terminal is the video request terminal which requests video forwarding for the first time, judging whether a video frame pointed by a head pointer of a current buffer is a key frame;
s340, if the video frame pointed by the head pointer is a key frame, forwarding the key frame to the video request terminal, and updating the pointed position of the forwarding pointer corresponding to the video request terminal to be the same as the pointed position of the head pointer;
the buffer is provided with a corresponding forwarding pointer aiming at the video request terminal and used for pointing to a video frame which is sent to the corresponding video request terminal by the server last time.
And S350, if the video frame pointed by the head pointer is not the key frame, sending a key frame request to the video sharing terminal.
In this step, if the video frame pointed by the head pointer is not a key frame, which indicates that no key frame is stored in the current buffer, a key frame request may be sent to the video sharing terminal to actively request a key frame, and after this step, the server receives the requested key frame, and forwards the received key frame to the video requesting terminal, thereby completing forwarding of the key frame.
According to the method for forwarding the video frame, the video frame of the video sharing terminal is stored in the buffer through the method for buffering the video frame of any embodiment, when a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the buffering time of the key frame exceeds a period of time, and the condition that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
In one embodiment, the step of determining whether the video request terminal is a video request terminal that requests video forwarding for the first time at S320 further includes:
s360, if the video request terminal is not the video request terminal which requests video forwarding for the first time, forwarding the subsequent one or more frames of video frames of the video frames pointed by the forwarding pointer corresponding to the video request terminal, and moving the pointed position of the forwarding pointer corresponding to the video request terminal backwards by the position of the corresponding number of the forwarded video frames.
According to the technical scheme of the embodiment, after the key frame forwarding when the video request terminal requests the video for the first time is completed, the subsequent video frames can be continuously forwarded, the continuous forwarding of the video frames is completed, and the continuous receiving and playing of the video frames of the video request terminal are ensured.
In an embodiment, in S360, when the video frame of the one or more frames subsequent to the video frame pointed by the forwarding pointer corresponding to the video request terminal is forwarded to the video request terminal, the number of the forwarded video frames is set according to the downlink bandwidth limit of the video request terminal.
Specifically, the frame number of the forwarded video frames may be determined according to the size of the actual downlink bandwidth, for example, when the downlink bandwidth of the video request terminal is large, the video request terminal may be forwarded 3 frames of video frames at a time, and when the downlink bandwidth of the video request terminal is small, only 1 frame of video frame may be forwarded to the video request terminal at a time.
According to the technical scheme of the embodiment, when the video frame is forwarded to the video request terminal, the video frame forwarded to the video request terminal is set according to the downlink bandwidth of the current video request terminal, so that the downlink bandwidth of the video request terminal can be flexibly adapted, and the efficiency and quality of the forwarded video frame received by the video request terminal are moderately improved while the fluency of the video frame received by the video request terminal is ensured.
In the above technical solution of the present invention, the server may perform the video frame forwarding processing of a plurality of video request terminals at the same time. Accordingly, the buffer may set a forwarding pointer for recording a video frame forwarding position of the video request terminal for each video request terminal, and the manner of setting the forwarding pointer may be different.
In one embodiment, the video requesting terminal includes a plurality of video requesting terminals;
the buffer is provided with a forwarding pointer aiming at each video request terminal, and the pointing position of each forwarding pointer is independent and is used for pointing to the video frame which is newly forwarded by the corresponding video request terminal.
According to the technical scheme of the embodiment, the buffer respectively sets an independent forwarding pointer for each video request terminal, the video frame forwarding processing of each video request terminal can be relatively independent, when the server forwards the video frames to each video request terminal, the number of frames for sending the video frames to each video request terminal each time can be adjusted in real time according to the downlink bandwidth of each video request terminal, and the video frames with different numbers can be sent to different video request terminals according to different downlink bandwidths of the different video request terminals, so that the video frame forwarding is more flexible and efficient.
For example, taking the example that the buffer sets an independent forwarding pointer lastSendIndex for each video request terminal, a value recorded in the lastSendIndex represents a storage location corresponding to a video frame last sent by the server to the video request terminal.
As shown in fig. 8, when video frame forwarding processing is performed, taking one of the video request terminals a as an example, a forwarding pointer corresponding to the video request terminal a is lastsendindex a, if the video request terminal a is a video request terminal that requests forwarding for the first time, it is first determined whether a HeadIndex point is a key frame, and if the video request terminal a is not a key frame, a key frame is requested from a video sharing terminal and the requested key frame is forwarded to the video request terminal a. If the key frame is the key frame, the key frame pointed by the HeadIndex is forwarded to the video request terminal A, and lastSendIndex A is updated to HeadIndex.
And if the video request terminal A is not the video request terminal which requests forwarding for the first time, forwarding the next frame of video frame pointed by the lastSendIndexA, and updating the lastSendIndexA to increase by 1.
It should be understood that, although the steps in the above-described embodiments are arranged in order of numbers, the steps are not necessarily performed in order of numbers. The steps are not performed in the exact order shown and described, and may be performed in other orders, unless explicitly stated otherwise. Moreover, at least a portion of the steps in the above embodiments may include multiple sub-steps or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, and the order of performing the sub-steps or stages is not necessarily sequential, but may be performed alternately or alternately with other steps or at least a portion of the sub-steps or stages of other steps.
In one embodiment, as shown in fig. 9, there is provided a buffering apparatus 900 for video frames, comprising:
a video frame receiving module 910, configured to receive video frame data of the video sharing terminal;
a first key frame determining module 920, configured to determine whether a received video frame is a key frame;
a first video frame buffer module 930, configured to, if the received video frame is a key frame, clear video frame data in the buffer, store the key frame in the buffer, and set pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
the second video frame buffer module 940 is configured to, if the received video frame is not a key frame, shift the position pointed by the tail pointer by one bit, and store the received video frame in the buffer where the tail pointer points.
According to the video frame caching device, the video frames of the video sharing terminal are stored in the cache for forwarding processing, and the video sharing terminal only needs to send one piece of video frame data to the server, so that the phenomenon that the video frame forwarding display is abnormal due to network congestion caused by the fact that the video sharing terminal sends the video frames to a plurality of video request terminals is avoided. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
In one embodiment, the second video frame buffer module 940 is further configured to:
and if the received video frame is not the key frame, traversing the video frames in the buffer from the video frame pointed by the head pointer, deleting the video frames of which the buffer time exceeds a set time threshold, and moving the pointed position of the head pointer backwards to delete the position of the corresponding number of the video frames.
In one embodiment, the buffer is a ring buffer, and the buffer comprises a plurality of storage sites connected end to end, wherein each site corresponds to a storage location of a frame of video frame;
the buffer is provided with a head pointer and a tail pointer, the head pointer is used for pointing to the key frame stored in the buffer when the key frame is stored in the buffer, and the tail pointer is used for pointing to the latest video frame stored in the buffer.
In one embodiment, the memory size of the ring buffer is set to be larger than the product of the set time threshold and the frame rate.
In an embodiment, as shown in fig. 10, there is provided a forwarding apparatus 1000 for video frames, including the buffering apparatus 900 for video frames according to any of the above embodiments, further including:
a forwarding request receiving module 1010, configured to receive a video frame forwarding request of a video request terminal;
a first request determining module 1020, configured to determine whether the video request terminal is a video request terminal that first requests video forwarding;
a second key frame determining module 1030, configured to determine whether a video frame pointed by a head pointer of a current buffer is a key frame if the video request terminal is a video request terminal that first requests video forwarding;
a first video frame forwarding module 1040, configured to forward, if the video frame pointed by the head pointer is a key frame, the key frame to the video request terminal, and update a pointed position of a forwarding pointer corresponding to the video request terminal to be the same as a pointed position of the head pointer;
a key frame request module 1050, configured to send a key frame request to the video sharing terminal if the video frame pointed by the head pointer is not a key frame.
According to the forwarding device of the video frame, by the video frame caching method of any embodiment, the video frame of the video sharing terminal is stored in the buffer, when a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the key frame cache exceeds a period of time, and the situation that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
In one embodiment, the apparatus 1000 for forwarding video frames further comprises:
and the second video frame forwarding module is used for forwarding one or more subsequent video frames of the video frames pointed by the forwarding pointer corresponding to the video request terminal and shifting the pointed position of the forwarding pointer corresponding to the video request terminal backwards by the position of the corresponding number of the forwarded video frames if the video request terminal is not the video request terminal which requests video forwarding for the first time.
In an embodiment, the second video frame forwarding module is further configured to, when forwarding a video frame or video frames subsequent to the video frame pointed by the forwarding pointer corresponding to the video request terminal, set the number of the forwarded video frames according to a downlink bandwidth limit of the video request terminal.
In one embodiment, the video requesting terminal includes a plurality of video requesting terminals;
the buffer is respectively provided with a forwarding pointer aiming at each video request terminal, and the pointing position of each forwarding pointer is independent and is used for pointing to the video frame which is newly forwarded by the corresponding video request terminal;
the forwarding device of the video frame of the present invention corresponds to the forwarding method of the video frame of the present invention one to one, and the technical features and the advantageous effects described in the embodiments of the forwarding method of the video frame are all applicable to the embodiments of the forwarding device of the video frame, which is hereby stated.
In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as shown in fig. 11. The computer device includes a processor, a memory, and a network interface connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device comprises a nonvolatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of an operating system and computer programs in the non-volatile storage medium. The network interface of the computer device is used for communicating with an external video request terminal through network connection. The computer program is executed by a processor to implement a method of buffering video frames or a method of forwarding video frames.
Those skilled in the art will appreciate that the architecture shown in fig. 11 is merely a block diagram of some of the structures associated with the inventive arrangements and is not intended to limit the computing devices to which the inventive arrangements may be applied, as a particular computing device may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
In one embodiment, a computer device is provided, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor implementing the following steps when executing the computer program:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
When the processor of the computer device executes the program, the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer for forwarding, and the video sharing terminal only needs to send one piece of video frame data to the server, thereby avoiding abnormal forwarding and display of the video frames due to network congestion caused by the video sharing terminal sending the video frames to a plurality of video request terminals. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
In one embodiment, a computer device is provided, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor implementing the following steps when executing the computer program:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
When the processor of the computer equipment executes the program, the steps are realized, so that the video frames of the video sharing terminal can be stored in the buffer, when new key frames are received, the video frames in the buffer are cleared, the key frames are stored, only one key frame is stored in the buffer at the same time, when the video frames are forwarded, the key frames are re-requested only when the key frame buffer exceeds a period of time, and the condition that the key frames are frequently requested can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
In the computer device provided by the embodiment of the present invention, the processor executable instruction is not limited to the operation of the video frame caching method or the video frame forwarding method described above, and may also perform related operations in the video frame caching method or the video frame forwarding method provided by any embodiment of the present invention, and have corresponding functions and beneficial effects.
In one embodiment, a computer-readable storage medium is provided, having a computer program stored thereon, which when executed by a processor, performs the steps of:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
The computer readable storage medium stores the computer program, and the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer for forwarding, and the video sharing terminal only needs to send one piece of video frame data to the server, thereby avoiding network congestion caused by sending the video frames to a plurality of video request terminals by the video sharing terminal, so as to avoid abnormal forwarding and displaying of the video frames. When a new key frame is received, the video frame in the buffer is cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, the real-time performance of the video frame stored in the buffer is guaranteed, the occupation of buffer resources can be reduced, and the buffer efficiency is improved.
In one embodiment, a computer-readable storage medium is provided, having a computer program stored thereon, which when executed by a processor, performs the steps of:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
The computer readable storage medium stores the computer program, and the steps are implemented, so that the video frames of the video sharing terminal can be stored in the buffer, when a new key frame is received, the video frames in the buffer are cleared, the key frame is stored, only one key frame is stored in the buffer at the same time, when the video frame is forwarded, the key frame is requested again only when the key frame buffer exceeds a period of time, and the situation that the key frame is requested frequently can be effectively avoided. When a new video request terminal is added, the new member is forwarded from the key frame, so that the newly added video request terminal can immediately display the forwarded video, and the forwarding efficiency and stability of the video frame are improved.
In the computer-readable storage medium provided by the embodiment of the present invention, the processor executable instructions are not limited to the operations of the video frame caching method or the video frame forwarding method described above, and may also perform related operations in the video frame caching method or the video frame forwarding method provided by any embodiment of the present invention, and have corresponding functions and advantages.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by hardware instructions of a computer program, which can be stored in a non-volatile computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. Any reference to memory, storage, databases, or other media used in embodiments provided herein may include non-volatile and/or volatile memory. Non-volatile memory can include read-only memory (ROM), Programmable ROM (PROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), Rambus Direct RAM (RDRAM), direct bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
The technical features of the above embodiments can be arbitrarily combined, and for the sake of brevity, all possible combinations of the technical features in the above embodiments are not described, but should be considered as the scope of the present specification as long as there is no contradiction between the combinations of the technical features.
The above-mentioned embodiments only express several embodiments of the present invention, and the description thereof is more specific and detailed, but not construed as limiting the scope of the invention. It should be noted that, for a person skilled in the art, several variations and modifications can be made without departing from the inventive concept, which falls within the scope of the present invention. Therefore, the protection scope of the present patent shall be subject to the appended claims.
Claims (14)
1. A method for buffering video frames, comprising:
receiving a video frame of a video sharing terminal;
if the received video frame is a key frame, clearing the video frame data in the buffer, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
if the received video frame is not the key frame, the pointed position of the tail pointer is shifted backwards by one bit, and the received video frame is stored in the pointed position of the tail pointer in the buffer.
2. The method for buffering video frames according to claim 1, further comprising:
and if the received video frame is not the key frame, traversing the video frames in the buffer from the video frame pointed by the head pointer, deleting the video frames of which the buffer time exceeds a set time threshold, and moving the pointed position of the head pointer backwards to delete the position of the corresponding number of the video frames.
3. The method according to claim 1 or 2, wherein the buffer is a ring buffer, the buffer comprises a plurality of storage sites connected end to end, and each site corresponds to a storage location of a frame of video frames;
the buffer is provided with a head pointer and a tail pointer, the head pointer is used for pointing to the key frame stored in the buffer when the key frame is stored in the buffer, and the tail pointer is used for pointing to the latest video frame stored in the buffer.
4. The method according to claim 1 or 2, wherein the memory size of the ring buffer is set to be larger than the product of the set time threshold and the frame rate.
5. A forwarding method of video frames, comprising the steps of the buffering method of video frames according to any one of claims 1 to 4, further comprising:
receiving a video frame forwarding request of a video request terminal;
if the video request terminal is a video request terminal which requests video forwarding for the first time, judging whether a video frame pointed by a head pointer of a current buffer is a key frame;
if the video frame pointed by the head pointer is a key frame, forwarding the key frame to the video request terminal, and updating the pointed position of the forwarding pointer corresponding to the video request terminal to be the same as the pointed position of the head pointer;
and if the video frame pointed by the head pointer is not the key frame, sending a key frame request to the video sharing terminal.
6. The method for forwarding video frames according to claim 5, further comprising:
if the video request terminal is not the video request terminal which requests video forwarding for the first time, forwarding the subsequent one or more frames of video frames of the video frames pointed by the forwarding pointer corresponding to the video request terminal, and moving the pointed position of the forwarding pointer corresponding to the video request terminal backwards by the position of the corresponding number of the forwarded video frames.
7. The method according to claim 6, wherein when the video frame or frames subsequent to the video frame pointed by the forwarding pointer corresponding to the video request terminal is forwarded to the video request terminal, the number of the forwarded video frames is set according to a downlink bandwidth limit of the video request terminal.
8. The method according to any one of claims 5 to 7, wherein the video request terminal includes a plurality of video request terminals;
the buffer is provided with a forwarding pointer aiming at each video request terminal, and the pointing position of each forwarding pointer is independent and is used for pointing to the video frame which is newly forwarded by the corresponding video request terminal.
9. An apparatus for buffering video frames, comprising:
the video frame receiving module is used for receiving video frame data of the video sharing terminal;
the first video frame buffer module is used for clearing the video frame data in the buffer if the received video frame is a key frame, storing the key frame into the buffer, and setting the pointing positions of a head pointer and a tail pointer of the buffer to point to the key frame;
and the second video frame caching module is used for shifting the pointing position of the tail pointer by one bit backwards and storing the received video frame into the pointing position of the tail pointer in the cache if the received video frame is not the key frame.
10. A forwarding apparatus of video frames, comprising the buffering apparatus of video frames according to claim 8, further comprising:
the forwarding request receiving module is used for receiving a video frame forwarding request of a video request terminal;
the second key frame judgment module is used for judging whether the video frame pointed by the head pointer in the current buffer is a key frame or not if the video request terminal is a video request terminal for video forwarding for the first time;
the first video frame forwarding module is used for forwarding the key frame to the video request terminal if the video frame pointed by the head pointer is the key frame, and updating the pointed position of the forwarding pointer corresponding to the video request terminal to be the same as the pointed position of the head pointer;
and the key frame request module is used for sending a key frame request to the video sharing terminal if the video frame pointed by the head pointer is not the key frame.
11. Computer device comprising a memory, a processor and a computer program stored on said memory and executable on said processor, characterized in that said processor, when executing said computer program, implements the steps of the method for buffering video frames according to any of claims 1 to 4.
12. Computer device comprising a memory, a processor and a computer program stored on said memory and executable on said processor, characterized in that said processor implements the steps of the method for forwarding video frames according to any of claims 5 to 8 when executing said computer program.
13. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method for buffering video frames according to any one of claims 1 to 4.
14. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method for forwarding video frames according to any one of claims 5 to 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810872492.1A CN110798734A (en) | 2018-08-02 | 2018-08-02 | Video frame caching and forwarding method and device and computer equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810872492.1A CN110798734A (en) | 2018-08-02 | 2018-08-02 | Video frame caching and forwarding method and device and computer equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110798734A true CN110798734A (en) | 2020-02-14 |
Family
ID=69425132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810872492.1A Pending CN110798734A (en) | 2018-08-02 | 2018-08-02 | Video frame caching and forwarding method and device and computer equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798734A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614997A (en) * | 2020-05-11 | 2020-09-01 | 浙江大华技术股份有限公司 | Far-end video playback method, device, equipment and medium |
CN113132669A (en) * | 2021-04-22 | 2021-07-16 | 睿云联(厦门)网络通讯技术有限公司 | WebRTC (Web real-time communication protocol) based weak network environment video quality improvement method, system and storage medium |
CN113242446A (en) * | 2021-04-30 | 2021-08-10 | 北京字节跳动网络技术有限公司 | Video frame caching method, video frame forwarding method, communication server and program product |
CN116055810A (en) * | 2023-01-17 | 2023-05-02 | 阿里云计算有限公司 | Audio and video playing method, device and system, electronic equipment and storage medium |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266637A (en) * | 2001-07-06 | 2008-09-17 | 诺基亚有限公司 | Digital rights management in a mobile communications environment |
CN101383960A (en) * | 2008-10-30 | 2009-03-11 | 中兴通讯股份有限公司 | Mobile phone television service implementing method, terminal and adopted data buffering method |
CN102469357A (en) * | 2010-11-18 | 2012-05-23 | 深圳创维数字技术股份有限公司 | Method and system for storing user operation data and receiving terminal of digital television |
US20120147122A1 (en) * | 2009-08-31 | 2012-06-14 | Zte Corporation | Video data receiving and sending systems for videophone and video data processing method thereof |
CN102857730A (en) * | 2012-08-23 | 2013-01-02 | 苏州阔地网络科技有限公司 | Method and system for caching frame data |
CN102866771A (en) * | 2011-07-07 | 2013-01-09 | 瑞斯康达科技发展股份有限公司 | Method for interacting with video terminal equipment, external control platform and remote control |
CN103475902A (en) * | 2013-09-06 | 2013-12-25 | 同观科技(深圳)有限公司 | Video coding and network transmission method and video forwarding server |
CN103533356A (en) * | 2013-10-10 | 2014-01-22 | 深圳市智美达科技有限公司 | Video data transmission method and device |
CN103678167A (en) * | 2012-09-12 | 2014-03-26 | 想象力科技有限公司 | Dynamically resizable circular buffers |
CN104714832A (en) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | Buffer management method used for airborne data network asynchronous data interaction area |
CN105245912A (en) * | 2015-10-21 | 2016-01-13 | 东方网力科技股份有限公司 | Methods and devices for caching video data and reading video data |
CN105519121A (en) * | 2014-06-27 | 2016-04-20 | 北京新媒传信科技有限公司 | Method for routing key frame and media server |
CN106488273A (en) * | 2016-10-10 | 2017-03-08 | 广州酷狗计算机科技有限公司 | A kind of method and apparatus of transmission live video |
CN106534889A (en) * | 2016-11-15 | 2017-03-22 | 北京工商大学 | Real-time streaming media multipath forwarding control method based on loop buffer |
CN106998485A (en) * | 2016-01-25 | 2017-08-01 | 百度在线网络技术(北京)有限公司 | Net cast method and device |
-
2018
- 2018-08-02 CN CN201810872492.1A patent/CN110798734A/en active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266637A (en) * | 2001-07-06 | 2008-09-17 | 诺基亚有限公司 | Digital rights management in a mobile communications environment |
CN101383960A (en) * | 2008-10-30 | 2009-03-11 | 中兴通讯股份有限公司 | Mobile phone television service implementing method, terminal and adopted data buffering method |
US20120147122A1 (en) * | 2009-08-31 | 2012-06-14 | Zte Corporation | Video data receiving and sending systems for videophone and video data processing method thereof |
CN102469357A (en) * | 2010-11-18 | 2012-05-23 | 深圳创维数字技术股份有限公司 | Method and system for storing user operation data and receiving terminal of digital television |
CN102866771A (en) * | 2011-07-07 | 2013-01-09 | 瑞斯康达科技发展股份有限公司 | Method for interacting with video terminal equipment, external control platform and remote control |
CN102857730A (en) * | 2012-08-23 | 2013-01-02 | 苏州阔地网络科技有限公司 | Method and system for caching frame data |
CN103678167A (en) * | 2012-09-12 | 2014-03-26 | 想象力科技有限公司 | Dynamically resizable circular buffers |
CN103475902A (en) * | 2013-09-06 | 2013-12-25 | 同观科技(深圳)有限公司 | Video coding and network transmission method and video forwarding server |
CN103533356A (en) * | 2013-10-10 | 2014-01-22 | 深圳市智美达科技有限公司 | Video data transmission method and device |
CN104714832A (en) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | Buffer management method used for airborne data network asynchronous data interaction area |
CN105519121A (en) * | 2014-06-27 | 2016-04-20 | 北京新媒传信科技有限公司 | Method for routing key frame and media server |
CN105245912A (en) * | 2015-10-21 | 2016-01-13 | 东方网力科技股份有限公司 | Methods and devices for caching video data and reading video data |
CN106998485A (en) * | 2016-01-25 | 2017-08-01 | 百度在线网络技术(北京)有限公司 | Net cast method and device |
CN106488273A (en) * | 2016-10-10 | 2017-03-08 | 广州酷狗计算机科技有限公司 | A kind of method and apparatus of transmission live video |
CN106534889A (en) * | 2016-11-15 | 2017-03-22 | 北京工商大学 | Real-time streaming media multipath forwarding control method based on loop buffer |
Non-Patent Citations (1)
Title |
---|
柯敏毅,梅清, 中国水利水电出版社 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614997A (en) * | 2020-05-11 | 2020-09-01 | 浙江大华技术股份有限公司 | Far-end video playback method, device, equipment and medium |
CN111614997B (en) * | 2020-05-11 | 2022-04-15 | 浙江大华技术股份有限公司 | Far-end video playback method, device, equipment and medium |
CN113132669A (en) * | 2021-04-22 | 2021-07-16 | 睿云联(厦门)网络通讯技术有限公司 | WebRTC (Web real-time communication protocol) based weak network environment video quality improvement method, system and storage medium |
CN113242446A (en) * | 2021-04-30 | 2021-08-10 | 北京字节跳动网络技术有限公司 | Video frame caching method, video frame forwarding method, communication server and program product |
CN113242446B (en) * | 2021-04-30 | 2023-02-28 | 北京字节跳动网络技术有限公司 | Video frame caching method, video frame forwarding method, communication server and program product |
CN116055810A (en) * | 2023-01-17 | 2023-05-02 | 阿里云计算有限公司 | Audio and video playing method, device and system, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798734A (en) | Video frame caching and forwarding method and device and computer equipment | |
TW201025947A (en) | Apparatus and method for providing peer-to-peer proxy service with temporary storage management and traffic load balancing mechanism in peer-to-peer communication | |
CN112437329B (en) | Method, device and equipment for playing video and readable storage medium | |
CN107197359B (en) | Video file caching method and device | |
WO2018233539A1 (en) | Video processing method, computer storage medium, and device | |
US10341035B2 (en) | Method for continuously playing, on a client device, a content broadcast within a peer-to-peer network | |
WO2011024949A1 (en) | Content distribution device, content distribution method, and program | |
CN109067916B (en) | Online multimedia file downloading method and device and electronic equipment | |
US20080010660A1 (en) | Contents distribution system, contents distribution server, contents reproduction terminal, and contents distribution method | |
CN114968102B (en) | Data caching method, device, system, computer equipment and storage medium | |
US20060209819A1 (en) | Method and apparatus for efficiently expanding a P2P network | |
CN107231283B (en) | Message management method and device and message pre-reading method and device | |
KR101570933B1 (en) | System and method of node discovery using dynamic bloom filters for dds | |
US10225364B2 (en) | Content acquisition device and method | |
CN110740138A (en) | Data transmission method and device | |
CN111669431B (en) | Message transmission method and device, computer equipment and storage medium | |
CN117278628A (en) | Data transmission method, device, system, computer equipment and storage medium | |
CN116886770A (en) | Engineering truck data transmission method based on Internet of things and engineering truck | |
KR101525471B1 (en) | Method and system for providing video | |
WO2018090315A1 (en) | Data request processing method and cache system | |
CN111930696B (en) | File transmission processing method and system based on small program | |
CN111191082B (en) | Data management method, device, computer equipment and storage medium | |
CN113542388A (en) | Reliable data transmission method and device, computer equipment and storage medium | |
CN112861047B (en) | Document playback method and system for online platform | |
CN112118544B (en) | PoC signaling processing method, apparatus, electronic device and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |