Display devices and media playback methods
By setting up a player and playback agent at the bottom layer of the display device and configuring their interaction interface, direct data transmission is achieved, solving the problem of low data transmission efficiency between the player and playback agent and improving the playback speed of media assets.
Patent Information
- Application Number
- CN202410006127.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-03
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2044-01-03
AI Technical Summary
In existing display devices, the data transmission efficiency between the player and the playback agent via the HTTP protocol is relatively low, which affects the playback efficiency of media assets.
Both the player and the playback agent are set at the system's bottom layer. Data transmission is carried out through control commands. The interaction interface between the player and the playback agent is configured so that the player can directly control the playback agent to open and read streaming media segments, thereby achieving direct data transmission.
This improves the data transmission efficiency between the player and the playback proxy, thereby increasing the playback speed of media assets.
Smart Images

Figure CN119420978B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of video playback technology, and in particular to a display device and a media playback method. Background Technology
[0002] When a player on a display device plays a video, it typically downloads the video streaming data from a server through a playback proxy. After obtaining the streaming data, the playback proxy generates an HTTP-based URL and sends this URL back to the player. Upon receiving this URL, the player and the playback proxy transmit the streaming data via an HTTP request-response interaction. This interaction method has low data transmission efficiency, affecting media playback efficiency. Summary of the Invention
[0003] To improve the media asset playback experience, this application provides a display device and a media asset playback method.
[0004] In a first aspect, this application provides a display device, which includes:
[0005] monitor;
[0006] A controller connected to the display, the controller comprising an application layer and a bottom layer, the application layer having a video playback program, and the bottom layer having a player and a playback proxy;
[0007] The controller is configured to:
[0008] The video playback program in the application layer receives input media asset playback instructions;
[0009] In response to the media asset playback command, the playback agent is started. The playback agent is configured to download the streaming media segments of the target media asset corresponding to the media asset playback command into the cache after startup, and to feed back the playback agent address of the streaming media segments in the cache to the video playback program.
[0010] The player is launched, and a playback instruction for the target media asset is sent to the player. The playback instruction includes the playback proxy address and the media asset identifier of the target media asset. The player is configured to parse the segment name of the streaming media segment from the playback proxy address and control the playback proxy to open the streaming media segment through an HTTP protocol connection interface. The method of controlling the playback proxy to open the streaming media segment includes: the player sending an open instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to open the cached streaming media segment in response to the open instruction; the player is also configured to control the playback proxy to return the video stream data of the streaming media segment through an HTTP protocol read interface. The method of controlling the playback proxy to return the video stream data of the streaming media segment includes: the player sending a read instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to feed back the video stream data of the streaming media segment to the player in response to the read instruction; and the player being configured to play the video stream data.
[0011] In some embodiments, the method of controlling the playback agent to open the streaming media segment further includes:
[0012] If the playback proxy returns a message indicating that the streaming media segment failed to open, a first HTTP request containing the media asset identifier and the segment name is sent to the playback proxy. The playback proxy is configured to open the streaming media segment in the cache in response to the first HTTP request.
[0013] In some embodiments, the method of controlling the playback agent to return the video stream data of the streaming media segment further includes:
[0014] If the playback proxy returns a message indicating that the streaming media segment failed to be read, a second HTTP request containing the media asset identifier and the segment name is sent to the playback proxy. The playback proxy is configured to respond to the second HTTP request by sending the video stream data of the streaming media segment back to the player.
[0015] In some embodiments, the method of controlling the playback agent to open the streaming media segment further includes:
[0016] When the system type of the display device is a first system type, an open instruction containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to open the streaming media segment in the cache in response to the open instruction.
[0017] When the system type of the display device is the second system type, a first HTTP request containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to open the streaming media segment in the cache in response to the first HTTP request.
[0018] In some embodiments, the method of controlling the playback agent to return the video stream data of the streaming media segment further includes:
[0019] When the system type of the display device is the first system type, a read instruction containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction and feed back the video stream data of the streaming media segment to the player.
[0020] When the system type of the display device is the second system type, a second HTTP request containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to respond to the second HTTP request and send the video stream data of the streaming media segment back to the player.
[0021] In some embodiments, the method of controlling the playback agent to return the video stream data of the streaming media segment further includes:
[0022] If the playback agent returns a message indicating that the streaming media segment has been successfully opened, a read instruction containing the media asset identifier and segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction by feeding back the video stream data of the streaming media segment to the player.
[0023] In some embodiments, the video playback program is further configured to:
[0024] In response to the media asset playback command, the media asset identifier is obtained from the control data of the control corresponding to the media asset playback command.
[0025] Secondly, this application provides a media asset playback method for a display device, the display device including a display and a controller, the controller being connected to the display, the controller including an application layer and a bottom layer, the application layer being configured with a video playback program, and the bottom layer being configured with a player and a playback proxy; the media asset playback method includes:
[0026] The video playback program in the application layer receives input media asset playback instructions;
[0027] In response to the media asset playback command, the playback agent is started. The playback agent is configured to download the streaming media segments of the target media asset corresponding to the media asset playback command into the cache after startup, and to feed back the playback agent address of the streaming media segments in the cache to the video playback program.
[0028] The player is launched, and a playback instruction for the target media asset is sent to the player. The playback instruction includes the playback proxy address and the media asset identifier of the target media asset. The player is configured to parse the segment name of the streaming media segment from the playback proxy address and control the playback proxy to open the streaming media segment through an HTTP protocol connection interface. The method of controlling the playback proxy to open the streaming media segment includes: the player sending an open instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to open the cached streaming media segment in response to the open instruction; the player is also configured to control the playback proxy to return the video stream data of the streaming media segment through an HTTP protocol read interface. The method of controlling the playback proxy to return the video stream data of the streaming media segment includes: the player sending a read instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to feed back the video stream data of the streaming media segment to the player in response to the read instruction; and the player being configured to play the video stream data.
[0029] In some embodiments, the method of controlling the playback agent to return the video stream data of the streaming media segment further includes:
[0030] If the playback agent returns a message indicating that the streaming media segment has been successfully opened, a read instruction containing the media asset identifier and segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction by feeding back the video stream data of the streaming media segment to the player.
[0031] In some embodiments, it also includes:
[0032] In response to the media asset playback command, the media asset identifier is obtained from the control data of the control corresponding to the media asset playback command.
[0033] The beneficial effects of the display device and media playback method provided in this application include:
[0034] This application establishes a software architecture foundation for data transmission between the player and playback agent via control commands by placing both the player and playback agent at the system's underlying layer. By configuring the interface on the player that interacts with the playback agent and configuring the playback agent's response method, the player can control the playback agent to open streaming media segments via the connection interface. The player can also control the playback agent to return video stream data of the streaming media segments to the player via the read interface. The player can then play media assets based on the video stream data returned by the playback agent. This embodiment of the application achieves direct data transmission between the player and playback agent via control commands, improving data transmission efficiency and thus increasing media asset playback speed. Attached Figure Description
[0035] To more clearly illustrate the implementation methods in the embodiments of this application or related technologies, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings.
[0036] Figure 1 The diagram illustrates an operational scenario between a display device and a control device according to some embodiments;
[0037] Figure 2 The diagram illustrates, by way of example, a hardware configuration block diagram of a control device according to some embodiments;
[0038] Figure 3 The diagram illustrates, by way of example, a hardware configuration block diagram of a display device according to some embodiments;
[0039] Figure 4 The diagram illustrates, by way of example, a software configuration in a display device according to some embodiments;
[0040] Figure 5 The diagram illustrates, by way of example, the application layer and the underlying layer of a display device according to some embodiments;
[0041] Figure 6 The diagram illustrates, exemplarily, the transmission of streaming media data according to some embodiments;
[0042] Figure 7 The image above exemplarily illustrates a homepage diagram of a video playback program according to some embodiments;
[0043] Figure 8 The diagram illustrates a details page according to some embodiments;
[0044] Figure 9 The diagram illustrates a flow chart of a media asset playback method according to some embodiments;
[0045] Figure 10 The diagram illustrates a timing sequence of a media asset playback process according to some embodiments. Detailed Implementation
[0046] To make the objectives and implementation methods of this application clearer, the exemplary implementation methods of this application will be clearly and completely described below with reference to the accompanying drawings of the exemplary embodiments of this application. Obviously, the exemplary embodiments described are only some embodiments of this application, and not all embodiments.
[0047] It should be noted that the brief descriptions of terms in this application are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.
[0048] The terms "first," "second," "third," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms are interchangeable where appropriate.
[0049] The terms “comprising” and “having”, and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device that includes a range of components is not necessarily limited to all of the components that are clearly listed, but may include other components that are not clearly listed or that are inherent to such product or device.
[0050] The display device provided in this application can have various implementation forms, such as a television, a smart television, a laser projection device, a monitor, an electronic bulletin board, an electronic table, etc. Figure 1 and Figure 2 This is one specific embodiment of the display device of this application.
[0051] Figure 1 This is a schematic diagram illustrating the operational scenario between the display device and the control unit according to the embodiment. Figure 1 As shown, the user can operate the display device 200 through the smart device 300 or the control device 100.
[0052] In some embodiments, the control device 100 may be a remote control. Communication between the remote control and the display device includes infrared protocol communication, Bluetooth protocol communication, and other short-range communication methods, controlling the display device 200 wirelessly or via wired means. Users can control the display device 200 by inputting user commands through buttons on the remote control, voice input, control panel input, etc.
[0053] In some embodiments, a smart device 300 (such as a mobile terminal, tablet computer, computer, laptop computer, etc.) may also be used to control the display device 200. For example, an application running on the smart device may be used to control the display device 200.
[0054] In some embodiments, the display device may receive instructions not through the aforementioned smart devices or control devices, but through touch or gestures.
[0055] In some embodiments, the display device 200 can also be controlled in ways other than the control device 100 and the smart device 300. For example, it can be controlled by directly receiving the user's voice commands through a module configured inside the display device 200 for acquiring voice commands, or it can be controlled by receiving the user's voice commands through a voice control device set outside the display device 200.
[0056] In some embodiments, the display device 200 also communicates with the server 400. The display device 200 may communicate via a local area network (LAN), wireless local area network (WLAN), and other networks. The server 400 may provide various content and interactive features to the display device 200. The server 400 may be a cluster or multiple clusters, and may include one or more types of servers.
[0057] Figure 2 An exemplary block diagram of the configuration of the control device 100 according to an exemplary embodiment is shown. Figure 2 As shown, the control device 100 includes a controller 110, a communication interface 130, a user input / output interface 140, a memory, and a power supply. The control device 100 can receive user input operation commands and convert the operation commands into commands that the display device 200 can recognize and respond to, thus acting as an intermediary for interaction between the user and the display device 200.
[0058] like Figure 3 The display device 200 includes at least one of the following: a tuner 210, a communicator 220, a detector 230, an external device interface 240, a controller 250, a display 260, an audio output interface 270, a memory, a power supply, and a user interface.
[0059] In some embodiments, the controller includes a processor, a video processor, an audio processor, a graphics processor, RAM, ROM, and a first interface to an nth interface for input / output.
[0060] The display 260 includes a display screen assembly for presenting images, a driving assembly for driving image display, a component for receiving image signals from the controller output, and a user control UI interface for displaying video content, image content, menu control interface, and user control UI interface.
[0061] The display 260 can be an LCD display, an OLED display, or a projection display, and can also be a projection device and a projection screen.
[0062] The communicator 220 is a component used to communicate with external devices or servers according to various communication protocol types. For example, the communicator may include at least one of the following: a Wi-Fi module, a Bluetooth module, a wired Ethernet module, other network communication protocol chips or near-field communication protocol chips, and an infrared receiver. The display device 200 can establish the transmission and reception of control signals and data signals with the external control device 100 or the server 400 through the communicator 220.
[0063] The user interface can be used to receive control signals from the control device 100 (such as an infrared remote control).
[0064] Detector 230 is used to collect signals from the external environment or to interact with the external environment. For example, detector 230 includes a light receiver, a sensor for collecting ambient light intensity; or, detector 230 includes an image acquisition device, such as a camera, which can be used to collect external environmental scenes, user attributes, or user interaction gestures; or, detector 230 includes a sound acquisition device, such as a microphone, for receiving external sounds.
[0065] The external device interface 240 may include, but is not limited to, one or more of the following: High Definition Multimedia Interface (HDMI), analog or high-definition component input interface (component), composite video input interface (CVBS), USB input interface (USB), RGB port, etc. It may also be a composite input / output interface formed by multiple interfaces mentioned above.
[0066] The tuner / demodulator 210 receives broadcast television signals via wired or wireless means, and demodulates audio and video signals, such as EPG data signals, from multiple wireless or wired broadcast television signals.
[0067] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.
[0068] The controller 250 controls the operation of the display device and responds to user operations through various software control programs stored in the memory. The controller 250 controls the overall operation of the display device 200. For example, in response to receiving a user command to select a UI object to display on the monitor 260, the controller 250 can execute operations related to the object selected by the user command.
[0069] In some embodiments, the controller includes at least one of a central processing unit (CPU), a video processor, an audio processor, a graphics processing unit (GPU), a RAM (Random Access Memory), a ROM (Read-Only Memory), a first to an nth interface for input / output, a communication bus, etc.
[0070] Users can input commands through a graphical user interface (GUI) displayed on the monitor 260, and the user input interface receives the user input commands through the GUI. Alternatively, users can input commands by entering specific sounds or gestures, and the user input interface receives the user input commands by recognizing the sounds or gestures through sensors.
[0071] A "user interface" is the medium through which an application or operating system interacts and exchanges information with the user. It converts information from its internal form to a form that the user can accept. A common form of user interface is the graphical user interface (GUI), which refers to a user interface related to computer operation displayed graphically. It can be an icon, window, control, or other interface element displayed on the screen of an electronic device. Controls can include visual interface elements such as icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets.
[0072] See Figure 4 In some embodiments, the system is divided into four layers, from top to bottom: the Applications layer (referred to as the "Application Layer"), the Application Framework layer (referred to as the "Framework Layer"), the Android runtime and system library layer (referred to as the "System Runtime Layer"), and the kernel layer.
[0073] In some embodiments, at least one application runs in the application layer. These applications may be Windows programs, system settings programs, or clock programs that come with the operating system; they may also be applications developed by third-party developers. In specific implementations, the application packages in the application layer are not limited to the examples above.
[0074] The framework layer provides application programming interfaces (APIs) and a programming framework for applications. The application framework layer includes predefined functions. It acts as a central processing unit, determining the actions taken by applications within the application layer. Through the API, applications can access system resources and obtain system services during execution.
[0075] like Figure 4 As shown, the application framework layer in this embodiment includes managers, content providers, etc., wherein the managers include at least one of the following modules: ActivityManager, which interacts with all activities running in the system; LocationManager, which provides access to system location services for system services or applications; PackageManager, which retrieves various information related to application packages currently installed on the device; NotificationManager, which controls the display and clearing of notification messages; and WindowManager, which manages icons, windows, toolbars, wallpapers, and desktop widgets on the user interface.
[0076] In some embodiments, the Activity Manager manages the lifecycle of individual applications and common navigation and back functions, such as controlling application exit, opening, and back actions. The Window Manager manages all window programs, such as obtaining the screen size, determining if a status bar is present, locking the screen, capturing the screen, and controlling display window changes (e.g., shrinking the display window, shaking the display, distorting the display, etc.).
[0077] In some embodiments, the system runtime library layer provides support for the upper layer, namely the framework layer. When the framework layer is used, the Android operating system runs the C / C++ libraries contained in the system runtime library layer to implement the functions that the framework layer needs to perform.
[0078] In some embodiments, the kernel layer is a layer between hardware and software. For example... Figure 4As shown, the kernel layer includes at least one of the following drivers: audio driver, display driver, Bluetooth driver, camera driver, WIFI driver, USB driver, HDMI driver, sensor driver (such as fingerprint sensor, temperature sensor, pressure sensor, etc.), and power driver.
[0079] In some embodiments, the hardware or software architecture can be based on the description in the above embodiments, and in some embodiments it can be based on other similar hardware or software architectures, as long as the technical solution of this application can be implemented.
[0080] In some embodiments, the framework layer includes a playback proxy, and the kernel layer includes a player. The playback proxy interacts with the server, downloads the video stream data of the media assets, and transmits the video stream data to the player for playback. Since the playback proxy and the player are at different system layers, data transmission needs to be performed via the HTTP protocol.
[0081] In some embodiments, to facilitate users in playing media resources on the display device, a software configuration diagram of the display device can also be found. Figure 5 , Figure 5 This is a schematic diagram of the application layer and the underlying layer of a display device according to some embodiments. Figure 5 As shown, the application layer includes a video player that can display multiple recommended media assets, and users can also search for the media assets they want to watch within the video player.
[0082] In some embodiments, the display device may be configured to enter the video playback program after power-on, and the homepage of the video playback program is the homepage of the display device.
[0083] In some embodiments, Figure 5 The underlying layer refers to the kernel layer, which can be configured with playback proxies and players. In these embodiments, the playback proxy has been moved from the framework layer to the underlying layer, so that the playback proxy and player are at the same system level.
[0084] The playback proxy can interact with the server to obtain streaming media data stored on the server. Compared with interacting directly with the server through the player, downloading streaming media data through the playback proxy has the advantage of faster download speed.
[0085] See Figure 6 On the display device, after the playback agent obtains the streaming media data, it stores the streaming media data in the cache. The player obtains the streaming media data by interacting with the playback agent.
[0086] In some embodiments, the player is used to play streaming media data. The video playback program can control the player to interact with the playback agent to obtain the streaming media data downloaded by the playback agent and play the streaming media data to realize media asset playback.
[0087] In some embodiments, the player may be a player built into a video playback program. The player is configured to interact with a playback agent according to the steps in the media asset playback method provided in the embodiments of this application, to obtain streaming media data downloaded by the playback agent, and to play the streaming media data to realize media asset playback.
[0088] See Figure 7 This is a schematic diagram of the homepage of a video playback program according to some embodiments, such as Figure 7 As shown, the video playback program's homepage includes a navigation bar 510 and a content display area below it. The navigation bar 510 displays multiple title controls, such as variety show controls, special section controls, education controls, and music controls. When the user moves the focus of the display device 200 between these title controls, the content display area 520 displays recommended content corresponding to the title control with focus. When the focus is on one of the title controls, the display device 200 shows the homepage corresponding to that title control.
[0089] In some embodiments, the content display area 520 corresponding to some title controls can display multiple recommendation slot controls 521, and each recommendation slot control 521 can correspond to a media asset. The user can move the focus of the display device to one of the recommendation slot controls 521 and input a trigger command for the recommendation slot control 521 to the display device through the control device. The trigger command is a playback command for the media asset corresponding to the recommendation slot control 521.
[0090] In some embodiments, the video player has a search function, which allows users to search for media resources they want to watch. The video player displays the searched media resources on the search results page through a recommendation control. Users can access the media resources by triggering the recommendation control on the search results page.
[0091] In some embodiments, after a user triggers a recommendation slot control 521, they can enter the details page of the media asset corresponding to that recommendation slot control 521. See also Figure 8 The details page can be set with a playback window 611. Based on the user's action upon entering the details page—specifically, the user's action of triggering a recommendation slot control 521—the video playback program retrieves the streaming media data corresponding to the media asset 521 from the server via a playback proxy, and then plays the streaming media data through the player in the playback window 611, thus achieving media asset playback.
[0092] In some embodiments, upon entering Figure 8 When the details page is displayed, the focus of the display device is on the playback window 611 by default. The user can input a full-screen playback command to the display device through the control device so that the target media can be played in full screen on the display device.
[0093] In some embodiments, after the playback proxy obtains the video stream data of the media assets from the server, the player interacts with the playback proxy via the HTTP protocol to obtain the streaming media data downloaded by the playback proxy. This interaction process includes the player sending an HTTP request to the playback proxy and the playback proxy sending an HTTP response to the player. However, because this interaction method requires establishing a connection between the player and the playback proxy before data transmission, the connection establishment process is cumbersome and time-consuming, resulting in low data transmission efficiency and consequently, poor playback speed of the media assets by the player.
[0094] To improve the playback speed of media assets, this application provides a media asset playback method. This method is based on the fact that both the player and the playback agent are at the bottom layer of the system and can interact through control commands. Therefore, after configuring the interaction interface of the player and the playback agent, the player and the playback agent do not need to transmit streaming media data through HTTP requests and HTTP responses, which can improve the playback speed of media assets.
[0095] In some embodiments, the interaction interface between the player and the playback proxy includes a connect interface and a read interface, both of which are HTTP-based interaction interfaces. Before configuring the player and playback proxy in this application embodiment, these two interfaces can interact based on the interaction process defined by the HTTP protocol, enabling the player to obtain streaming media data stored in the cache by the playback proxy. This interaction process may include: the player and the playback proxy establishing a connection; the playback proxy returning the connection result to the player; the player sending an HTTP request to the playback proxy; and the playback proxy returning the request result to the playback proxy. The HTTP request includes a request line, request headers, request data, and other data, while the request result includes a response line, response headers, a blank line, and a response body, and other data. This interaction process is time-consuming, affecting the data transmission efficiency between the player and the playback proxy.
[0096] In some embodiments, the display device is an iOS system device. This type of device does not support setting a playback proxy at the framework layer, making it impossible for this type of device to directly play media assets through the interaction between the video playback program, the player, and the playback proxy. To ensure compatibility with this type of device, this application embodiment sets the playback proxy at the system layer of this type of device, so that the player and the playback proxy are at the same system layer. After configuring the interaction interface between the player and the playback proxy, streaming media data can be transmitted between the player and the playback proxy, which can improve the speed of media asset playback by the player.
[0097] In some embodiments, configuring the player's connect interface includes configuring the connect interface to allow interaction with the playback agent to include sending an open command to the playback agent, the open command being used to open streaming media segments stored in the cache by the playback agent, wherein the playback agent stores the video stream data of the media asset in the cache in the form of streaming media segments.
[0098] In some embodiments, configuring the player's connect interface includes: interaction with the playback agent includes: sending an open command to the playback agent; if the playback agent returns a message indicating failure to open the streaming media segment, sending a first HTTP request to the playback agent, the first HTTP request being used to open the streaming media segment. This configuration ensures that the connect interface retains the HTTP-based interaction method, improving the success rate of opening streaming media segments.
[0099] In some embodiments, configuring the player's connect interface includes: interaction with the playback agent includes: sending an open command to the playback agent based on the display device's system type (a first system type), the open command being used to open the streaming media segment stored in the playback agent's cache, wherein the first system type may include an iOS system; and sending a first HTTP request to the playback agent based on the display device's system type (a second system type), the first HTTP request being used to open the streaming media segment, wherein the second system type may include an Android system. This configuration allows Android display devices to continue executing existing HTTP-based interaction methods, avoiding compatibility issues with older devices.
[0100] In some embodiments, configuring the player's read interface includes configuring the read interface such that the interaction with the playback agent includes sending a read instruction to the playback agent, the read instruction being used to obtain data of streaming media segments stored in the buffer by the playback agent.
[0101] In some embodiments, configuring the player's read interface includes: interaction with the playback agent includes: sending a read command to the playback agent; if the playback agent returns a message indicating failure to read the streaming media segment, sending a second HTTP request to the playback agent, the second HTTP request being used to retrieve data within the streaming media segment. This configuration ensures that the read interface retains the HTTP-based interaction method, improving the success rate of data transmission when opening streaming media segments.
[0102] In some embodiments, configuring the player's read interface includes: interaction with the playback agent includes: sending a read instruction to the playback agent based on the display device's system type being a first system type; and sending a second HTTP request to the playback agent based on the display device's system type being a second system type. This second HTTP request is used to retrieve data within a streaming media segment, wherein the second system type may include the Android system. This configuration allows Android display devices to continue executing existing HTTP-based interaction methods, avoiding compatibility issues with older devices.
[0103] In some embodiments, to enable data exchange between the player and the playback agent via control commands, the playback agent also needs to be configured. The configuration of the playback agent matches the configuration of the player, and includes configuring the playback agent to open the buffered streaming media segments in response to an open command; and to feed back the video stream data of the streaming media segments to the player in response to a read command.
[0104] In some embodiments, the configuration of the playback agent further includes: after successfully opening a streaming media segment, returning a message indicating that the streaming media segment was successfully opened to the player; and after failing to open a streaming media segment, returning a message indicating that the streaming media segment failed to open to the player, so that the player executes the corresponding processing flow according to whether the streaming media segment was successfully opened or failed to open.
[0105] In some embodiments, the configuration of the playback agent further includes: after failing to read the video stream data of a streaming media segment, returning a message indicating the failure to read the streaming media segment to the player, so that the player can execute the corresponding processing flow according to the failure to read the streaming media segment.
[0106] Based on the above configuration of the player and playback proxy, the media asset playback method provided in this application embodiment can be found in [reference needed]. Figure 9 This is a flowchart illustrating a media asset playback method according to some embodiments, such as... Figure 9 As shown, the method may include the following steps:
[0107] Step S101: The video playback program in the application layer receives the input media asset playback command.
[0108] In some embodiments, the media asset recommendation page of a video playback program, such as the homepage of a display device, has multiple recommendation slot controls. A user can click on a recommendation slot control to input a media asset playback command corresponding to that recommendation slot into the display device; this media asset can be referred to as the target media asset. The display device, based on the foreground application (which is the video playback program), passes the media asset playback command to the application-layer video playback program.
[0109] In some embodiments, users may also input playback commands for the target media asset through voice input or other means.
[0110] Step S102: In response to the media asset playback command, start the playback agent. The playback agent is configured to download the streaming media segment of the target media asset corresponding to the media asset playback command to the cache after startup, and to feed back the playback agent address of the streaming media segment in the cache to the video playback program.
[0111] In some embodiments, after receiving a media asset playback instruction, the video playback program obtains the media asset information from the control data of the recommendation slot control of the media asset corresponding to the media asset playback instruction. The media asset information may include the media asset ID (Identity document) and the playback address, wherein the playback address may be a playback address based on the HTTP protocol, and the playback address is used to download the streaming media data of the target media asset.
[0112] In some embodiments, after receiving a media asset playback instruction, the video playback program activates a playback agent and sends the media asset information of the target media asset to the playback agent. This media asset information may include a playback address.
[0113] In some embodiments, the playback agent creates a cache in the memory of the display device upon startup.
[0114] In some embodiments, the playback proxy configures the cache by: setting the shared cache to allow files within the cache to be opened via the open interface, and setting files in the cache that are in an open state to be read via the read interface.
[0115] In some embodiments, after startup, the playback proxy accesses the server based on the playback address of the target media asset provided by the video playback program, downloads the streaming media data of the target media asset, stores the streaming media data in a shared cache in the form of streaming media segments, and generates a playback proxy address for the streaming media data, i.e., the storage address of the downloaded streaming media data in the cache. This storage address is the URL (Uniform Resource Locator) address corresponding to an M3U8 file, which is a list of streaming media segments. The segment list may include the segment name and storage address of each streaming media segment, and the URL address is a storage address based on the HTTP protocol.
[0116] In some embodiments, after generating the playback proxy address, the playback proxy returns the playback proxy address to the video playback program.
[0117] Step S103: Start the player and send a playback instruction for the target media asset to the player. The playback instruction includes the playback proxy address and the media asset identifier of the target media asset. The player is configured to parse the segment name of the streaming media segment from the playback proxy address and control the playback proxy to open the streaming media segment through an HTTP protocol connection interface. The method of controlling the playback proxy to open the streaming media segment includes: the player sending an open instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to open the buffered streaming media segment in response to the open instruction; the player is also configured to control the playback proxy to return the video stream data of the streaming media segment through an HTTP protocol read interface. The method of controlling the playback proxy to return the video stream data of the streaming media segment includes: the player sending a read instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to feed back the video stream data of the streaming media segment to the player in response to the read instruction; and the player being configured to play the video stream data.
[0118] In some embodiments, the video playback program launches the player based on the playback proxy address returned by the playback proxy, and sends a playback instruction for the target media asset to the player. This playback instruction may include the playback proxy address and media asset identifier of the target media asset. In some embodiments, the player initializes after startup, parses the URL address (which is an HTTP-based URL address) to obtain an M3U8 file, and retrieves a list of segments of the target media asset from the M3U8 file. This list may include the EXTINF tag and segment name of each streaming media segment of the target media asset, with the EXTINF tag and segment name corresponding to each other.
[0119] In some embodiments, the player is configured to, after obtaining the list of segments, send an open instruction for one of the streaming media segments of the target media asset, such as the first streaming media segment, to the playback agent via the connect interface of the HTTP protocol. The open instruction may include the media asset identifier and segment name of the target media asset.
[0120] For example, the code for the open instruction may include:
[0121] requestDataFromBlockName(getChannelId(),h->ts_filename).
[0122] Wherein, `channelid` is the media asset identifier of the target media asset, and `BlockName` is the segment name. The above code indicates that a request is made to the playback proxy to connect to the specified streaming media segment. The specified streaming media segment is the streaming media segment corresponding to the media asset identifier and segment name of the target media asset. Since the target media asset usually includes multiple streaming media segments, the above segment names can be `Block-0.data`, `Block-1.data`, `Block-2.data`, `Block-3.data`, etc., where `Block-0.data` represents the segment name of the first streaming media segment of the target media asset, `Block-1.data` represents the segment name of the second streaming media segment of the target media asset, `Block-2.data` represents the segment name of the third streaming media segment of the target media asset, `Block-3.data` represents the segment name of the fourth streaming media segment of the target media asset, and so on.
[0123] In some embodiments, after receiving the open instruction, the playback agent performs the action of opening the corresponding streaming media segment of the target media in the shared cache through the open interface, generates the status information of the streaming media segment, that is, a message indicating whether the streaming media segment has failed to open or has been opened successfully, and returns the status information of the streaming media segment in the shared cache to the player. If the streaming media segment is opened successfully, the status information is "opened"; if the streaming media segment fails to open, the status information is "not opened".
[0124] In some embodiments, after the player sends an open instruction for one of the streaming media segments of the target media asset to the playback agent, it may, after a preset time interval, send a read instruction for the streaming media segment to the playback agent through the read interface of the HTTP protocol. The read instruction may include the media asset identifier and segment name of the target media asset corresponding to the open instruction.
[0125] In some embodiments, when the player receives the status information of the streaming media segment and the status information indicates that it is open, it can then send a read instruction for the streaming media segment to the playback agent through the read interface of the HTTP protocol. The read instruction may include the media asset identifier of the media asset corresponding to the open instruction.
[0126] For example, the code for the read instruction may include:
[0127] len = http_api_read(s->hd,buf,len,channelid,h->ts_filename); / / Read data based on channelid and save it to buf.
[0128] Here, channelid is the media asset identifier of the target media asset, and filename is the segment name. The above code requests the playback agent to read the specified media asset, that is, the data of the target media asset.
[0129] In some embodiments, after receiving the read instruction, the playback agent reads the segment data of the corresponding streaming media segment in the shared buffer through the read interface and returns it to the player.
[0130] In some embodiments, after receiving the segmented data of the target media asset, the player parses and plays the segmented data to achieve playback of the target media asset.
[0131] As can be seen from the above embodiments, this application establishes a software architecture foundation for data transmission between the player and the playback agent via control commands by placing both the player and the playback agent at the system's bottom layer. By configuring the interface on the player that interacts with the playback agent and configuring the playback agent's response method, the player can control the playback agent to open streaming media segments through the connection interface. The player can also control the playback agent to return video stream data of the streaming media segments to the player through the reading interface. Furthermore, the player can play media assets based on the video stream data returned by the playback agent. This application embodiment achieves direct data transmission between the player and the playback agent via control commands, improving data transmission efficiency and thus increasing media asset playback speed.
[0132] To further illustrate the media asset playback method provided in the embodiments of this application, Figure 10 A schematic diagram illustrating the interaction between a display device and a server according to some embodiments is shown.
[0133] like Figure 10 As shown, after the user enters a media asset playback command in the video playback program, the video playback program obtains the media asset information such as the media asset identifier and playback address corresponding to the media asset playback command, and then starts the playback agent to send the media asset information to the playback agent.
[0134] In some embodiments, after the playback agent is started, it creates a cache in the memory of the display device, sets the cache to be able to open files within the cache via the open interface, and sets the cache to be able to read data from files within the cache via the read interface.
[0135] In some embodiments, the playback agent downloads the streaming media data of a media asset from the server based on the playback address in the media asset information sent by the video player. The downloaded streaming media data is stored in a cache, and a playback agent address for the streaming media data is generated. This playback agent address, along with the media asset identifier corresponding to the media asset playback instruction, is then returned to the video player.
[0136] In some embodiments, after receiving the playback proxy address sent by the playback proxy, the video playback program starts the player and sends the playback proxy address to the player.
[0137] In some embodiments, after receiving the playback proxy address, the player parses the address to obtain a segment list, which includes the segment name of each segment. The player then sends an instruction to the playback proxy via an HTTP connection interface to open one of the segments in the segment list. This instruction includes the media asset identifier and the segment name.
[0138] In some embodiments, after receiving the operation instruction, the playback agent opens the segment specified in the operation instruction sent by the player through the cached open interface according to the media asset identifier and segment name, and then returns the segment status information to the player. The status information may include an open status or an closed status. If the opening is successful, the status information is an open status; if the opening fails, the status information is a closed status.
[0139] In some embodiments, after receiving the status information, if the status information is in the "open" state, the player sends a read instruction to the playback agent via the HTTP protocol read interface to read one of the segments. The read instruction includes the media asset identifier and the segment name.
[0140] In some embodiments, after receiving the read instruction, the playback agent reads the data of the segment specified in the operation instruction sent by the player according to the segment name through the cached read interface, and then returns the segment data to the player.
[0141] In some embodiments, after receiving the data of a streaming media segment, the player plays the streaming media segment of the media asset according to the data of the segment. The playback process may include conventional steps of streaming media segmentation such as parsing audio and video streams, creating decoders, decoding audio and video streams, and rendering audio and video streams, which will not be described in detail here.
[0142] In some embodiments, after the player reads the data in a streaming media segment of the target media asset through the playback agent, it can continue to send the opening instruction and reading instruction for the next streaming media segment to the playback agent, so as to read and play the data of the next streaming media segment of the target media asset, and so on, to achieve continuous playback of the target media asset.
[0143] As can be seen from the above embodiments, this application sets both the playback proxy and the player at the system's underlying layer, enabling the playback proxy and the player to transmit data via control commands without needing to use the HTTP protocol. By configuring the player's interface and the playback proxy's response method, the playback proxy and the player can interact via control commands (open command, read command), allowing the playback proxy to quickly transmit streaming media data to the player for playback, which helps improve the media asset playback speed.
[0144] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
[0145] For ease of explanation, the above description has been provided in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or to limit the embodiments to the specific forms disclosed above. Various modifications and variations can be obtained based on the above teachings. The selection and description of the above embodiments are for the purpose of better explaining the principles and practical applications, thereby enabling those skilled in the art to better utilize the described embodiments and various different variations of embodiments suitable for specific use considerations.
Claims
1. A display device, characterized in that, include: monitor; A controller connected to the display, the controller comprising an application layer and a bottom layer, the application layer having a video playback program, and the bottom layer having a player and a playback proxy; The controller is configured to: The video playback program in the application layer receives input media asset playback instructions; In response to the media asset playback command, the playback agent is started. The playback agent is configured to download the streaming media segments of the target media asset corresponding to the media asset playback command into the cache after startup, and to feed back the playback agent address of the streaming media segments in the cache to the video playback program. The player is launched, and a playback instruction for the target media asset is sent to the player. The playback instruction includes the playback proxy address and the media asset identifier of the target media asset. The player is configured to parse the segment name of the streaming media segment from the playback proxy address and control the playback proxy to open the streaming media segment through an HTTP protocol connection interface. The method of controlling the playback proxy to open the streaming media segment includes: the player sending an open instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to open the cached streaming media segment in response to the open instruction; the player is also configured to control the playback proxy to return the video stream data of the streaming media segment through an HTTP protocol read interface. The method of controlling the playback proxy to return the video stream data of the streaming media segment includes: the player sending a read instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to feed back the video stream data of the streaming media segment to the player in response to the read instruction; and the player being configured to play the video stream data.
2. The display device according to claim 1, characterized in that, The method for controlling the playback agent to open the streaming media segment further includes: If the playback proxy returns a message indicating that the streaming media segment failed to open, a first HTTP request containing the media asset identifier and the segment name is sent to the playback proxy. The playback proxy is configured to open the streaming media segment in the cache in response to the first HTTP request.
3. The display device according to claim 1, characterized in that, The method for controlling the playback agent to return the video stream data of the streaming media segment further includes: If the playback proxy returns a message indicating that the streaming media segment failed to be read, a second HTTP request containing the media asset identifier and the segment name is sent to the playback proxy. The playback proxy is configured to respond to the second HTTP request by sending the video stream data of the streaming media segment back to the player.
4. The display device according to claim 1, characterized in that, The method for controlling the playback agent to open the streaming media segment further includes: When the system type of the display device is a first system type, an open instruction containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to open the streaming media segment in the cache in response to the open instruction. When the system type of the display device is the second system type, a first HTTP request containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to open the streaming media segment in the cache in response to the first HTTP request.
5. The display device according to claim 1, characterized in that, The method for controlling the playback agent to return the video stream data of the streaming media segment further includes: When the system type of the display device is the first system type, a read instruction containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction and feed back the video stream data of the streaming media segment to the player. When the system type of the display device is the second system type, a second HTTP request containing the media asset identifier and the segment name is sent to the playback agent. The playback agent is configured to respond to the second HTTP request and send the video stream data of the streaming media segment back to the player.
6. The display device according to claim 1, characterized in that, The method for controlling the playback agent to return the video stream data of the streaming media segment further includes: If the playback agent returns a message indicating that the streaming media segment has been successfully opened, a read instruction containing the media asset identifier and segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction by feeding back the video stream data of the streaming media segment to the player.
7. The display device according to claim 1, characterized in that, The video playback program is also configured to: In response to the media asset playback command, the media asset identifier is obtained from the control data of the control corresponding to the media asset playback command.
8. A method for playing media assets, characterized in that, For a display device, the display device includes a display and a controller, the controller is connected to the display, the controller includes an application layer and a bottom layer, the application layer is provided with a video playback program, and the bottom layer is provided with a player and a playback proxy; The media asset playback method includes: The video playback program in the application layer receives input media asset playback instructions; In response to the media asset playback command, the playback agent is started. The playback agent is configured to download the streaming media segments of the target media asset corresponding to the media asset playback command into the cache after startup, and to feed back the playback agent address of the streaming media segments in the cache to the video playback program. The player is launched, and a playback instruction for the target media asset is sent to the player. The playback instruction includes the playback proxy address and the media asset identifier of the target media asset. The player is configured to parse the segment name of the streaming media segment from the playback proxy address and control the playback proxy to open the streaming media segment through an HTTP protocol connection interface. The method of controlling the playback proxy to open the streaming media segment includes: the player sending an open instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to open the cached streaming media segment in response to the open instruction; the player is also configured to control the playback proxy to return the video stream data of the streaming media segment through an HTTP protocol read interface. The method of controlling the playback proxy to return the video stream data of the streaming media segment includes: the player sending a read instruction containing the media asset identifier and the segment name to the playback proxy; the playback proxy being configured to feed back the video stream data of the streaming media segment to the player in response to the read instruction; and the player being configured to play the video stream data.
9. The media asset playback method according to claim 8, characterized in that, The method for controlling the playback agent to return the video stream data of the streaming media segment further includes: If the playback agent returns a message indicating that the streaming media segment has been successfully opened, a read instruction containing the media asset identifier and segment name is sent to the playback agent. The playback agent is configured to respond to the read instruction by feeding back the video stream data of the streaming media segment to the player.
10. The media asset playback method according to claim 8, characterized in that, Also includes: In response to the media asset playback command, the media asset identifier is obtained from the control data of the control corresponding to the media asset playback command.
Citation Information
Patent Citations
Method, system and equipment of stream medium order program
CN101252600A
Pre-loading method for short video processing
CN113207011A