CN115379251A - Transcoding method, device and system of live video stream and readable storage medium - Google Patents

Transcoding method, device and system of live video stream and readable storage medium Download PDF

Info

Publication number
CN115379251A
CN115379251A CN202210957660.3A CN202210957660A CN115379251A CN 115379251 A CN115379251 A CN 115379251A CN 202210957660 A CN202210957660 A CN 202210957660A CN 115379251 A CN115379251 A CN 115379251A
Authority
CN
China
Prior art keywords
computer
transcoding
video
live
frame rate
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
Application number
CN202210957660.3A
Other languages
Chinese (zh)
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 Shiye Network Technology Co ltd
Original Assignee
Beijing Shiye Network 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 Shiye Network Technology Co ltd filed Critical Beijing Shiye Network Technology Co ltd
Priority to CN202210957660.3A priority Critical patent/CN115379251A/en
Publication of CN115379251A publication Critical patent/CN115379251A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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
    • H04N21/2665Gathering content from different sources, e.g. Internet and satellite

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present disclosure provides a transcoding method, device, system and readable storage medium for live video stream, the method includes: in response to a transcoding request, slicing the received live video stream based on the picture group to obtain at least one video slice; selecting a target computer which meets the transcoding condition of the live video stream from a computer cluster; controlling the target computer to transcode the video slice to obtain a transcoded video slice; and packaging the transcoded video slices to obtain and output transcoded video live broadcast streams.

Description

