WO2019071678A1 - Procédé et dispositif de diffusion en direct - Google Patents

Procédé et dispositif de diffusion en direct Download PDF

Info

Publication number
WO2019071678A1
WO2019071678A1 PCT/CN2017/109669 CN2017109669W WO2019071678A1 WO 2019071678 A1 WO2019071678 A1 WO 2019071678A1 CN 2017109669 W CN2017109669 W CN 2017109669W WO 2019071678 A1 WO2019071678 A1 WO 2019071678A1
Authority
WO
WIPO (PCT)
Prior art keywords
encoding
master
plug
video stream
loading
Prior art date
Application number
PCT/CN2017/109669
Other languages
English (en)
Chinese (zh)
Inventor
杨亮
张文明
陈少杰
Original Assignee
武汉斗鱼网络科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 武汉斗鱼网络科技有限公司 filed Critical 武汉斗鱼网络科技有限公司
Publication of WO2019071678A1 publication Critical patent/WO2019071678A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • 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/241Operating system [OS] processes, e.g. server setup
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Definitions

  • the present invention relates to the field of computer technologies, and in particular, to a method and apparatus for live broadcast.
  • Webcasting has gradually become a mainstream entertainment and communication method in modern life.
  • all run in a single-process mode that is, all the functions of the program are integrated in one process.
  • the single-process mode has the advantages of simple architecture and convenient maintenance, there is a problem of low stability. For example, if a module has a problem, the entire process may be crashed and must be solved by restarting the program.
  • the prior art has a technical problem of how to improve the running stability of the live broadcast program on the anchor end.
  • the embodiment of the invention provides a method and a device for performing live broadcast, at least for solving the technical problem of how to improve the running stability of the live broadcast program on the anchor end in the prior art.
  • the present invention provides a live broadcast method, including:
  • the master process creates an encoding process and/or a plug-in loading process, and the encoding process is configured to encode a video stream based on the control of the master process, and feed back the video stream to the master process, the plug-in
  • the loading process is configured to load the plugin in the plugin loading process, and invoke the loaded plugin according to the control of the master process;
  • the master process acquires the video stream
  • the master process sends the video stream to the live broadcast server, so that the live broadcast server forwards the video stream to the audience device that accesses the live broadcast server.
  • the acquiring the master process of the live broadcast application of the anchor terminal includes:
  • the master process of the anchor live application is created, wherein in the first mode, the master process creates the encoding process and the plugin Loading process
  • the operation mode is the second mode
  • the preset address of the master process is obtained, and the master process is accessed based on the address, where the master process is in the second mode.
  • the encoding process and the plugin loading process will be created.
  • the method before the creating the encoding process and/or the plug-in loading process by using the master process, the method further includes:
  • the running mode is the third mode, acquiring a flag bit indicating that the encoding process or the plug-in loading process needs to be created;
  • the process of creating the encoding process and/or the plug-in loading process by the master process is specifically: creating the plug-in loading process by using the master process;
  • the process of creating an encoding process and/or a plug-in loading process by the master process is specifically: creating the encoding process by using the master process.
  • the acquiring, by the master process, the video stream includes:
  • the master process sends an encoding instruction to the encoding stub module to notify the encoding process to encode the video stream;
  • the encoding process calls an encoding local service module connected to the encoding stub module to encode the video stream;
  • the encoding process calls the encoding proxy interface module connected to the encoding local service module to feed back the encoded video stream to the main control process.
  • the acquiring, by the master process, the video stream includes:
  • the master process sends an encoding instruction to the encoding stub module
  • the encoding stub module calls an encoding local service module connected to the encoding stub module to encode the video stream;
  • the encoding local service module calls an encoding proxy interface module connected to the encoding local service module to feed back the encoded video stream to the main control process.
  • the method further includes:
  • the plug-in loading process reads a loading directory, and enumerates, to the main control process, a plug-in that needs to be loaded into the live broadcast application of the anchor;
  • the master process determines a target plugin that needs to be loaded, and notifies the plugin to load the target plugin;
  • the plug-in loading process loads and runs the target plug-in in the plug-in process
  • the plug-in loading process feeds back the running result of the target plug-in to the main control process.
  • the present invention provides a live broadcast apparatus, including:
  • a startup unit configured to start a live broadcast application of the anchor
  • a master control process acquiring unit configured to acquire a master control process of the live broadcast application of the anchor end
  • a process creation unit configured to create an encoding process and/or a plug-in loading process
  • the encoding process is configured to encode a video stream based on a control of the master process, and feed back the video stream to the master process
  • the plug-in loading process is configured to load the plug-in in the plug-in loading process, and invoke the loaded plug-in according to the control of the master process;
  • a video stream obtaining unit configured to acquire the video stream
  • a sending unit configured to send the video stream to a live broadcast server, so that the live broadcast server forwards the video stream to a viewer device that accesses the live broadcast server.
  • the master process obtaining unit is configured to determine a preset running mode of the anchor live application, and if the running mode is the first mode, create the primary of the anchor live application. a control process, wherein, in the first mode, the master process creates the encoding process and the plug-in loading process; if the running mode is the second mode, acquiring the preset master process An address, and accessing the master process based on the address, wherein, in the second mode, the master process creates the encoding process and the plug-in loading process.
  • the device further includes:
  • a mode determining unit configured to determine, before the creating a coding process and/or a plug-in loading process by the master control process, a preset operation mode of the live broadcast application of the anchor end;
  • a mark obtaining unit configured to: if the running mode is the third mode, acquire a mark bit indicating that the encoding process or the plug-in loading process needs to be created before creating an encoding process and/or a plug-in loading process;
  • the process creation unit is specifically configured to create the plug-in loading process by using the master process
  • the process creation unit is specifically configured to create the encoding process by using the master process.
  • the video stream obtaining unit is configured to send an encoding instruction to the encoding stub module to notify the encoding process to encode a video stream, where the encoding process invokes An encoding local service module connected to the encoding stub module encodes the video stream, and the encoding process calls an encoding proxy interface module connected to the encoding local service module to feed back the encoded video stream to the video stream acquiring unit.
  • the video stream obtaining unit is configured to send an encoding instruction to the encoding stub module, where the encoding stub module invokes an encoding local service connected to the encoding stub module.
  • the module encodes the video stream, and the encoding local service module invokes The encoding proxy interface module that encodes the local service module connection feeds back the encoded video stream to the video stream obtaining unit.
  • the device further includes:
  • a plug-in reading unit configured to read a loading directory, and enumerate, to the main control process, a plug-in that needs to be loaded into the live broadcast application of the anchor end;
  • a determining unit configured to determine a target plugin that needs to be loaded, and notify the plugin to load the target plugin
  • a plug-in loading unit configured to load and run the target plug-in in the plug-in process
  • the plug-in feedback unit is configured to feed back the running result of the target plug-in to the main control process.
  • the invention provides a computer readable storage medium having stored thereon a computer program, which when executed by a processor, implements the steps of the method of any of the first aspects.
  • a fourth aspect a computer apparatus, comprising: a memory, a processor, and a computer program stored on the memory and operable on the processor, the processor executing the program to implement the method of any of the first aspects step.
  • the host end broadcast application is first started, and the main control process of the live broadcast application of the anchor end is obtained, and then the main control process further creates an encoding process and/or a plug-in loading process, and the encoding process is used to be based on
  • the control of the main control process encodes the video stream and feeds back the video stream to the main control process.
  • the plug-in loading process is used to load the plug-in in the plug-in loading process, and the loaded plug-in is called according to the control of the main control process, and then the main control process obtains the video. Streaming, and then sending the video stream to the live server, so that the live server forwards the video stream to the viewer device accessing the live server.
  • the encoding process is used to encode the video stream, and the plug-in loading process is used to load the plug-in. Therefore, the encoding function and the plug-in function abnormality do not affect each other and affect the main control process, so avoiding one due to Or a plurality of abnormal functions cause the program to crash, so that the broadcast application of the anchor end is operated more stably, thereby solving the technical problem of how to improve the running stability of the live broadcast program of the anchor end in the prior art.
  • FIG. 1 is a flowchart of a method for performing live broadcast according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a device for playing a live broadcast according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
  • the embodiment of the invention provides a method and a device for performing live broadcast, at least for solving the technical problem of how to improve the running stability of the live broadcast program on the anchor end in the prior art.
  • the host end broadcast application is first started, and the main control process of the live broadcast application of the anchor end is obtained, and then the main control process further creates an encoding process and/or a plug-in loading process, and the encoding process is used to be based on
  • the control of the main control process encodes the video stream and feeds back the video stream to the main control process.
  • the plug-in loading process is used to load the plug-in in the plug-in loading process, and the loaded plug-in is called according to the control of the main control process, and then the main control process obtains the video. Streaming, and then sending the video stream to the live server, so that the live server forwards the video stream to the viewer device accessing the live server.
  • the encoding process is used to encode the video stream, and the plug-in loading process is used to load the plug-in. Therefore, the encoding function and the plug-in function abnormality do not affect each other and affect the main control process, so avoiding one due to Or a plurality of abnormal functions cause the program to crash, so that the broadcast application of the anchor end is operated more stably, thereby solving the technical problem of how to improve the running stability of the live broadcast program of the anchor end in the prior art.
  • the first aspect of the present invention provides a method for performing live broadcast.
  • FIG. 1 it is a flowchart of a method for performing live broadcast according to an embodiment of the present invention. The method includes:
  • the master process creates an encoding process and/or a plug-in loading process, where the encoding process is used to encode a video stream based on the control of the master process, and feed back the video stream to the master process.
  • the plug-in loading process is configured to load a plug-in in the plug-in loading process, and invoke the loaded plug-in according to the control of the master process;
  • S104 The master control process acquires the video stream.
  • the master control process sends the video stream to a live broadcast server, so that the live broadcast server forwards the video stream to a viewer device that accesses the live broadcast server.
  • the anchor live application is started in S101.
  • the anchor The live broadcast application can be installed in a live broadcast application on a host device such as a mobile phone, a tablet computer or a desktop computer, and the present invention does not specifically limit it.
  • a host device such as a mobile phone, a tablet computer or a desktop computer
  • the present invention does not specifically limit it.
  • the following describes an example of a live broadcast application on a desktop computer installed in a Windows system.
  • the master process will create an encoding process and/or a plugin loading process as needed.
  • the encoding process in the embodiment of the present invention is used to encode a video stream based on the control of the master control process, and feed back the video stream to the master control process. More specifically, the encoding process receives the initialization command and the encoding command of the master process for initialization and encoding, and passes the encoded data to the master process.
  • the plugin loading process is used to load the plugin in the plugin loading process and call the loaded plugin according to the control of the master process. More specifically, the plug-in loading process acts as a loader for the anchor application plug-in of the anchor, and loads the original plug-in to be loaded into the host process into the plug-in loading process, so that the master process no longer needs to load the plug-in, and thus This avoids the situation where the master process crashes due to plugin issues.
  • the plug-in loading process in the embodiment of the present invention simulates the environment of the main control process on which the plug-in is loaded and run, and responds to the command from the main control process to obtain an image, obtain audio, and the feedback generated by the plug-in to the main control process. Image and audio, so that the image from the plug-in and the sound can be played normally in the master process.
  • the master process is the main process of the live broadcast application of the anchor, and manages the plug-in loading process and the encoding process. Moreover, if the encoding process is abnormally exited, the master process will automatically re-create the encoding process, so that the encoding process can be restarted quickly.
  • the processes interact by means of process communication.
  • the manner of the process communication includes the RPC (Remote Procedure Call Protocol) and the named pipe, etc., and the present invention is not limited thereto, and those skilled in the art to which the present invention pertains may select according to the actual situation.
  • RPC Remote Procedure Call Protocol
  • the main control process, the encoding process, and the plug-in loading process run in the background, and interact with the anchor through the interface program in the foreground.
  • the interface program is a program for real human-computer interaction for the main broadcast.
  • the interface program needs to submit the video screen preview window to the main control process for drawing.
  • the call of the anchor on the interface will be forwarded to the master process through RPC.
  • the interface program needs to start and resume the master process in the event that the master process crashes abnormally.
  • the anchor may have different requirements in different situations.
  • the anchor may use the single-process mode for maintenance, or use the multi-process mode for the program temperature, and the case where the plug-in is not needed.
  • the anchor live application can be run in at least the following four operating modes, in order to meet different requirements.
  • the first mode LIVE_ENCODER_PROXY_WITH_SERVER is specifically a multi-process mode.
  • the master process RpcLiveEncoderServer will be created (the master process can also be named other), and then the host broadcast application will treat the master process RpcLiveEncoderServer as the server, as the client. Access the master process RpcLiveEncoderServer. Then, the call of the host application to the master process is sent to the master process RpcLiveEncoderServer through the RPC request.
  • the master process RpcLiveEncoderServer will further create the encoding process RpcLiveEncoderEncoder (the encoding process can also be named other) and the plug-in loading process RpcPluginLoader (the plug-in loading process can also be named other).
  • the second mode LIVE_ENCODER_PROXY_WITHOUT_SERVER is also in multi-process mode. Different from the first mode, in the second mode, the live broadcast application of the anchor does not need to create the master RpcLiveEncoderServer, but is connected to an existing preset master process. Similarly, the host live application will treat the master process RpcLiveEncoderServer as a server, and access the default master process as the client according to the address of the server.
  • the master process in the second mode may be a process created by an upper layer application.
  • the second mode has the advantage of facilitating the extension of the main control process from the upper layer application; the advantage of the first mode compared to the second mode is that the main broadcast application directly manages the main control process, and the main control process is It is created by the anchor application itself, so the possibility of incompatibility is low.
  • the master process RpcLiveEncoderServer further creates the encoding process RpcLiveEncoderEncoder and the plugin loading process RpcPluginLoader.
  • the third mode is the third mode
  • the third mode LIVE_ENCODER_PROXY_STUB is also in multi-process mode.
  • the master process RpcLiveEncoderServer in the third mode is similar to the master process in the first mode or the second mode.
  • the master process RpcLiveEncoderServer further creates one of the encoding process RpcLiveEncoderServer or the plug-in loading process RpcPluginLoader.
  • the host process RpcLiveEncoderServer is instructed to generate the encoding process RpcLiveEncoderServer or the plug-in loading process RpcPluginLoader by setting a flag bit in advance.
  • the first flag bit LIVE_ENCODER_REMOTE_PLUGIN indicates that the plug-in loading process RpcPluginLoader needs to be created
  • the second flag bit LIVE_ENCODER_REMOTE_ENCODER indicates that the encoding process RpcLiveEncoderServer needs to be created.
  • the third mode can be selected and the second flag bit is set in advance.
  • the fourth mode LIVE_ENCODER_LOCAL_SERVICE is a single process mode.
  • the anchor live application creates only one process, the master process.
  • the encoding function of the live broadcast application of the anchor is implemented in the main control process, and the plugin is also loaded in the main control process.
  • the master process RpcLiveEncoderServer does not further create other processes.
  • S102 in the embodiment of the present invention is specifically implemented by the following process:
  • the master process of the anchor live application is created, wherein in the first mode, the master process creates the encoding process and the plugin Loading process
  • the operation mode is the second mode
  • the preset address of the master process is obtained, and the master process is accessed based on the address, where the master process is in the second mode.
  • the encoding process and the plugin loading process will be created.
  • the host control process is created by the anchor live application; if the running mode set by the anchor is the second mode, the live broadcast application of the anchor acquires the address of the preset master process. And then access the preset master process based on the address. Moreover, in the first mode and the second mode, the obtained master process further creates an encoding process and a plug-in loading process.
  • the anchor live application only creates a process of the master process and runs in the single process mode. If the running mode set by the anchor is the third mode, after the anchor live application acquires the master process, the master process further needs to create a process in the encoding process or the plug-in loading process.
  • the method further includes: determining a running mode of the preset broadcast application of the anchor end, and if the running mode is the third mode, further obtaining a flag bit indicating that the encoding process or the plug-in loading process needs to be created, if the marking bit is A flag bit, S103 is specifically: creating a plug-in loading process by the master process; if the flag bit is the second flag bit, S103 is specifically: creating an encoding process by the master process.
  • the live broadcast application can be made by setting the different operation modes.
  • the sequence runs in a single process or multiple processes to meet different performance requirements.
  • one of the plug-in loading function and the encoding function can be separated from the master process.
  • the coding function is usually one of the core functions of the live broadcast application of the main broadcast.
  • each function, interface and parameters for implementing the coding function are encapsulated in the coding module.
  • the main control process runs, the coding module is loaded into the main control process, and the main control process can arbitrarily call various functions, interfaces and parameters of the coding function.
  • the live broadcast application of the anchor end can be run in a single process or in multiple processes. Therefore, in order to enable the live broadcast application of the anchor to be normally encoded, whether it is a single process or a multi-process operation, the embodiment of the present invention At least the following improvements have been made to the encoding module:
  • the LiveEncoderLocalService encoding local service module, the LiveEncoderStub encoding stub module, and the LiveEncoderProxy encoding proxy module are encapsulated in one module, that is, the LiveEncoder encoding module.
  • the master process acquires the video stream in S104.
  • the master process sends an encoding instruction to the encoding stub module to notify the encoding process to encode the video stream;
  • the encoding process calls an encoding local service module connected to the encoding stub module to encode the video stream;
  • the encoding process calls the encoding proxy interface module connected to the encoding local service module to feed back the encoded video stream to the main control process.
  • the encoding function of the live broadcast application of the anchor is implemented independently from the main control process to the encoding process.
  • the encoding process is subordinate to the encoding module.
  • the master process sends an encoding instruction to the encoding stub module by communicating with the RPC between the encoding processes to notify the encoding process to start encoding.
  • Coding process in response to coding Let the encoding method be executed by calling the relevant methods and functions in the encoding local service module to encode the video stream. Then, the encoding process calls the encoding proxy module LiveEncoderProxy to feed back the encoded video stream to the main control process through the RPC channel.
  • the main control process sends the video stream to the live broadcast server, and then the live broadcast server forwards the video stream to the viewer device of the viewer watching the anchor. Furthermore, the viewer device decodes the video stream and decodes the live video for viewing by the viewer.
  • the master process obtains the video stream in S104, including:
  • the master process sends an encoding instruction to the encoding stub module
  • the encoding stub module calls an encoding local service module connected to the encoding stub module to encode the video stream;
  • the encoding local service module calls an encoding proxy interface module connected to the encoding local service module to feed back the encoded video stream to the main control process.
  • the encoding function of the live broadcast application of the anchor is still implemented by the master process.
  • an encoding instruction is generated.
  • the master process then sends an encoding instruction to the encoding stub module.
  • the encoding stub module sends an encoding instruction to the encoding local service module to invoke the method and function in the encoding local service module to encode the video stream.
  • the encoding local service module sends the encoded video stream to the encoding proxy module, and then the encoding proxy module transparently transmits the video stream to the main control process.
  • the above is an introduction to how the main control process and the encoding process use the improved encoding module.
  • the following describes how the main control process creates the encoding process and the encoding process specific encoding process.
  • the process of creating a coding process by the master process includes the following processes:
  • the master process calls a process creation function
  • the master process sends the ID of the master process to the process creation function
  • the master process runs the process creation function to create the encoding process, and after the creation process is completed, the process process initializes the process environment, and based on the ID connection of the master process that the process creation function has Master process.
  • the master process calls the Windows system process to create the CreateProcess function to create an encoding process RpcLiveEncoderEncoder.
  • the process ID of the master process is passed to the CreateProcess function as a command line parameter, and then the code process RpcLiveEncoderEncoder created by the CreateProcess function is started, and the process ID of the master process can be obtained from the command line. .
  • the master process runs the CreateProcess function. Create the encoding process RpcLiveEncoderEncoder.
  • the encoding process initializes the process environment and establishes a connection with the master process. Specifically, the encoding process initializes the process environment and connects to the master process by the following process:
  • the encoding process registers an initialization service function and a video stream encoding service function
  • the encoding process RpcLiveEncoderEncoder creates an RPC communication client instance handle hRpc by calling the RpcCreatelnstance method, and correspondingly, the master process is the server. Then, the RpcRegisterProcedure function is called, the initialization service function init_encoder of the encoding process RpcLiveEncoderEncoder is registered to hRpc, and the video stream encoding service function encode_raw_buffer is registered to hRpc.
  • the initialization service function init_encoder is used to respond to the initialization command of the main control process, and completes the encoding initialization operation according to the rated parameter in the initialization command
  • the encoded stream server function encode_raw_buffer is used to respond to the coding instruction of the main control process, and is The control process specifies the video material and audio material in the memory to be encoded, and returns the encoded data to the master process.
  • the embodiment of the present invention adopts a shared memory manner to optimize performance. Specifically, call the Windows system's CreateFileMapping function to create a video shared memory called RpcLiveEncoderEncoder_video_X, and create an audio shared memory called RpcLiveEncoderEncoder_Audio_X.
  • the naming of the video shared memory and the audio shared memory may be set according to actual conditions, and the present invention does not specifically limit.
  • the encoding process reads the process ID of the master process in the command line, and calls the RpcStartService function to establish an RPC communication channel with the master process. Then, the client_process_ready function of the master process is invoked based on the RPC channel to notify the master process that the encoding process initializes the process environment.
  • the main control process obtains the sessionld session ID of the encoding process in the RPC connection from the RPC channel, and determines that the encoding process environment initialization is completed, and then notifies the encoding process to encode the video stream according to the need in the subsequent process.
  • the master process calls the encoding process based on the sessionld of the encoding process.
  • the rpc_encoder_sharememory_name function gets the video shared memory identifier and the audio shared memory identifier created by the encoding process.
  • the master control process sends an initialization command to the encoding process, where the initialization command includes a nominal parameter for guiding the encoding process to determine a decoding header parameter, where the decoding header parameter includes a video decoding header parameter and an audio decoding header parameter;
  • the encoding process runs the initialization service function based on the initial command to obtain the video decoding header parameter and the audio decoding header parameter based on the nominal parameter;
  • the master process sends an initialization init_encoder command to the encoding process.
  • the command includes a nominal parameter for directing the encoding process to determine the decoding header parameters, and the nominal parameter is determined by the master process based on the selection of the anchor.
  • the rated parameters include but are not limited to resolution information (width width and height height), video bit rate videoBitrate, video frame rate fps, video encoder type videoCodec, audio encoder channel number audioChannel, audio
  • the sampling rate is audioSampleRate, the audio bit rate audioBitrate, and the audio encoder type audioCodec.
  • the encoding process After the encoding process receives the initialization init_encoder command from the RPC channel, it responds by initializing the service function init_encoder. Specifically, it calls the CreateMediaFile function to create a multimedia file IMediaFile interface. Then, according to the video encoder type videoCodec in the init_encoder command, the CreateEncoder method of the IMediaFile interface is used to create a code. VideoEncoder interface videoEncoder of type videoCodec, and a video encoder interface audioEncoder of type audioCodec according to the audio encoder type audioCodec in the init_encoder command. The Open method that calls the video encoder interface videoEncoder will encode the width of the video.
  • Width, height height, video bit rate videoBitrate, video frame rate fps as parameters to initialize the video encoder interface IMediaEncoder, and call the audio encoder audioEncoder Open method, the audio encoder channel number audioChannel, audio sampling rate audioSampleRate, audio The code rate audioBitrate is used as a parameter to initialize the audio encoder audioEncoder.
  • the encoding process calls the readVideoHeader of the IMediaFile interface to obtain the video decoding header parameter videoHeader of the video encoder interface IMediaEncoder, and the readAudioHeader method of the IMediaFile interface to obtain the audio decoding header parameter audioHeader of the audio encoder audioEncoder.
  • the encoding process sends the obtained video decoding header parameter videoHeader and the audio decoding header parameter audioHeader to the main control process through the RPC channel.
  • the main control process further sends the video decoding header parameter videoHeader and the audio decoding header parameter audioHeader to the live broadcast server, and the live video server sends the video decoding header parameter videoHeader and the audio decoding header parameter audioHeader to each viewer device. Then, the viewer device can decode and play the video and audio according to the video decoding header parameter videoHeader and the audio decoding header parameter audioHeader.
  • the encoded video stream can be obtained.
  • obtaining an encoded video stream by using an encoding process in S104 is specifically performed by the following process:
  • the encoding process receives an encoding command sent by the master control process
  • the main control process pre-stores the video material to be encoded into the video shared memory according to the identifier of the video shared memory obtained in the foregoing, and pre-stores the audio material to be encoded according to the identifier of the audio shared memory obtained in the foregoing.
  • the content of the video material and the audio material are usually matched, for example, from the same file or collected by the anchor device. Then, when the video stream needs to be encoded, the master process sends an encoding command encode_raw_buffer to the encoding process through the RPC channel between the encoding process.
  • the encoding process After receiving the encode_raw_buffer command, the encoding process responds by the encoding function, specifically: calling the Encode method of the videoEncoder interface, reading the video material in the video shared memory for encoding, returning the video encoded data to the main control process; and calling the Encode of the audioEncoder
  • the method encodes the audio material in the audio shared memory, and returns the audio encoded data to the main control process.
  • the video encoded data and the audio encoded data constitute a video stream, and the two correspond to each other according to a time axis.
  • the above is an introduction to encoding the video stream of the encoding process.
  • the encoding process implements a separately encoded video stream.
  • the master process After receiving the video stream returned by the encoding process, the master process stores the video stream in the sending queue and sends it to the live server. Then, after receiving the video stream, the live broadcast server forwards the video stream to each viewer device, and the viewer device sequentially decodes the received video stream, and then plays the live broadcast video of the anchor to the user, thereby completing the live broadcast.
  • the encoding process may be crashed due to an abnormality.
  • the live broadcast method in the embodiment of the present invention may further include:
  • the master process monitors whether the encoding process crashes
  • the master process monitors that the encoding process crashes, the master process re-creates the encoding process.
  • the master process monitors the running status of the encoding process. If the encoding process crashes, the encoding process is re-created in the manner described above for creating the encoding process, and the description is not repeated here.
  • the plug-in of the live broadcast application of the anchor is loaded inside the plug-in loading process, and even if the plug-in is abnormal, the operation of the master process is not affected. Similar to the encoding process, the plug-in process is also connected to the master process through the RPC channel, and the plug-in process invokes the relevant interface of the master process through the RPC channel in order to simulate the environment in which the plug-in is loaded into the master process, so that the plug-in can be loaded normally. And running.
  • the prior art master process needs to know which plugins are available before loading the plugin, so the plugin needs to be enumerated before the plugin is loaded.
  • the plug-in loading process in the embodiment of the present invention also needs to enumerate the plug-in to the main control process before loading the plug-in.
  • the plugin loading process before the plugin loading process loads the target plugin that needs to be loaded in the live broadcast application in the plugin loading process, the plugin loading process further includes:
  • the master process creates a plugin enumerator process
  • the plug-in enumerator process enumerates, to the master process, an alternative plug-in that exists in the current load directory and can be loaded;
  • the master process determines to determine the target plugin from the candidate plugin, and notifies the plugin to load the target plugin.
  • the master process creates a plug-in enumerator process by:
  • the master process calls a process creation function
  • the master process sends the ID of the master process to the process creation function
  • the master process runs the process creation function to create the plugin enumerator process, the plugin After the creation of the enumerator process, the process environment is initialized, and the master process is connected based on the ID of the master process that the process creation function has.
  • the master process loads the RpcPluginManager Remote Plugin Manager module, which is responsible for the creation of the plugin enumerator process RpcPluginFinder and commands the RpcPluginFinder to enumerate the functionality of the plugin.
  • RpcPluginManager module After loading the RpcPluginManager module into the main control process, call the CreatePluginManager function in the module to create a plugin manager interface IPluginManager.
  • the master process calls the initialization init method of the plugin manager interface IPluginManager, so that the init method further calls the Windows system process creation function CreateProcess to create the plugin enumerator process RpcPluginFider.
  • the master process also passes the process ID of the master process as a command line argument to the CreateProcess function.
  • the master process runs the create function CreateProcess to create the plugin enumerator process RpcPluginFinder.
  • the creation of the plugin enumerator process is completed.
  • the plug-in enumerator process is created, it also needs to initialize the process environment and establish a connection with the master process.
  • the plugin enumerator process initializes the environment through the following process:
  • an RPC communication client instance handle hRpc is created by calling RpcCreatelnstance; the RpcRegisterProcedure function is called, and the function function of the enumeration plug-in, that is, the enumeration plug-in function get_plugins is registered to hRpc, and the enumeration plug-in function is used to respond to the master process.
  • the enumeration plugin instruction enumerates the plugin; calls the RpcRegisterProcedure function, and registers the enumeration exit function to hRpc.
  • the enumeration exit function is used to respond to the enumeration exit instruction sent by the master process after all the plugins are obtained, so that the plugin is The process exits; according to the process ID of the master process in the command line, the RpcStartService function is called to establish an RPC channel with the master process; the client_process_ready function of the master process is called to notify the master process that the plugin enumerator process is initialized. carry out.
  • the main control process obtains the sessionld session ID of the plug-in enumerator process in the RPC connection from the RPC channel according to the call of the plugin enumerator process to the client_process_ready function, and determines that the plug-in enumerator process environment initialization is completed, and then in the subsequent process. Invoke the plugin enumerator process to enumerate plugins as needed.
  • the plugin enumerator process enumerates to the master process the candidate plugins that are present in the current load directory and that can be loaded, including:
  • the plug-in enumerator receives an enumeration instruction sent by the master control process, and invokes the enumeration plug-in function process to read all plug-ins in the loading directory;
  • the candidate plug-in in the embodiment of the present invention refers to a plug-in that is selected and loaded by the master process.
  • the master process When the master process needs to load the plugin, it will first send an enumeration instruction to the plugin enumerator process to get all the alternative plugins.
  • the plug-in enumerator process After the plug-in enumerator process receives the enumeration instruction sent by the master process from the RPC channel, it calls the enumeration function get_plugins to enumerate all the plug-ins in the current loading directory.
  • the get_plugins function calls the FindFirstFile function to get the first DLL (Dynamic Link Library) file in the load directory.
  • the get_plugins function calls the FindNextFile function to continue to get the next DLL file in the load directory. If the FindNextFile function returns true, it means that the next DLL file is obtained, then execute the FindNextFile function again and continue to get the next DLL file; if the FindNextFile function returns false, it means that all the DLL files in the loading directory have been obtained. As long as the return value of the FindNextFile function is true, the next DLL file is fetched until the FindNextFile function returns a false value.
  • the anchor may add some illegal plug-ins to the loading directory, but the illegal plug-ins cannot be loaded. Therefore, after obtaining all the plug-ins, it is illegal to further determine whether the obtained plug-ins are legal.
  • the plugin is filtered out.
  • the LoadLibrary function of the calling system loads each DLL file. If the LoadLibrary function can be successfully called, the DLL file is legal. Otherwise, if the LoadLibrary function fails, the DLL file is invalid. After calling the LoadLibrary function for each DLL file, the illegal DLL file is unloaded from the load directory, and the legal DLL file is retained.
  • the anchor-side live application although a plug-in is legal, the anchor-side live application may not support the plug-in. Therefore, in the embodiment of the present invention, in order to ensure an alternative provided for the final control process.
  • the plug-ins are all plug-ins supported by the live broadcast application on the host, and further need to be filtered for the legal DLL file to obtain the plug-in supported by the broadcast application of the anchor.
  • the plug-in enumerator process performs filtering according to different supporting conditions, and the present invention does not specifically limit.
  • the plug-in supported by the host-side live application is specifically a plug-in with an export function.
  • the specific method for determining whether the legal plug-in can be supported is: calling the GetProcAddress function of the system to obtain the export function in a legal DLL file. If the export function can be obtained, it is determined that the plug-in corresponding to the DLL file is a plug-in that the live broadcast application can support, and then the plug-in is reserved as an alternative plug-in; otherwise, if the export function is not obtained, the DLL file is determined.
  • the corresponding plug-in is a plug-in that is not supported by the live broadcast application, and then the plug-in is uninstalled from the loading directory.
  • the plugin enumerator process The name of the determined alternative plug-in is provided to the master process through the RPC channel with the master process.
  • the method further includes:
  • the master process sends an exit instruction to the plug-in enumerator process
  • the plug-in enumerator invokes the enumeration exit function to end the process based on the exit instruction.
  • the master process After receiving the plugin enumerated by the plugin enumerator process, the master process sends an exit instruction to the plugin enumeration process. After the plugin enumerator process receives the exit instruction, it calls the enumeration exit function to exit the plugin enumerator process.
  • the master process automatically selects the target plugin from the candidate plugin, or determines the corresponding target plugin according to the selection operation of the anchor, and then notifies the plugin loading process by the name of the target plugin through the RPC channel of the plugin loading process. Further, the plug-in loading process acquires the target plug-in DLL file according to the name of the target process, thereby loading and running the target plug-in.
  • the plug-in loading process calls the adding method of the master process by calling the RPC channel of the master process, so that the plug-in detects the adding method, thereby Can load successfully.
  • the main control process invokes the plug-in to run, and the plug-in loading process receives the instruction that is triggered by the main control process and is triggered by the main control process, and triggers the plug-in to run.
  • the plug-in loading process needs to use the subtraction method.
  • the plug-in loading process calls the subtraction method of the master process by calling the RPC channel of the master process, so that the plug-in uses the subtraction method to process, thereby obtaining the processing result.
  • the plug-in loading process obtains the result of running the plug-in, and feeds back the running result of the plug-in to the main control process through the RPC channel of the main control process.
  • the plug-in loading process needs to transfer the images and audio generated by the plug-in to the master process through the RPC channel of the master process. Then, the master process displays the image according to the image drawing window generated by the plug-in, and plays the audio through the player, thereby displaying the image and sound generated by the plug-in to the anchor.
  • the embodiment of the present invention further includes the following solutions:
  • the master process monitors whether the plug-in loading process crashes
  • the master process monitors the running state of the plug-in loading process. If the plug-in loading process is detected to crash, the plug-in enumerator process and plug-in are recreated by creating a plug-in enumerator process and a plug-in loading process as described above. The loading process is not repeated here.
  • the second aspect of the present invention further provides a live broadcast device, as shown in FIG. 2, including:
  • the startup unit 101 is configured to start a live broadcast application of the anchor end
  • the master control process obtaining unit 102 is configured to acquire a master control process of the live broadcast application of the anchor end;
  • the process creation unit 103 is configured to create an encoding process and/or a plug-in loading process, where the encoding process is used to encode a video stream based on the control of the master process, and feed back the video stream to the master process.
  • the plug-in loading process is configured to load a plug-in in the plug-in loading process, and invoke the loaded plug-in according to the control of the master process;
  • a video stream obtaining unit 104 configured to acquire the video stream
  • the sending unit 105 is configured to send the video stream to a live broadcast server, so that the live broadcast server forwards the video stream to a viewer device that accesses the live broadcast server.
  • the master control process obtaining unit 102 is configured to determine a preset operation mode of the anchor live application, where the master process creates the encoding process in the first mode. And the plug-in loading process; if the running mode is the first mode, creating the master control process of the anchor live application; if the running mode is the second mode, acquiring the preset master An address of the process, and accessing the master process based on the address, wherein, in the second mode, the master process creates the encoding process and the plug-in loading process.
  • the device further includes:
  • a mode determining unit configured to determine, before the creating a coding process and/or a plug-in loading process by the master control process, a preset operation mode of the live broadcast application of the anchor end;
  • a mark obtaining unit configured to: if the running mode is the third mode, acquire a mark bit indicating that the encoding process or the plug-in loading process needs to be created before creating an encoding process and/or a plug-in loading process;
  • the process creation unit 103 is specifically configured to create the plug-in loading process by using the master process
  • the process creation unit 103 is specifically configured to create the encoding process by using the master process.
  • the video stream obtaining unit 104 is configured to send an encoding instruction to the encoding stub module to notify the encoding process to encode a video stream, where the encoding process is invoked and An encoding local service module coupled to the encoding stub module encodes the video stream, and the encoding process invokes an encoding proxy interface module coupled to the encoding local service module to feed back the encoded video stream to the video stream obtaining unit.
  • the video stream obtaining unit 104 is configured to send an encoding instruction to the encoding stub module, where the encoding stub module calls the encoding local service module connected to the encoding stub module. Encoding the video stream, the encoding local service module invoking an encoding proxy interface module connected to the encoding local service module to feed back the video stream obtaining unit The video stream that is coded out.
  • the process creating unit 103 is configured to invoke a process creation function, pass the ID of the master process to the process creation function, and run the process creation function to create The encoding process, after the creation process is completed, initialize the process environment, and connect the master control process based on the ID of the master process that the process creation function has.
  • the device further includes an encoding process environment initial unit, configured to initialize a process environment after the encoding process is completed, and connect the master control based on an ID of the master process that the process creation function has a process, specifically for registering an initialization service function and a video stream encoding service function in the encoding process, creating a video shared memory storing a video material, and storing an audio shared memory of the audio material, acquiring the method that the process creation function has The ID of the master process is connected to the master process, and the identifier of the video shared memory and the identifier of the audio shared memory are sent to the master process based on the connection between the code process and the master process.
  • an encoding process environment initial unit configured to initialize a process environment after the encoding process is completed, and connect the master control based on an ID of the master process that the process creation function has a process, specifically for registering an initialization service function and a video stream encoding service function in the encoding process, creating a video shared memory storing
  • the apparatus further includes an encoding initialization unit, configured to send an initialization command to the encoding process before the encoding the video stream by the encoding process and feeding back to the main control process, where the initialization command includes a nominal parameter for directing the encoding process to determine a decoding header parameter, the decoding header parameter including a video decoding header parameter and an audio decoding header parameter, the initialization service function being executed based on the initial command to obtain based on the nominal parameter Transmitting the video decoding header parameter and the audio decoding header parameter to the main control process, so that the main control process sets the video decoding header parameter and the audio decoding header parameter
  • the audio decoding header parameter is sent to the live broadcast server, and the live broadcast server forwards the video decoding header parameter and the audio decoding header parameter to the audience end device.
  • the video stream obtaining unit 104 is configured to receive an encoding command sent by the master control process, and extract, according to the encoding command, a video material pre-stored by the master control process from the video sharing memory, and from the Extracting audio material pre-stored by the master process in the audio sharing memory; running the video stream encoding service function to encode the video material, obtaining video encoded data, and encoding the audio material to obtain audio encoding Data, the video stream including the video encoded data and the audio encoded data; and the video encoded data and the audio encoded data are fed back to the master process.
  • the apparatus further includes an encoding process monitoring unit configured to monitor whether the encoding process crashes; if the encoding process is detected to crash, re-creating the encoding process.
  • the device further includes:
  • a plug-in loading unit configured to load a target plug-in that needs to be loaded in the live application during the plug-in loading process.
  • the process creation unit 103 is further configured to create a plug-in enumerator process before loading the target plug-in that needs to be loaded in the live application in the plug-in loading process;
  • the device further includes a plug-in enumeration unit, configured to enumerate, to the master process, an optional plug-in existing in the current loading directory and loadable;
  • a determining unit configured to determine that the target plugin is determined from the candidate plugin, and notify the plugin to load the target plugin.
  • the process creation unit 103 is configured to invoke a process creation function, and send the ID of the master process to the process creation function, and run the process creation function to create the plug-in enumerator process. After the plug-in enumerator process is created, the process environment is initialized, and the master process is connected based on the ID of the master process that the process creation function has.
  • the device further includes a plug-in loading process environment initial unit, configured to initialize a process environment after the plug-in enumerator process is created, and based on the ID connection of the master process that the process creation function has
  • the master control process is specifically configured to register an enumeration plug-in function and an enumeration exit function in the plug-in enumerator process, and obtain an ID of the master control process that is included in the process creation function to connect the master control process.
  • the plug-in enumeration unit is configured to receive an enumeration instruction sent by the master control process, invoke the enumeration plug-in function process to read all plug-ins in the loading directory, and filter from all the plug-ins. A legal plug-in is extracted; and the backup plug-in supported by the anchor live application is filtered out from the legal plug-in.
  • the apparatus further includes an exit unit, configured to enumerate the plug-in to the plug-in after the plug-in enumerator process enumerates the candidate plug-in existing in the current load directory and can be loaded to the master process
  • the process sends an exit instruction, and the enumeration exit function is called to end the process based on the exit instruction.
  • the device further includes a plug-in loading process monitoring unit, configured to monitor whether the plug-in loading process crashes, and if the plug-in loading process is detected to crash, re-creating the plug-in loading process.
  • a plug-in loading process monitoring unit configured to monitor whether the plug-in loading process crashes, and if the plug-in loading process is detected to crash, re-creating the plug-in loading process.
  • the present invention further provides a computer readable storage medium having stored thereon a computer program, the program being executed by the processor to implement any of the methods described above for live broadcast The steps of the method.
  • the present invention also provides a calculation based on the same inventive concept as the method of live broadcast in the foregoing embodiment.
  • the device as shown in FIG. 3, includes a memory 204, a processor 202, and a computer program stored on the memory 204 and operable on the processor 202, the processor 202 implementing the program to achieve the control progress described above The steps of any of the methods of the method.
  • bus 200 can include any number of interconnected buses and bridges, and bus 200 will include one or more processors and memory 204 represented by processor 202.
  • the various circuits of the memory are linked together.
  • the bus 200 can also link various other circuits, such as peripherals, voltage regulators, and power management circuits, as is known in the art, and therefore, will not be further described herein.
  • Bus interface 206 provides an interface between bus 200 and receiver 201 and transmitter 203.
  • Receiver 201 and transmitter 203 may be the same component, i.e., a transceiver, providing means for communicating with various other devices on a transmission medium.
  • the processor 202 is responsible for managing the bus 200 and the usual processing, and the memory 204 can be used to store data used by the processor 202 when performing operations.
  • the host end broadcast application is first started, and the main control process of the live broadcast application of the anchor end is obtained, and then the main control process further creates an encoding process and/or a plug-in loading process, and the encoding process is used to be based on
  • the control of the main control process encodes the video stream and feeds back the video stream to the main control process.
  • the plug-in loading process is used to load the plug-in in the plug-in loading process, and the loaded plug-in is called according to the control of the main control process, and then the main control process obtains the video. Streaming, and then sending the video stream to the live server, so that the live server forwards the video stream to the viewer device accessing the live server.
  • the encoding process is used to encode the video stream, and the plug-in loading process is used to load the plug-in. Therefore, the encoding function and the plug-in function abnormality do not affect each other and affect the main control process, so avoiding one due to Or a plurality of abnormal functions cause the program to crash, so that the broadcast application of the anchor end is operated more stably, thereby solving the technical problem of how to improve the running stability of the live broadcast program of the anchor end in the prior art.
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

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

