CN106998485B - Video live broadcasting method and device - Google Patents

Video live broadcasting method and device Download PDF

Info

Publication number
CN106998485B
CN106998485B CN201610049571.3A CN201610049571A CN106998485B CN 106998485 B CN106998485 B CN 106998485B CN 201610049571 A CN201610049571 A CN 201610049571A CN 106998485 B CN106998485 B CN 106998485B
Authority
CN
China
Prior art keywords
video
frame
sequence
playing
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610049571.3A
Other languages
Chinese (zh)
Other versions
CN106998485A (en
Inventor
刘振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610049571.3A priority Critical patent/CN106998485B/en
Publication of CN106998485A publication Critical patent/CN106998485A/en
Application granted granted Critical
Publication of CN106998485B publication Critical patent/CN106998485B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The application discloses a video live broadcasting method and device. One embodiment of the method comprises: receiving a video frame sent by a video release terminal; buffering the video frame according to the data type of the video frame to obtain a buffer frame sequence; monitoring a video playing state of a video playing end, wherein the video playing state comprises a starting playing state and a playing state; and sending the buffer frame sequence to the video playing end for live broadcasting according to the video playing state. The embodiment first receives a video frame; then, buffering is carried out according to the type of the received video frame to obtain a buffering frame sequence, so that the playing timeliness of the video frame in the buffering frame sequence can be improved; then acquiring a video playing state of a video playing end; and finally, the buffer frame sequence is sent to the video playing end according to the video playing state, so that the video playing can be rapidly carried out by the playing end, and the real-time performance of video live broadcast is improved.

Description

Video live broadcasting method and device
Technical Field
The application relates to the technical field of information processing, in particular to the technical field of information display, and particularly relates to a live video broadcasting method and device.
Background
With the development of network technology, videos are widely popularized. Due to the intuitive visual experience, videos become a main mode for users to acquire information. Especially live video, the real-time and immersive visual experience can be brought to the user.
The current video can be classified into key frames (i.e., I-frames), forward reference frames (i.e., P-frames) by video frame classification. When the video playing end plays a live video, if a received key frame is started, instant playing can be realized, but if a forward reference frame is started, playing is in a waiting state, and the video can be played only when the key frame is received. Because the number of the forward reference frames in the video frames is usually greater than that of the key frames, the video playing delay is often encountered during live video broadcasting, and the playing real-time performance is poor.
Disclosure of Invention
The application provides a video live broadcast method and a video live broadcast device, which aim to solve the problems mentioned in the background technology.
In one aspect, the present application provides a video live broadcast method, including: receiving a video frame sent by a video release terminal; buffering the video frame according to the data type of the video frame to obtain a buffer frame sequence; monitoring a video playing state of a video playing end, wherein the video playing state comprises a starting playing state and a playing state; if the video playing state is a playing starting state and the currently received video frame is not a key frame, sending the buffer frame sequence to the video playing end for live broadcasting, and then sending the currently received video frame to the video playing end for live broadcasting, if the currently received video frame is a key frame, sending the currently received video frame to the video playing end for live broadcasting, and if the video playing state is a playing state, sending the currently received video frame to the video playing end for live broadcasting.
In some embodiments, the buffering the video frames according to the data type of the video frames into a sequence of buffered frames comprises: if the currently received video frame is a key frame, deleting the previous video frame in the buffer frame sequence, and putting the key frame into the buffer frame sequence, otherwise, putting the currently received video frame into the buffer frame sequence according to the receiving sequence.
In some embodiments, the sending the sequence of buffered frames to the video player for live broadcasting further comprises: modifying the timestamp of the first video frame in the sequence of buffered frames to the current time.
In a second aspect, the present application provides a video live broadcasting device, the device comprising: the video frame receiving unit is used for receiving a video frame sent by the video release terminal; a buffer frame sequence generating unit, configured to buffer the video frame according to the data type of the video frame to obtain a buffer frame sequence; the playing state monitoring unit is used for monitoring the video playing state of a video playing end, and the video playing state comprises a starting playing state and a playing state; and the buffer frame sequence sending unit comprises a buffer frame sequence sending subunit, which is used for sending the buffer frame sequence to the video playing end for live broadcast after the buffer frame sequence is sent to the video playing end when the video playing state is the playing starting state and the currently received video frame is not the key frame, sending the currently received video frame to the video playing end for live broadcast if the currently received video frame is the key frame, and sending the currently received video frame to the video playing end when the video playing state is the playing state.
In some embodiments, the buffered frame sequence generating unit includes: and the buffer frame sequence generating subunit is used for deleting the previous video frames in the buffer frame sequence and putting the key frames into the buffer frame sequence when the currently received video frames are the key frames, and otherwise, putting the currently received video frames into the buffer frame sequence according to the receiving sequence.
In some embodiments, the buffered frame sequence transmitting unit further comprises: and the time stamp modifying subunit is used for modifying the time stamp of the first video frame in the sequence of the buffered frames into the current time.
The method comprises the steps of firstly receiving a video frame; then, buffering is carried out according to the type of the received video frame to obtain a buffering frame sequence, so that the playing timeliness of the video frame in the buffering frame sequence can be improved; then acquiring a video playing state of a video playing end; and finally, the buffer frame sequence is sent to the video playing end according to the video playing state, so that the video playing can be rapidly carried out by the playing end, and the real-time performance of video live broadcast is improved.
Drawings
Other features, objects and advantages of the present application will become more apparent upon reading of the following detailed description of non-limiting embodiments thereof, made with reference to the accompanying drawings in which:
FIG. 1 is an exemplary system architecture diagram that may be employed therein in accordance with the present application;
FIG. 2 is a flow diagram of one embodiment of a video live method according to the present application;
FIG. 3 is a flow diagram of a video live method according to the present application;
FIG. 4 is a schematic structural diagram of an embodiment of a video live device according to the present application;
FIG. 5 is a block diagram of a computer system suitable for use in implementing a server according to embodiments of the present application.
Detailed Description
The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.
It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.
Fig. 1 illustrates an exemplary system architecture 100 to which embodiments of the video live method or video live apparatus of the present application may be applied.
As shown in fig. 1, the system architecture 100 may include terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 serves as a medium for providing communication links between the terminal devices 101, 102, 103 and the server 105. Network 104 may include various connection types, such as wired, wireless communication links, or fiber optic cables, to name a few.
The user may use the terminal devices 101, 102, 103 to interact with the server 105 via the network 104 to receive or send messages or the like. Various video applications and network applications, such as video broadcasters and browsers, may be installed on the terminal devices 101, 102, 103.
The terminal devices 101, 102, 103 may be various electronic devices having display screens and supporting video playback and browser video playback, including but not limited to smart phones, tablet computers, and the like.
The server 105 may be a server that provides various services, such as a video server that provides support for video broadcasters and browsers on the terminal devices 101, 102, 103. The video server may send the received video frames to the terminal devices 101, 102, 103, and play them through the video broadcasters and browsers on the terminal devices 101, 102, 103.
It should be noted that, the video live broadcast method provided in the embodiment of the present application is generally executed by the server 105, and accordingly, the video live broadcast apparatus is generally disposed in the server 105.
It should be understood that the number of terminal devices, networks, and servers in fig. 1 is merely illustrative. There may be any number of terminal devices, networks, and servers, as desired for implementation.
With continued reference to fig. 2, fig. 2 illustrates a flow diagram 200 of one embodiment of a video live method.
As shown in fig. 2, the video live broadcasting method of the present embodiment includes the following steps:
step 201, receiving a video frame sent by a video distribution end.
In this embodiment, an electronic device (for example, the server 105 in fig. 1) running on the video live broadcast method may be connected to a terminal device (for example, the terminal devices 101, 102, and 103 shown in fig. 1) in a wired connection manner or a wireless connection manner, so as to achieve the purpose of video live broadcast.
The video distribution terminal can be a television station, and can also be a terminal for video communication, such as a mobile phone, a tablet computer and a notebook computer. Generally, a video publishing terminal sends video frames in a wired or wireless manner, and the video frames are often influenced by network factors in the process of sending the video frames, so that the situations of time delay or frame drop and the like occur, and therefore, the real-time performance of the video frames is not high, and the time delay situation is common.
After receiving the video frame, the video server buffers the video frame and sends the buffered video frame to the video frame receiving end.
Step 202, buffering the video frame according to the data type of the video frame to obtain a sequence of buffered frames.
Existing video servers receive and store video frames. And after receiving a video frame request signal sent by a video frame receiving end, sending the buffered video frame to the video frame receiving end. The video frame can be divided into an I frame and a P frame (the video frame also comprises a B frame, and the B frame and the P frame can not realize video playing independently, so that the application does not excessively explain the B frame), wherein the I frame is a full-frame compression coding frame, and a complete image can be reconstructed only by using data of the I frame during decoding. The P frame is a coded frame which is 1-2 frames away from the back of the I frame, belongs to forward prediction interframe coding, only refers to the I frame or the P frame which is closest to the P frame in the front, and when decoding, a complete P frame image can be reconstructed only after the predicted value in the I frame and the prediction error are summed. It can be seen that the roles of I-frame and P-frame in the video playing process are different.
The existing video server generally buffers video frames according to the sequence of the received video frames, does not consider the functional characteristics that the video frames are I frames and P frames, and directly sends the buffered video frames to a video frame receiving end. This is an important reason for the delay of the live video. The buffer frame sequence of this embodiment is used to buffer video frames, and when the video server receives an I frame, the video server deletes a current video frame in the buffer frame sequence, and puts the received I frame into the buffer frame sequence, and when the video server receives a P frame, puts the P frame into the buffer frame sequence according to the receiving sequence. It can be seen that the buffered frame sequence of the present embodiment only includes an I-frame that was recently received by the video server. Therefore, the real-time performance of video live broadcast at the video frame receiving end can be ensured to the maximum extent.
In some optional implementations of this embodiment, in order to improve the real-time performance of the live video, step 202 may further include: if the currently received video frame is a key frame, deleting the previous video frame in the buffer frame sequence, and putting the key frame into the buffer frame sequence, otherwise, putting the currently received video frame into the buffer frame sequence according to the receiving sequence.
From the above analysis of the I frame and the P frame, the I frame can independently display the corresponding picture without depending on other video frames, and therefore, the I frame has a greater role in the video live broadcasting process. In order to improve the real-time performance of video live broadcast, the method of the embodiment analyzes the type of the received video frame, and when an I frame (key frame) is received, the I frame can be directly sent to a video frame receiving end, so that the real-time performance of video playing can be ensured to the maximum extent. At the same time, video frames buffered prior to receiving an I-frame may also be deleted. If the video frame receiver does not receive the video frame at this time, this puts the I frame into the sequence of buffered frames. When a P frame is received, the P frame can be played only depending on an I frame, and directly sending the P frame to a video frame receiving end causes video playing delay. P-frames can therefore be placed into the sequence of buffered frames in chronological order of reception.
Step 203, monitoring the video playing state of the video playing terminal.
The video playing state of the present embodiment includes a start playing state and a playing state. The video frame receiving end is converted into a state of receiving video frames from a state of not receiving video frames when the video server receives the current video frames, which is equivalent to entering the state of playing the video frames from the state of not receiving the video frames instantaneously; the playing state refers to a state that the video frame receiving end is already playing the video frame when the video server receives the current video frame.
As can be seen from the above analysis of the I frame, the P frame, and the video playing status, the video server can perform corresponding processing on the currently received I frame and P frame according to different video playing statuses, so as to improve the real-time performance of the live video broadcast.
In order to obtain the video playing state of the video frame receiving end, the video server may monitor the playing state of the video frame receiving end connected to the video server in real time, or may send a playing state request signal to the video frame receiving end at a set interval, and the specific manner of obtaining the video playing state depends on the actual situation.
And 204, sending the buffer frame sequence to the video playing end for live broadcasting according to the video playing state.
Generally, the video playing status of the video playing end can be divided into three types: firstly, a non-playing state; secondly, a playing state; and thirdly, starting a playing state. Wherein, the non-playing state can be disregarded; the playing state and the starting playing state both need good real-time performance, and for the playing state, the video server does not need to put the received current video frame into the buffer frame sequence, and the real-time performance of the live video can be ensured only by directly sending the current video frame to the video frame receiving end; for the playing starting state, the video server needs to perform buffering processing according to the type of the received current video frame, put the necessary video frame into the buffering frame sequence, and when the video frame receiving end is detected to be in the playing starting state, send the corresponding video frame to the video frame receiving end, so as to ensure the real-time performance of video live broadcast.
In some optional implementations of this embodiment, step 204 may include:
on one hand, if the video playing state is a playing starting state and the currently received video frame is not a key frame, sending the buffer frame sequence to the video playing end for live broadcasting, and then sending the currently received video frame to the video playing end, and if the currently received video frame is a key frame, sending the currently received video frame to the video playing end for live broadcasting;
if the video playing state is the starting playing state, the video server needs to send the received latest I frame to the video frame receiving end so as to ensure the real-time performance of the live video. If the currently received video frame is not a key frame, it indicates that there is a nearest I frame in the buffered frame sequence of the video server, the video frame in the buffered frame sequence is sent to the video frame receiving end, and the video server directly sends the subsequently received video frames (without considering the type of the video frame) to the video frame receiving end (at this time, the video frame does not need to be buffered); if the currently received video frame is an I frame, the I frame is directly sent to the video playing end for live broadcast without considering the video frames in the buffered frame sequence, and the video server directly sends the subsequently received video frames (without considering the types of the video frames) to the video frame receiving end.
On the other hand, if the video playing state is the playing state, the currently received video frame is sent to the video playing end for live broadcasting.
If the video frame is in the playing state, the video server does not need to buffer the received video frame, and the currently received video frame is sent to the video playing end for live broadcasting, so that the live broadcasting real-time performance can be ensured.
In some alternative implementations of the present embodiment, the video frames are all time-stamped to indicate temporal information of the video frames. The video frames in the sequence of buffered frames are not video frames received in real time but are previously received video frames. In order to improve the real-time performance of video live broadcast at the video frame receiving end, the video server can modify the timestamp of the video frame before buffering the video frame in the frame sequence, so as to prompt the video frame receiving end to play the video frame as soon as possible. Thus, step 204 may further include: modifying the timestamp of the first video frame in the sequence of buffered frames to the current time.
With continued reference to fig. 3, fig. 3 is a flow chart of a video live method according to the present embodiment. As can be seen from fig. 3, the video server analyzes the type of the received video frame, and performs corresponding processing on the video frame according to the type information; and then acquiring the video playing state of the video receiving terminal, and determining the video frame sent to the video receiving terminal according to the video playing state and the currently received video frame.
The method provided by the above embodiment of the present application receives a video frame first; then, buffering is carried out according to the type of the received video frame to obtain a buffering frame sequence, so that the playing timeliness of the video frame in the buffering frame sequence can be improved; then acquiring a video playing state of a video playing end; and finally, the buffer frame sequence is sent to the video playing end according to the video playing state, so that the video playing can be rapidly carried out by the playing end, and the real-time performance of video live broadcast is improved.
With further reference to fig. 4, as an implementation of the methods shown in the above-mentioned figures, the present application provides an embodiment of a live video broadcast apparatus, where the embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 2, and the apparatus may be specifically applied to various electronic devices.
As shown in fig. 4, the video live broadcasting apparatus 400 according to this embodiment includes: a video frame receiving unit 401, a buffer frame sequence generating unit 402, a play state monitoring unit 403, and a buffer frame sequence transmitting unit 404. The video frame receiving unit 401 is configured to receive a video frame sent from a video publishing terminal; the buffer frame sequence generating unit 402 is configured to buffer the video frame according to the data type of the video frame to obtain a buffer frame sequence; the playing state monitoring unit 403 is configured to monitor a video playing state of the video playing end, where the video playing state includes a starting playing state and a playing state; the buffer frame sequence sending unit 404 is configured to send the buffer frame sequence to the video playing end for live broadcasting according to the video playing state.
In this embodiment, the specific processing of the video frame receiving unit 401, the buffer frame sequence generating unit 402, the play status monitoring unit 403, and the buffer frame sequence sending unit 404 may refer to the related descriptions of step 201, step 202, step 203, and step 204 in the corresponding embodiment of fig. 2, which are not described herein again.
In some optional implementations of this embodiment, the buffered frame sequence generating unit 402 may include: a buffer frame sequence generating subunit (not shown in the figure), configured to delete a previous video frame in the buffer frame sequence and place the key frame in the buffer frame sequence when the currently received video frame is a key frame, and otherwise place the currently received video frame in the buffer frame sequence according to the receiving order.
In some optional implementations of this embodiment, the buffered frame sequence sending unit 404 may include: a buffer frame sequence sending subunit (not shown in the figure), configured to send the buffer frame sequence to the video playing end for live broadcast when the video playing state is a play start state and a currently received video frame is not a key frame, and then send the currently received video frame to the video playing end, if the currently received video frame is a key frame, send the currently received video frame to the video playing end for live broadcast, and when the video playing state is a play state, send the currently received video frame to the video playing end.
In some optional implementations of this embodiment, the buffered frame sequence sending unit 404 may include: a timestamp modification subunit (not shown) for modifying the timestamp of the first video frame in said sequence of buffered frames to the current time.
Referring now to FIG. 5, a block diagram of a computer system 500 suitable for use in implementing a server according to embodiments of the present application is shown.
As shown in fig. 5, the computer system 500 includes a Central Processing Unit (CPU)501 that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)502 or a program loaded from a storage section 508 into a Random Access Memory (RAM) 503. In the RAM 503, various programs and data necessary for the operation of the system 500 are also stored. The CPU 501, ROM 502, and RAM 503 are connected to each other via a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
The following components are connected to the I/O interface 505: an input portion 506 including a keyboard, a mouse, and the like; an output portion 507 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage portion 508 including a hard disk and the like; and a communication section 509 including a network interface card such as a LAN card, a modem, or the like. The communication section 509 performs communication processing via a network such as the internet. The driver 510 is also connected to the I/O interface 505 as necessary. A removable medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 510 as necessary, so that a computer program read out therefrom is mounted into the storage section 508 as necessary.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication section 509, and/or installed from the removable medium 511.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present application may be implemented by software or hardware. The described units may also be provided in a processor, and may be described as: a processor includes a video frame receiving unit, a buffer frame sequence generating unit, a play state monitoring unit, and a buffer frame sequence transmitting unit. The names of these units do not in some cases constitute a limitation on the unit itself, and for example, the play status monitoring unit may also be described as a "unit that monitors the play status".
As another aspect, the present application also provides a non-volatile computer storage medium, which may be the non-volatile computer storage medium included in the apparatus in the above-described embodiments; or it may be a non-volatile computer storage medium that exists separately and is not incorporated into the terminal. The non-transitory computer storage medium stores one or more programs that, when executed by a device, cause the device to: receiving a video frame sent by a video release terminal; buffering the video frame according to the data type of the video frame to obtain a buffer frame sequence; monitoring a video playing state of a video playing end, wherein the video playing state comprises a starting playing state and a playing state; and sending the buffer frame sequence to the video playing end for live broadcasting according to the video playing state.
The above description is only a preferred embodiment of the application and is illustrative of the principles of the technology employed. It will be appreciated by a person skilled in the art that the scope of the invention as referred to in the present application is not limited to the embodiments with a specific combination of the above-mentioned features, but also covers other embodiments with any combination of the above-mentioned features or their equivalents without departing from the inventive concept. For example, the above features may be replaced with (but not limited to) features having similar functions disclosed in the present application.