Transcoding method, device and system of live video stream and readable storage medium
Technical Field
The present disclosure relates to the field of video processing technologies, and in particular, to a transcoding method of a live video stream, a transcoding device of a live video stream, a live transcoding system, and a computer-readable storage medium.
Background
With the development of science and the progress of society, modern equipment is gradually going into the lives of people, the modern equipment not only facilitates the lives of people, but also promotes the progress of human society.
The video transcoding is to convert a video code stream which has been compressed and encoded into another video code stream so as to adapt to different network bandwidths, different terminal processing capabilities and different user requirements. Transcoding is essentially a process of decoding first and then encoding, so the code stream before and after conversion may or may not conform to the same video encoding standard.
At present, a live transcoding system on the market needs to complete the real-time transcoding, and the transcoding of a traditional live video stream is usually completed by a single computer, so that the single computer can support the real-time transcoding of the live video stream.
However, if the data volume of the live video stream is large, a single computer may not be able to complete the real-time transcoding of the live video stream.
Disclosure of Invention
It is an object of embodiments of the present disclosure to provide a new solution to at least one of the above problems.
According to a first aspect of the present disclosure, a transcoding method of a live video stream is provided, including:
in response to the transcoding request, slicing the received live video stream based on the group of pictures to obtain at least one video slice;
selecting a target computer which meets the transcoding condition of the live video stream from a computer cluster;
controlling the target computer to transcode the video slices to obtain transcoded video slices;
and packaging the transcoded video slices to obtain and output transcoded video live broadcast streams.
Optionally, the selecting, from the computer cluster, a target computer that meets a transcoding condition of the live video stream includes:
acquiring performance parameters of computers in the computer cluster and quality parameters of the live video stream, wherein the performance parameters are parameters representing the highest video processing capacity of the computers, and the quality parameters are parameters representing the picture quality of the live video stream;
and selecting the target computer from the computer cluster according to the performance parameters and the quality parameters.
Optionally, the performance parameter comprises a first resolution, the quality parameter comprises a second resolution,
the selecting the target computer from the computer cluster according to the performance parameter and the quality parameter comprises:
selecting computers with the first resolution ratio greater than or equal to the second resolution ratio from the computer cluster as candidate computers;
and selecting the target computer from the candidate computers.
Optionally, the selecting the target computer from the candidate computers includes:
selecting a first frame rate meeting a quantity optimization condition as a target first frame rate according to the first frame rate and the second frame rate; wherein the quantity optimization condition is that the quantity of the target computers is less than or equal to a set value;
and selecting a candidate computer with a target first frame rate as the target computer according to the set value.
Optionally, the selecting the target computer from the candidate computers includes:
and selecting at least one candidate computer with the sum of the first frame rate larger than the second frame rate as the target computer.
Optionally, the method further includes:
acquiring transcoding information contained in the transcoding request;
recording the transcoding information in the video slice for reading by the target computer when transcoding the video slice.
Optionally, the controlling the target computer to transcode the video slice to obtain a transcoded video slice includes:
generating a first list of the video slices according to the time information of at least one frame of image in the video slices;
controlling the target computer to circularly read the video slices in the first list in turn under the condition of keeping the time information, and transcoding the read video slices to obtain transcoded video slices;
the packaging the transcoded video slice comprises:
and packaging the transcoded video slice based on the time information.
According to a second aspect of the present disclosure, there is provided a transcoding apparatus for a live video stream, including:
the slicing module is used for responding to the transcoding request, slicing the received live video stream based on the frame group to obtain at least one video slice;
the selecting module is used for selecting a target computer which meets the transcoding condition of the live video stream from the computer cluster;
the transcoding module is used for controlling the target computer to transcode the video slice to obtain a transcoded video slice;
and the packaging module is used for packaging the transcoded video slices to obtain and output transcoded video live broadcast streams.
According to a third aspect of the present disclosure, there is provided a live transcoding system, including:
a processor and a memory for storing instructions for controlling the processor to perform the method according to the first aspect of the present disclosure.
According to a fourth aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the method according to the first aspect of the present disclosure.
The method has the advantages that through the embodiment of the method, the received live video stream is sliced based on the group of pictures, the target computer selected from the computer cluster is used for transcoding the sliced video, the transcoded video slices are packaged, the live video stream can be sliced in a lossless mode through the self-adaptive slicing technology, the real-time transcoding does not depend on the performance of a single computer completely, the self-adaptive sliced video slices are distributed to the target computer selected from the computer cluster, the number of the target computers is expanded transversely, the real-time transcoding of the live video stream is achieved on the low-performance computer, and the resource dependence is reduced greatly.
Other features of the present disclosure and advantages thereof will become apparent from the following detailed description of exemplary embodiments thereof, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the disclosure and together with the description, serve to explain the principles of the disclosure.
Fig. 1 is a block diagram of one example of a hardware configuration of a live transcoding system that may be used to implement embodiments of the present disclosure.
Fig. 2 is a flowchart illustrating a transcoding method of a live video stream according to an embodiment of the present disclosure.
Fig. 3 is a block schematic diagram of transcoding of a live video stream according to an embodiment of the present disclosure.
Fig. 4 is a block schematic diagram of a live transcoding system according to an embodiment of the present disclosure.
Detailed Description
Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that: the relative arrangement of the components and steps, the numerical expressions, and numerical values set forth in these embodiments do not limit the scope of the present disclosure unless specifically stated otherwise.
The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses.
Techniques, methods, and apparatus known to those of ordinary skill in the relevant art may not be discussed in detail but are intended to be part of the specification where appropriate.
In all examples shown and discussed herein, any particular value should be construed as exemplary only and not as limiting. Thus, other examples of the exemplary embodiments may have different values.
It should be noted that: like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, it need not be discussed further in subsequent figures.
< hardware configuration >
Fig. 1 is a block diagram illustrating a hardware configuration of a live transcoding system 1000 in which an embodiment of the present disclosure may be implemented.
As shown in fig. 1, the live transcoding system 1000 may include a processor 1100, a memory 1200, an interface device 1300, a communication device 1400, a display device 1500, an input device 1600, a speaker 1700, a microphone 1800, and so forth. The processor 1100 may be a central processing unit CPU, a microprocessor MCU, or the like. The memory 1200 includes, for example, a ROM (read only memory), a RAM (random access memory), a nonvolatile memory such as a hard disk, and the like. The interface device 1300 includes, for example, any type of USB interface, headphone interface, or the like. The communication device 1400 is capable of wired or wireless communication, for example, and may specifically include Wifi communication, bluetooth communication, 2G/3G/4G/5G communication, and the like. The display device 1500 is, for example, a liquid crystal display panel, a touch panel, or the like. The input device 1600 may include, for example, a touch screen, a keyboard, a somatosensory input, and the like. A user can input/output voice information through the speaker 1700 and the microphone 1800.
In an embodiment of the present disclosure, the live transcoding system 1000 may be a computer, a computer cluster, a notebook computer, a tablet computer, or an electronic product such as a mobile phone.
The live transcoding system illustrated in fig. 1 is merely illustrative and is in no way meant to limit the disclosure, its applications, or uses. In an embodiment of the present disclosure, the memory 1200 of the live transcoding system 1000 is configured to store instructions for controlling the processor 1100 to operate to execute any one of the methods provided by the embodiments of the present disclosure. It should be understood by those skilled in the art that although a plurality of devices are shown for the live transcoding system 1000 in fig. 1, the present disclosure may only refer to some of the devices, for example, the live transcoding system 1000 only refers to the processor 1100 and the storage device 1200. The skilled person can design the instructions according to the disclosed solution of the present disclosure. How the instructions control the operation of the processor is well known in the art and will not be described in detail herein.
The live transcoding system 1000 illustrated in fig. 1 is merely illustrative and is in no way intended to limit the description, its applications, or uses.
Various embodiments and examples according to the present disclosure are described below with reference to the drawings.
< method example >
In this embodiment, a transcoding method for a live video stream is provided. The method may be implemented by a live transcoding system. The live transcoding system may be the live transcoding system 1000 as shown in fig. 1.
As shown in fig. 2, the method of the present embodiment may include the following steps S2100 to S2400:
step S2100, in response to the transcoding request, slices the received live video stream based on the group of pictures to obtain at least one video slice.
A Group of Pictures (GOP) is a Group of consecutive Pictures, and MPEG coding divides Pictures (i.e., frames) into three types, I, P, and B, where I is an intra-coded frame, P is a forward predicted frame, and B is a bi-directional interpolated frame. I-frames are key frames and can be understood as a complete picture, while P-frames and B-frames record changes relative to I-frames, P-frames representing differences from a previous frame and B-frames representing differences from previous and subsequent frames. One group of pictures includes one I frame. One is the length of the group of pictures, which is theoretically recorded as N, i.e., how many frames an I frame occurs inside.
The video live stream is sliced based on the group of pictures, and the size of the obtained video slices is not fixed, that is, the number of frames contained in each video slice can be any positive integer.
In one embodiment of the present disclosure, the received live video stream may be packaged into HLS format, i.e. a video slice based on a group of pictures may be obtained.
HLS (HTTP Live Streaming, adaptive bitrate Streaming protocol based on HTTP) is a dynamic bitrate adaptive technique. The method is mainly used for audio and video services of personal computers and apple terminals. The method comprises an m3u (8) index file, a TS media fragment file and a key encryption string file.
In this embodiment, each frame of image in the live video stream has time information, which may indicate the playing time of the corresponding image. In the process of slicing the live video stream to obtain the video slices, the time information of the images in the video slices is reserved.
In one example, the live video stream may be a live panoramic video stream, which may be 360 degree video captured by a panoramic camera or 180 degree video captured by a panoramic camera. Alternatively, the resolution of the panoramic video live stream may be 8K resolution, i.e. 7680 pixels in length and 3840 pixels in width. The panoramic video live stream may be, for example, a landscape-type video live stream.
The panoramic video live stream can be played through electronic equipment specially used for playing panoramic videos. Such as a mobile phone, a laptop, a tablet, a palmtop, a VR device, an AR device, and an MR device.
And step S2200, selecting a target computer which meets the transcoding condition of the live video stream from the computer cluster.
The computer cluster in this embodiment may include a plurality of computers, and the video processing capability of each computer may be the same or different.
And meeting the transcoding condition of the live video stream, namely indicating that the video slice of the live video stream can be transcoded. The transcoding condition may be obtained according to the picture quality of the live video stream, and the transcoding conditions of live video streams with different picture qualities may be different.
In an embodiment of the present disclosure, selecting a target computer from the computer cluster that satisfies the transcoding condition of the live video stream may include steps S2210 to S2220 as follows:
step S2210, acquiring performance parameters of computers in the computer cluster and quality parameters of the live video stream.
Wherein the performance parameter is a parameter representing the highest video processing capability of the computer, and the quality parameter is a parameter representing the picture quality of the live video stream.
In one example, the performance parameter may include a first resolution and a first frame rate, and the quality parameter may include a second resolution and a second frame rate. The first resolution indicates that the corresponding computer can process the video live stream with the picture resolution less than or equal to the first resolution, and the first frame rate indicates that the corresponding computer can process the video live stream with the highest picture frame rate less than or equal to the first frame rate.
And S2220, selecting a target computer from the computer cluster according to the performance parameters and the quality parameters.
In a first embodiment of the disclosure, the performance parameter may comprise at least a first resolution and the quality parameter may comprise at least a second resolution. Then, selecting a target computer from the computer cluster according to the performance parameter and the quality parameter may include steps S2221 to S2222 as follows:
step S2221, selecting computers with the first resolution being greater than or equal to the second resolution from the computer cluster as candidate computers.
Step S2222 selects a target computer from the candidate computers.
In one embodiment, the frame rates of the computers in the computer cluster may be the same, and then a set number of candidate computers may be randomly selected as the target computer. The set number may be set in advance according to an application scenario or a specific requirement. For example, the set number may be 2.
In another embodiment, the frame rates of the computers in the cluster of computers may be different, the performance parameter may include a first frame rate, and the quality parameter may include a second frame rate. Then, the target computer may be selected from the candidate computers according to the first frame rate and the second frame rate.
In one example, selecting a target computer from the candidate computers according to the first frame rate and the second frame rate may include: and selecting at least one candidate computer with the sum of the first frame rate being more than or equal to the second frame rate as a target computer.
For example, the first frame rates of the candidate computers 1 to 5 are FPS11, FPS12, FPS13, FPS14, and FPS15, respectively, the second frame rate of the live video stream is FPS2, and when FPS11+ FPS12+ FPS13 is not less than FPS2, the candidate computers 1 to 3 may be target computers; when FPS11+ FPS12+ FPS13+ FPS15 is not less than FPS2, both candidate computers 1 to 3 and candidate computer 5 may be the target computers.
In the above embodiment, if the sum of the first frame rates of the candidate computers 1 to 3 as the target computers is equal to or greater than the second frame rate, and the sum of the first frame rates of the candidate computers 1 to 3 and the candidate computer 5 is also equal to or greater than the second frame rate, then only the candidate computers 1 to 3 may be selected as the target computers, or the candidate computers 1 to 3 and the candidate computer 5 may be selected as the target computers.
In the case where the number of combinations of candidate computers satisfying that the sum of the first frame rate is equal to or greater than the second frame rate is greater than 1, the candidate computers in the combination including the smaller number of computers may be selected as the target computers.
In one example, selecting a target computer from the candidate computers according to the first frame rate and the second frame rate may further include: and sorting the candidate computers in a descending order according to the first frame rate, and selecting the candidate computers as target computers according to the sorting order until the sum of the first frame rates of the selected target computers is greater than or equal to the second frame rate.
For example, the first frame rates of the candidate computers 1 to 5 are FPS11, FPS12, FPS13, FPS14, and FPS15, respectively, and FPS11 is not less than FPS12 not less than FPS13 not less than FPS14 not less than FPS15, and the second frame rate of the live video stream is FPS2, the candidate computer 1 may be first used as the target computer, if FPS11 is less than FPS2, the candidate computer 2 may also be used as the target computer, if FPS11+ FPS12 is less than FPS2, the candidate computer 3 may also be used as the target computer until FPS11+ \\ 8230, and + FPS1n is not less than FPS2, where n is a positive integer less than or equal to 5, and then the candidate computers 1 to n are used as the target computers. In this case, FPS11+ \8230, + FPS1 (n-1) < FPS2.
In one example, the value of the first frame rate may be a plurality of values. Selecting a target computer from the candidate computers according to the first frame rate and the second frame rate may include: selecting a first frame rate meeting the quantity optimization condition as a target first frame rate according to the first frame rate and the second frame rate; the quantity optimization condition is that the quantity of the target computers is less than or equal to a set value; and selecting a candidate computer with a target first frame rate as a target computer according to the set value.
The setting value may be set in advance according to an application scenario or a specific requirement. For example, the set value may be 2.
Further, according to the first frame rate and the second frame rate, the first frame rate meeting the number optimization condition is selected as the target first frame rate, which may be an integer obtained by calculating a quotient of the second frame rate and the first frame rate, and the first frame rate which is smaller than or equal to the set integer is selected as the target first frame rate.
For example, the first frame rate of the candidate computers 1 to 3 may be FPS11, the first frame rate of the candidate computers 4 to 5 may be FPS12, the first frame rate of the candidate computers 6 to 9 may be FPS3, the second frame rate of the live video stream may be FPS2, the setting value is D, the setting values are compared with FPS2/FPS11, FPS2/FPS12, and FPS2/FPS13, respectively, if FPS2/FPS11 is less than or equal to D, it may be that FPS11 is used as the target first frame rate, and D are selected from the candidate computers 1 to 3 as target computers; if FPS2/FPS12 is not more than D, selecting D candidate computers from 4-5 as target computers by taking the FPS12 as a target first frame rate; if FPS2/FPS13 is not greater than D, the FPS13 can be used as a target first frame rate, and D candidate computers 6-9 are selected as target computers.
Therefore, the performance of the target computer can be the same, and the target computer can be controlled to transcode the video slice conveniently.
And step S2300, controlling the target computer to transcode the video slice to obtain the transcoded video slice.
In this embodiment, the target computers may be one or more, the video slices may be one or more, one target computer may transcode at most one video slice at any time, and one video slice may only be transcoded by one target computer.
In an embodiment of the present disclosure, transcoding a video slice by a control target computer to obtain a transcoded video slice may include the following steps S2310 to S2320:
step S2310 generates a first list of video slices according to time information of at least one frame of image in the video slices.
In this embodiment, the video slices may be stored in the first list in the order of time information from first to last.
Step S2320, the target computer is controlled to alternately and circularly read the video slices in the first list under the condition of keeping the time information, and transcode the read video slices to obtain the transcoded video slices.
For each frame of image in the video slice, the time information before transcoding can be reserved after transcoding, i.e. the time information before transcoding and the time information after transcoding of each frame of image are not changed.
For example, the target computers include a target computer 1 and a target computer 2, and the video slices in the first list may include video slices 1 to 5, then the control target computer cyclically reads the video slices in the first list in turn and transcodes the read video slices, where the control target computer 1 may read the video slice 1 and transcode the read video slice 1, and the control target computer 2 reads the video slice 2 and transcodes the read video slice 2; then the control target computer 1 reads the video slice 3 and transcodes the read video slice 3, and the control target computer 2 reads the video slice 4 and transcodes the read video slice 4; the re-control target computer 1 reads the video slice 5 and transcodes the read video slice 5.
Since the video slices of the live video stream are updated in real time, the present embodiment may enable the target computer to conveniently read video slices that have not been transcoded therein for transcoding by constructing the first list.
In one embodiment of the present disclosure, the method may further include steps S3100 to S3200 as follows:
step S3100, acquiring transcoding information included in the transcoding request.
The transcoding information in this embodiment is information required for transcoding a live video stream, and may be representation. For example, the transcoding information may include: at least one of a live broadcast packaging format, a coding type, a resolution after transcoding and a code rate after transcoding.
Step S3200, recording the transcoding information in the video slice for the target computer to read when transcoding the video slice.
Specifically, the target computer may transcode the video slice according to the encoding type, the transcoded resolution, and the transcoded code rate.
And step S2400, packaging the transcoded video slice to obtain and output a transcoded video live stream.
In this embodiment, the transcoded video may be packaged and output according to a live broadcast packaging format recorded in the transcoding information, that is, a transcoded live video stream is output.
Specifically, the transcoded live video stream may be output to a terminal for playing.
In one embodiment of the present disclosure, since each frame of image in the transcoded video slice retains its time information before transcoding, the transcoded video slice can be encapsulated based on the time information.
Further, a second list of transcoded video slices may be generated according to time information of at least one frame of image in the transcoded video slices; and sequentially reading the transcoded video slices in the second list, and packaging and outputting the read transcoded video slices.
In this embodiment, the transcoded video slices may be stored in the second list in the order of time information from first to last.
Since the video slice of the live video stream is updated in real time and the transcoded video slice is also updated in real time, in this embodiment, by constructing the second list, the transcoded video slice which is not yet encapsulated can be conveniently read for encapsulation.
In this embodiment, the transcoded video slice is encapsulated based on the time information, so that the transcoded live video stream and the video live stream before transcoding have the same picture sequence.
Through the embodiment of the disclosure, the received live video stream is sliced based on the group of pictures, the target computer is selected from the computer cluster to transcode the sliced video, the transcoded video slice is packaged, the live video stream can be subjected to lossless slicing through the self-adaptive slicing technology, the real-time transcoding does not depend on the performance of a single computer completely, the video slice after the self-adaptive slicing is distributed to the target computer selected from the computer cluster, and the real-time transcoding of the live video stream is realized on the low-performance computer by transversely expanding the number of the target computers, so that the resource dependence is greatly reduced.
< apparatus embodiment >
In this embodiment, a transcoding device 300 for a live video stream is provided, as shown in fig. 3, and includes a slicing module 310, a selecting module 320, a transcoding module 330, and an encapsulating module 340. The slicing module 310 is configured to slice a received live video stream based on a group of pictures in response to a transcoding request, so as to obtain at least one video slice; the selecting module 320 is configured to select a target computer from the computer cluster, where the target computer meets a transcoding condition of a live video stream; the transcoding module 330 is configured to control the target computer to transcode the video slice, so as to obtain a transcoded video slice; the encapsulation module 340 is configured to encapsulate the transcoded video slice, and obtain and output a transcoded live video stream.
In an embodiment of the present disclosure, the selecting module 320 may further be configured to:
acquiring performance parameters of computers in a computer cluster and quality parameters of a video live stream, wherein the performance parameters are parameters representing the highest video processing capacity of the computers, and the quality parameters are parameters representing the picture quality of the video live stream;
and selecting a target computer from the computer cluster according to the performance parameters and the quality parameters.
In one embodiment of the present disclosure, the performance parameter comprises a first resolution, the quality parameter comprises a second resolution,
selecting a target computer from the cluster of computers based on the performance parameter and the quality parameter comprises:
selecting computers with the first resolution ratio larger than or equal to the second resolution ratio from the computer cluster as candidate computers;
and selecting a target computer from the candidate computers.
In one embodiment of the disclosure, the performance parameter comprises a first frame rate, the quality parameter comprises a second frame rate, and selecting the target computer from the candidate computers comprises:
selecting a first frame rate meeting the quantity optimization condition as a target first frame rate according to the first frame rate and the second frame rate; the quantity optimization condition is that the quantity of the target computers is less than or equal to a set value;
and selecting a candidate computer with a target first frame rate as a target computer according to the set value.
In one embodiment of the disclosure, the performance parameter comprises a first frame rate, the quality parameter comprises a second frame rate, and selecting the target computer from the candidate computers comprises:
and selecting at least one candidate computer with the sum of the first frame rate larger than the second frame rate as a target computer.
In an embodiment of the present disclosure, the transcoding device 300 for the live video stream may further include:
a module for acquiring transcoding information contained in the transcoding request;
means for recording the transcoding information in the video slice for reading by the target computer when transcoding the video slice.
In one embodiment of the present disclosure, the transcoding module 330 may be further configured to:
generating a first list of video slices according to the time information of at least one frame of image in the video slices;
under the condition that the time information is kept, the control target computer circularly reads the video slices in the first list in turn, and transcodes the read video slices to obtain transcoded video slices;
packaging the transcoded video slices, including:
and packaging the transcoded video slices based on the time information.
It will be appreciated by those skilled in the art that the transcoding device 300 of the live video stream may be implemented in various ways. For example, the transcoding device 300 for a live video stream may be implemented by instructing a configuration processor. For example, the instructions may be stored in ROM and read from ROM into a programmable device when the device is started to implement transcoding apparatus 300 for a live video stream. For example, the transcoding device 300 of a live video stream may be solidified into a dedicated device (e.g., ASIC). The transcoding device 300 of the live video stream may be divided into units independent of each other or they may be combined together. The transcoding device 300 of the live video stream may be implemented by one of the various implementations described above, or may be implemented by a combination of two or more of the various implementations described above.
In this embodiment, the transcoding device 300 of the live video stream may have various implementation forms, for example, the transcoding device 300 of the live video stream may be any software product or functional module running in an application program providing a transcoding service of the live video stream, or a peripheral insert, a plug-in, a patch, or the like of the software product or application program, or the software product or application program itself.
< embodiment of live transcoding System >
Referring to fig. 4, an embodiment of the present disclosure further provides a live transcoding system. As shown in fig. 4, the live transcoding system 400 includes a memory 410 and a processor 420.
The memory 410 may be used to store executable computer instructions.
The processor 420 may be configured to execute a transcoding method of a live video stream according to an embodiment of the present disclosure, according to the control of the executable computer instructions.
The live transcoding system 400 may be the live transcoding system 100 shown in fig. 1, or may be a device having another hardware structure, which is not limited herein. The live transcoding system 400 may be, for example, a mobile phone, a laptop, a tablet computer, a palmtop computer, a desktop computer, a computer cluster, and the like, which is not limited in this disclosure.
In further embodiments, the live transcoding system 400 may include the transcoding device 300 for the above live video stream.
In one embodiment, the modules of transcoding device 300 for the above live video stream may be implemented by processor 420 executing computer instructions stored in memory 410.
Through the embodiment of the disclosure, the received live video stream is sliced based on the panel group, the target computer is selected from the computer cluster to transcode the sliced video, the transcoded video slice is packaged, the live video stream can be subjected to lossless slicing through the self-adaptive slicing technology, the real-time transcoding does not depend on the performance of a single computer completely, the video slice subjected to self-adaptive slicing is distributed to the target computer selected from the computer cluster, the real-time transcoding of the live video stream is realized on the low-performance computer by transversely expanding the number of the target computers, and the resource dependence is greatly reduced.
< computer-readable storage Medium embodiment >
In this embodiment, there is also provided a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, implements a method of transcoding a live video stream as in any embodiment of the present disclosure.
The above embodiments are mainly described with emphasis on differences from other embodiments, but it should be clear to those skilled in the art that the above embodiments can be used alone or in combination with each other as required.
The embodiments in the present disclosure are described in a progressive manner, and the same and similar parts among the embodiments can be referred to each other, and each embodiment focuses on the differences from the other embodiments, but it should be clear to those skilled in the art that the embodiments described above can be used alone or in combination with each other as needed. In addition, for the device embodiment, since it corresponds to the method embodiment, the description is relatively simple, and for relevant points, refer to the description of the corresponding parts of the method embodiment. The system embodiments described above are merely illustrative, in that modules illustrated as separate components may or may not be physically separate.
The present disclosure may be an apparatus, method, and/or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for causing a processor to implement various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or border servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
Computer program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, pose setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, by utilizing pose information of computer-readable program instructions to personalize a custom electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), the electronic circuit can execute the computer-readable program instructions to implement various aspects of the present disclosure.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
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 disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). 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. It is well known to those skilled in the art that implementation by hardware, by software, and by a combination of software and hardware are equivalent.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the present disclosure is defined by the appended claims.