Abstract

L'invention concerne selon des modes de réalisation un procédé et un dispositif de diffusion en direct, au moins utilisés pour résoudre le problème technique de la technologie existante relatif à la façon d'améliorer la stabilité de fonctionnement d'un programme de diffusion en direct au niveau d'une extrémité d'ancrage. Le procédé consiste à : démarrer un programme d'application de diffusion en direct au niveau d'une extrémité d'ancrage ; acquérir un processus de commande maître pour le programme d'application de diffusion en direct au niveau de l'extrémité d'ancrage ; le processus de commande maître crée un processus de codage et/ou un processus de chargement de module d'extension, le processus de codage étant utilisé pour coder un flux vidéo sous la commande du processus de commande maître et pour renvoyer le flux vidéo au processus de commande maître, et le processus de chargement de module d'extension étant utilisé pour charger un module d'extension dans le processus de chargement de module d'extension et pour appeler le module d'extension chargé sous la commande du processus de commande maître ; le processus de commande maître acquiert le flux vidéo ; et le processus de commande maître envoie le flux vidéo à un serveur de diffusion en direct de façon à permettre au serveur de diffusion en direct d'envoyer le flux vidéo à un équipement d'extrémité d'auditoire qui accède au serveur de diffusion en direct.
PCT/CN2017/109669 2017-10-09 2017-11-07 Procédé et dispositif de diffusion en direct WO2019071678A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710929523.8A CN107613312B (zh) 2017-10-09 2017-10-09 一种直播的方法和装置
CN201710929523.8 2017-10-09