Claims (6)

1. A method for live video, the method comprising:
receiving a video frame sent by a video release terminal;
buffering the video frame according to the data type of the video frame to obtain a buffer frame sequence;
monitoring a video playing state of a video playing end, wherein the video playing state comprises a starting playing state and a playing state;
if the video playing state is a playing starting state and the currently received video frame is not a key frame, sending the buffer frame sequence to the video playing end for live broadcasting, and then sending the currently received video frame to the video playing end for live broadcasting, if the currently received video frame is a key frame, sending the currently received video frame to the video playing end for live broadcasting, and if the video playing state is a playing state, sending the currently received video frame to the video playing end for live broadcasting.
2. The method of claim 1, wherein buffering the video frame according to the data type of the video frame into a sequence of buffered frames comprises:
if the currently received video frame is a key frame, deleting the previous video frame in the buffer frame sequence, and putting the key frame into the buffer frame sequence, otherwise, putting the currently received video frame into the buffer frame sequence according to the receiving sequence.
3. The method of claim 1, wherein sending the sequence of buffered frames to the video player for live broadcast further comprises:
modifying the timestamp of the first video frame in the sequence of buffered frames to the current time.
4. A video live broadcasting apparatus, characterized in that the apparatus comprises:
the video frame receiving unit is used for receiving a video frame sent by a video publishing terminal;
a buffer frame sequence generating unit, configured to buffer the video frame according to the data type of the video frame to obtain a buffer frame sequence;
the playing state monitoring unit is used for monitoring the video playing state of a video playing end, and the video playing state comprises a starting playing state and a playing state;
and the buffer frame sequence sending unit comprises a buffer frame sequence sending subunit, which is used for sending the buffer frame sequence to the video playing end for live broadcast after the buffer frame sequence is sent to the video playing end when the video playing state is the playing starting state and the currently received video frame is not the key frame, sending the currently received video frame to the video playing end for live broadcast if the currently received video frame is the key frame, and sending the currently received video frame to the video playing end when the video playing state is the playing state.
5. The apparatus of claim 4, wherein the buffered frame sequence generating unit comprises:
and the buffer frame sequence generating subunit is used for deleting the previous video frames in the buffer frame sequence and putting the key frames into the buffer frame sequence when the currently received video frames are the key frames, and otherwise, putting the currently received video frames into the buffer frame sequence according to the receiving sequence.
6. The apparatus of claim 4, wherein the buffered frame sequence transmitting unit further comprises:
and the time stamp modifying subunit is used for modifying the time stamp of the first video frame in the sequence of the buffered frames into the current time.
CN201610049571.3A 2016-01-25 2016-01-25 Video live broadcasting method and device Active CN106998485B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610049571.3A CN106998485B (en) 2016-01-25 2016-01-25 Video live broadcasting method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610049571.3A CN106998485B (en) 2016-01-25 2016-01-25 Video live broadcasting method and device