Claims (10)

1. A transcoding method of a live video stream is characterized by comprising the following steps:
in response to the transcoding request, slicing the received live video stream based on the group of pictures to obtain at least one video slice;
selecting a target computer which meets the transcoding condition of the live video stream from the computer cluster;
controlling the target computer to transcode the video slice to obtain a transcoded video slice;
and packaging the transcoded video slice to obtain and output a transcoded live video stream.
2. The method of claim 1, wherein the selecting a target computer from the computer cluster that satisfies a transcoding condition of the live video stream comprises:
acquiring performance parameters of computers in the computer cluster and quality parameters of the live video stream, wherein the performance parameters are parameters representing the highest video processing capacity of the computers, and the quality parameters are parameters representing the picture quality of the live video stream;
and selecting the target computer from the computer cluster according to the performance parameters and the quality parameters.
3. The method of claim 2, wherein the performance parameter comprises a first resolution, the quality parameter comprises a second resolution,
selecting the target computer from the computer cluster according to the performance parameter and the quality parameter comprises:
selecting computers with the first resolution ratio greater than or equal to the second resolution ratio from the computer cluster as candidate computers;
and selecting the target computer from the candidate computers.
4. The method of claim 3, wherein the performance parameter comprises a first frame rate, wherein the quality parameter comprises a second frame rate, and wherein selecting the target computer from the candidate computers comprises:
selecting a first frame rate meeting a quantity optimization condition as a target first frame rate according to the first frame rate and the second frame rate; wherein the quantity optimization condition is that the quantity of the target computers is less than or equal to a set value;
and selecting a candidate computer with a target first frame rate as the target computer according to the set value.
5. The method of claim 3, wherein the performance parameter comprises a first frame rate, wherein the quality parameter comprises a second frame rate, and wherein selecting the target computer from the candidate computers comprises:
and selecting at least one candidate computer with the sum of the first frame rate larger than the second frame rate as the target computer.
6. The method of claim 1, further comprising:
acquiring transcoding information contained in the transcoding request;
recording the transcoding information in the video slice for reading by the target computer when transcoding the video slice.
7. The method of claim 1, wherein controlling the target computer to transcode the video slice to obtain a transcoded video slice comprises:
generating a first list of the video slices according to the time information of at least one frame of image in the video slices;
controlling the target computer to circularly read the video slices in the first list in turn under the condition of keeping the time information, and transcoding the read video slices to obtain transcoded video slices;
the packaging the transcoded video slice comprises:
and packaging the transcoded video slice based on the time information.
8. A transcoding device for a live video stream, comprising:
the slicing module is used for responding to the transcoding request and slicing the received live video stream based on the picture group to obtain at least one video slice;
the selecting module is used for selecting a target computer which meets the transcoding condition of the live video stream from the computer cluster;
the transcoding module is used for controlling the target computer to transcode the video slice to obtain a transcoded video slice;
and the packaging module is used for packaging the transcoded video slices to obtain and output transcoded video live broadcast streams.
9. A live transcoding system, comprising:
a processor and a memory for storing an executable computer program for controlling the processor to perform the method according to any of claims 1 to 7.
10. A computer-readable storage medium having computer instructions stored thereon, which when executed by a processor perform the method of transcoding a live video stream of any of claims 1 to 7.
CN202210957660.3A 2022-08-10 2022-08-10 Transcoding method, device and system of live video stream and readable storage medium Pending CN115379251A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210957660.3A CN115379251A (en) 2022-08-10 2022-08-10 Transcoding method, device and system of live video stream and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210957660.3A CN115379251A (en) 2022-08-10 2022-08-10 Transcoding method, device and system of live video stream and readable storage medium