Publications (1)

Publication Number Publication Date
WO2019071678A1 true WO2019071678A1 (fr) 2019-04-18

Family

ID=61068246

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/109669 WO2019071678A1 (fr) 2017-10-09 2017-11-07 Procédé et dispositif de diffusion en direct

Country Status (2)

Country Link
CN (1) CN107613312B (fr)
WO (1) WO2019071678A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678801B (zh) * 2017-10-09 2018-09-04 武汉斗鱼网络科技有限公司 一种插件加载的方法和装置
CN107770567B (zh) * 2017-10-09 2018-08-21 武汉斗鱼网络科技有限公司 一种直播的方法和装置
CN111711826B (zh) * 2019-03-18 2023-11-03 北京奇虎科技有限公司 视频直播服务系统及方法
CN112839065B (zh) * 2019-11-22 2023-05-12 北京小米移动软件有限公司 信息处理方法、装置、第一设备及存储介质
CN113419783B (zh) * 2021-04-27 2023-09-19 中国电子科技集团公司第十四研究所 一种跨平台多进程的插件管理与过程调用方法
CN113852854B (zh) * 2021-08-11 2024-02-23 武汉光庭信息技术股份有限公司 基于Android系统的视频推流拉流实现方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742218A (zh) * 2010-01-19 2010-06-16 南京邮电大学 一种用于网络电视机顶盒之间的可视电话系统的实现方法
CN101739300A (zh) * 2008-11-18 2010-06-16 中兴通讯股份有限公司 一种多媒体终端进程间通讯的方法和系统
CN104053014A (zh) * 2013-03-13 2014-09-17 腾讯科技(北京)有限公司 一种基于移动终端的直播系统、方法和移动终端
US9602846B1 (en) * 2016-08-31 2017-03-21 Living As One, Llc System and method for asynchronous uploading of live digital multimedia with guaranteed delivery
CN106792034A (zh) * 2017-02-10 2017-05-31 深圳创维-Rgb电子有限公司 基于移动终端进行直播的方法及移动终端
CN106874020A (zh) * 2015-12-10 2017-06-20 五八同城信息技术有限公司 启动插件的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132385A1 (en) * 2003-10-06 2005-06-16 Mikael Bourges-Sevenier System and method for creating and executing rich applications on multimedia terminals
CN105872827A (zh) * 2015-12-07 2016-08-17 乐视云计算有限公司 移动终端中应用界面的直播方法及设备
CN106406961B (zh) * 2016-09-27 2021-01-15 北京奇虎科技有限公司 一种基于浏览器加载、提供应用程序的方法、装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739300A (zh) * 2008-11-18 2010-06-16 中兴通讯股份有限公司 一种多媒体终端进程间通讯的方法和系统
CN101742218A (zh) * 2010-01-19 2010-06-16 南京邮电大学 一种用于网络电视机顶盒之间的可视电话系统的实现方法
CN104053014A (zh) * 2013-03-13 2014-09-17 腾讯科技(北京)有限公司 一种基于移动终端的直播系统、方法和移动终端
CN106874020A (zh) * 2015-12-10 2017-06-20 五八同城信息技术有限公司 启动插件的方法及装置
US9602846B1 (en) * 2016-08-31 2017-03-21 Living As One, Llc System and method for asynchronous uploading of live digital multimedia with guaranteed delivery
CN106792034A (zh) * 2017-02-10 2017-05-31 深圳创维-Rgb电子有限公司 基于移动终端进行直播的方法及移动终端