Publications (2)

Publication Number Publication Date
CN106998485A CN106998485A (en) 2017-08-01
CN106998485B true CN106998485B (en) 2020-03-06

Family

ID=59428641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610049571.3A Active CN106998485B (en) 2016-01-25 2016-01-25 Video live broadcasting method and device

Country Status (1)

Country Link
CN (1) CN106998485B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566918B (en) * 2017-09-21 2019-08-13 中国电子科技集团公司第二十八研究所 A kind of low delay under video distribution scene takes the neutrel extraction of root
CN110798734A (en) * 2018-08-02 2020-02-14 广州视源电子科技股份有限公司 Video frame caching and forwarding method and device and computer equipment
CN109151492B (en) * 2018-09-29 2021-02-02 网宿科技股份有限公司 Quick start method and device for live video
CN111436009B (en) * 2019-01-11 2023-10-27 厦门雅迅网络股份有限公司 Real-time video stream transmission and display method and transmission and play system
CN111726657A (en) * 2019-03-18 2020-09-29 北京奇虎科技有限公司 Live video playing processing method and device and server
CN111294666B (en) * 2019-07-04 2022-07-01 杭州萤石软件有限公司 Video frame transmission method and method, device and system for determining video frame transmission delay
CN110784740A (en) * 2019-11-25 2020-02-11 北京三体云时代科技有限公司 Video processing method, device, server and readable storage medium
CN111182322B (en) * 2019-12-31 2021-04-06 北京达佳互联信息技术有限公司 Director control method and device, electronic equipment and storage medium
CN113905196B (en) * 2021-08-30 2024-05-07 浙江大华技术股份有限公司 Video frame management method, video recorder, and computer-readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101946518A (en) * 2007-12-28 2011-01-12 诺基亚公司 Methods, apparatuses, and computer program products for adaptive synchronized decoding of digital video
CN102857730A (en) * 2012-08-23 2013-01-02 苏州阔地网络科技有限公司 Method and system for caching frame data
CN103747287A (en) * 2014-01-13 2014-04-23 合一网络技术(北京)有限公司 Video playing speed regulation method and system applied to flash

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8254469B2 (en) * 2008-05-07 2012-08-28 Kiu Sha Management Liability Company Error concealment for frame loss in multiple description coding
CN101527834A (en) * 2009-03-26 2009-09-09 浙江大华技术股份有限公司 Wireless narrowband network video transmission method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101946518A (en) * 2007-12-28 2011-01-12 诺基亚公司 Methods, apparatuses, and computer program products for adaptive synchronized decoding of digital video
CN102857730A (en) * 2012-08-23 2013-01-02 苏州阔地网络科技有限公司 Method and system for caching frame data
CN103747287A (en) * 2014-01-13 2014-04-23 合一网络技术(北京)有限公司 Video playing speed regulation method and system applied to flash