Publications (1)

Publication Number Publication Date
CN115379251A true CN115379251A (en) 2022-11-22

Family

ID=84065733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210957660.3A Pending CN115379251A (en) 2022-08-10 2022-08-10 Transcoding method, device and system of live video stream and readable storage medium

Country Status (1)

Country Link
CN (1) CN115379251A (en)

Similar Documents

Publication Publication Date Title
US9514783B2 (en) Video editing with connected high-resolution video camera and video cloud server
US8731046B2 (en) Software video transcoder with GPU acceleration
EP2735166B1 (en) Transmission of reconstruction data in a tiered signal quality hierarchy
WO2018010662A1 (en) Video file transcoding method and device, and storage medium
US10187648B2 (en) Information processing device and method
US20150156557A1 (en) Display apparatus, method of displaying image thereof, and computer-readable recording medium
EP3148200B1 (en) Information processing device and method selecting content files based on encoding parallelism type
US9832468B2 (en) Electronic device for storing image and image storage method thereof
JP2022526304A (en) Methods and equipment for intra-prediction
US20190208197A1 (en) Image processing apparatus and image processing method
TW201143443A (en) Method and system for 3D video decoding using a tier system framework
CN102006445A (en) Image editing device and imaging device provided with the image editing device, image reproduction device and imaging device provided with the image reproduction device
JP6501127B2 (en) INFORMATION PROCESSING APPARATUS AND METHOD
CN115379251A (en) Transcoding method, device and system of live video stream and readable storage medium
WO2020175176A1 (en) Information processing device and method, and reproduction device and method
JP2009027535A (en) Image processor and imaging apparatus using same
Kammachi‐Sreedhar et al. Omnidirectional video delivery with decoder instance reduction
AU2014290997B2 (en) Electronic device for storing image and image storage method thereof
JP4902326B2 (en) Video transmission server and control method thereof
JP2009027536A (en) Image processor and imaging apparatus using same
CN117579843A (en) Video coding processing method and electronic equipment
JP2009273096A (en) Intermediate motion picture file generation apparatus and operation control method thereof
KR20130062787A (en) Apparatus and method for decoding
JP2009055147A (en) Motion picture data transmitting apparatus and operation control method thereof

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