Also Published As

Publication number Publication date
CN107613312A (zh) 2018-01-19
CN107613312B (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
WO2019071680A1 (fr) Procédé et appareil de chargement de module d'extension
WO2019071678A1 (fr) Procédé et dispositif de diffusion en direct
US7441020B2 (en) Media plug-in registration and dynamic loading
CN108174248B (zh) 视频播放方法、视频播放控制方法、装置、及存储介质
CN113542757B (zh) 云应用的图像传输方法、装置、服务器及存储介质
US20140237119A1 (en) Object migration system and method for web-based content service migration
US11490173B2 (en) Switch of audio and video
US20170346864A1 (en) System And Method For Video Gathering And Processing
WO2014089793A1 (fr) Procédé, dispositif et système de réacheminement vidéo et support lisible par ordinateur
KR101931514B1 (ko) 웹 브라우저에서 미디어의 재생과 백업을 동시에 수행하는 장치 및 방법
CN113784049B (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
WO2020151660A1 (fr) Procédé et système de mise en nuage de stb, un stb mince, un stb et une plateforme virtuels et un support de stockage
US11025695B2 (en) Techniques for modifying a rules engine in a highly-scaled computing environment
US11245885B2 (en) Method and system for playing media data
EP3474559B1 (fr) Procédé et appareil de lecture de télévision intelligente
CN104349177A (zh) 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统
US20170078388A1 (en) Browser-based virtual media administration
WO2019071679A1 (fr) Procédé et dispositif de diffusion en continu en direct
US11089381B2 (en) Apparatus and method for simultaneous playback and backup of media in a web browser
WO2021078208A1 (fr) Procédé d'acquisition d'informations, système de boîtier décodeur ayant subi une nuagisation, boîtier décodeur d'entité et support de stockage
CN108134957A (zh) 一种投屏方法、终端和计算机存储介质
CN111866508B (zh) 视频处理方法、装置、介质及电子设备
CN115920372A (zh) 数据处理方法及装置、计算机可读存储介质、终端
CN107026852B (zh) 一种解决大规模视频云应用中的网络性能瓶颈的方法
CN114390349B (zh) 一种视频播放控制方法、装置、终端和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17928791

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17928791

Country of ref document: EP

Kind code of ref document: A1