Also Published As

Publication number Publication date
CN106998485A (en) 2017-08-01

Similar Documents

Publication Publication Date Title
CN106998485B (en) Video live broadcasting method and device
CN111010614A (en) Method, device, server and medium for displaying live caption
EP2924998A1 (en) Method, apparatus and system for acquiring playback data stream of real-time video communication
CN101656869A (en) Method, device and system for switching channels
CN112637661B (en) Video stream switching method and device, computer storage medium and electronic equipment
CN111726657A (en) Live video playing processing method and device and server
CN112423140A (en) Video playing method and device, electronic equipment and storage medium
CN112752115A (en) Live broadcast data transmission method, device, equipment and medium
CN111436009B (en) Real-time video stream transmission and display method and transmission and play system
CN110519640B (en) Video processing method, encoder, CDN server, decoder, device, and medium
CN102387187A (en) Server, client as well as method and system for remotely playing video file by using client
CN107690093B (en) Video playing method and device
CN111818383B (en) Video data generation method, system, device, electronic equipment and storage medium
CN113794942B (en) Method, apparatus, system, device and medium for switching view angle of free view angle video
CN113225585A (en) Video definition switching method and device, electronic equipment and storage medium
CN114567812A (en) Audio playing method, device, system, electronic equipment and storage medium
CN106612462B (en) Fast forward and fast backward processing method and terminal
CN113542856A (en) Reverse playing method, device, equipment and computer readable medium for online video
CN111478916B (en) Data transmission method, device and storage medium based on video stream
CN113259729B (en) Data switching method, server, system and storage medium
CN113242446B (en) Video frame caching method, video frame forwarding method, communication server and program product
CN116112476A (en) Multimedia playing method, system, equipment and storage medium of cloud desktop
CN112055174B (en) Video transmission method and device and computer readable storage medium
CN110798700B (en) Video processing method, video processing device, storage medium and electronic equipment
CN112073747A (en) Streaming media data preview method, user end equipment and relay server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant