The present invention relates to video playing technology, and more particularly to a video playing method, a video playing terminal and a computer readable medium.
In conventional video playing solutions, video playing terminals retrieve video contents from servers, and servers usually provide several versions of different definitions for each video. For example, the server may provide high definition version, standard definition version or ultra-high definition version for a multimedia content. The different versions are stored in independent video files and each of them has a different identifier (ID). The user could select the intended definition of the video to play. However, the bit rate of a video file depends on its definition. For example, a video file of the high definition has a bit rate of 500 Kbps, and a video file of the ultra-high definition has a bit rate of 1 Mbps. Correspondingly, different minimum network bandwidth is required to play online video file of different definitions fluently. Generally, a network bandwidth of 500 Kbps is required to fluently play a high definition video, and a network bandwidth of 1 Mbps is required to fluently play an ultra-high definition video. In conventional video playing solutions, users usually don't know which definition is matching to their network bandwidth, and thus they can't get better video watching experience. For example, users may select the definition of a high bit rate which frequently causing buffering due to the inadequate network bandwidth and waste of the user's time.
To avoid the influent video playing, a video playing method and apparatus are provided. A computer readable medium storing computer executable instructions to cause the computer to perform the video playing method is further provided.
A video playing method includes: receiving a video playing request from a user; retrieving description information associated with a requested video designated by the video playing request, the description information comprising: definition information describing at least one supported definition of the requested video; and detecting current network condition, and selecting a definition matching to the current network condition to play the requested video.
A video playing terminal includes: memory; one or more processors; and one or more modules stored in the memory and configured for execution by the one or more processors, the one or more modules includes instructions: to receive a video playing request from a user; to retrieve description information associated with a requested video designated by the video playing request, the description information comprising: definition information describing at least one supported definition of the requested video; to detect current network condition; and to select a definition matching to the current network condition to play the requested video.
A computer readable medium, storing one or more programs, the one or more programs comprising instructions, which when executed by a video playing terminal, cause the video playing terminal to perform the above method.
By selecting a definition matching to the current network environment to play, the video playing method and terminal would ensure the fluent playing process.
To make the technical solutions and advantages of the present invention more apparently, embodiments of the present invention will be described in detail accompanying with figures as follows.
In the technical solution provided in the present disclosure, a video playing terminal retrieve description information of a requested video, responding to a video playing request from a user. The description information includes definition information that describes at least one supported definition of the requested video. The video playing apparatus further detects the current network condition and selects a definition matching to the current network condition to play. As a result, influent playing due to mismatching of the current network condition and the selected definition is avoided, and the fluent video playing is ensured.
In one embodiment, the description information is retrieved from a server. For example, referring to
Examples of the video playing terminal 100 includes, but not limited to, a television, a desktop computer, a laptop computer, a tablet PC (including, but not limited to, Apple iPad and other touch-screen devices running Apple iOS, Microsoft Surface and other touch-screen devices running the Windows operating system, and tablet devices running the Android operating system), a mobile phone, a smartphone (including, but not limited to, an Apple iPhone, a Windows Phone and other smartphones running Windows Mobile or Pocket PC operating systems, and smartphones running the Android operating system, the Blackberry operating system, or the Symbian operating system), an e-reader (including, but not limited to, Amazon Kindle and Barnes & Noble Nook), a laptop computer (including, but not limited to, computers running Apple Mac operating system, Windows operating system, Android operating system and/or Google Chrome operating system), or an on-vehicle device running any of the above-mentioned operating systems or any other operating systems, all of which are well known to those skilled in the art.
The memory 102 may include high speed random access memory and may also include non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid state memory devices. In some embodiments, the memory 102 may further include storage remotely located from the one or more processors 106, for instance network attached storage accessed via network interface controller 110 and a communications network (not shown) such as the Internet, intranet(s), Local Area Networks (LANs), Wireless Local Area Networks (WLANs), Storage Area Networks (SANs) and the like, or any suitable combination thereof Access to the memory 102 by other components of the server 100, such as the CPU 106 and the peripherals interface 108 may be controlled by the memory controller 104.
The peripherals interface 108 couples the input and output peripherals of the device to the CPU 106 and the memory 102. The one or more processors 106 run various software programs and/or sets of instructions stored in the memory 102 to perform various functions for the video playing terminal 100 and to process data.
In some embodiments, the peripherals interface 108, the CPU 106, and the memory controller 104 may be implemented on a single chip, such as a chip 111. In some other embodiments, they may be implemented on separate chips.
The network interface controller 110 receives and sends network signals. The network interface controller 110 converts electrical signals/optical signals/electromagnetic waves and communicates with other devices such as other servers or routers. As such, the server 100 may receive a web request through the network interface controller 110 and send data to a client using the network interface controller 110.
In some embodiments, there are software components stored in the memory 102. For example, the software components include an operating system 122, and a video playing module 124.
The operating system 122 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, IOS, Android, WINDOWS MOBILE) includes various software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components.
The video playing module 124, for example, provides an interface that shows a list of videos. The user could select a video in the list to play; in other words, the user may launch a video playing request in the interface. After receiving the video playing request, the video playing module 124 performs a video playing method, which is described in the following embodiments.
The description information of the requested video may include: definition information that describes at least one supported definition of the video. The definition information may include a definition identifier (ID) which uniquely representing a definition. For example, ID number “1” represents a first definition (e.g., 500 Kbps), and ID number “2” represents a second definition (e.g., 1 Mbps). The definition information may also include the names of the definition such as standard definition, high definition, full high definition, and ultra-high definition etc. The definition information may also include the bit rate such as 300 Kbps, 500 Kbps etc. It is to be noted that the bit rate of a video file is equal to a bandwidth required to play the video file fluently. The definition information may be stored in a data file or a database. The data file or the database can be deployed in the video playing terminal or a server (e.g., the server 200), and the server may store the definition information in a listing table, as shown in
In the illustrated example of
The description information of the requested video may also include the identifier or the name of the requested video, and the source universal resource locator (URL) for each definition. The description information may be stored in video playing terminal 100 or the server 200 (e.g., a video server), and the server 200 may store the description information in a listing table, as illustrated in
The network condition may include network bandwidth. For example, the network bandwidth may be 500 Kbps, 2 Mbps, etc. The network condition may further include network delay information, for example, transmission delay, propagation delay, and processing delay etc. Transmission delay (or store-and-forward delay, also known as packetization delay) is the amount of time required to push all of the packet's bits into the wire. In other words, this is the delay caused by the data-rate of the link. Propagation delay is the amount of time it takes for the head of the signal to travel from the sender to the receiver. Processing delay is the time it takes routers to process the packet header. The network condition may yet further include other parameters that representing network status such as bandwidth-delay product. Bandwidth-delay product refers to the product of a data link's capacity (in bits per second) and its end-to-end delay (in seconds).
In one embodiment, the delay information is obtained by calling network testing interface provided by the operating system. Taking the Windows system as an example, the command “ping” or the command “traceroute” can be used in the command line to trace the transmission of data packets on the network. The network bandwidth can be obtained by a special testing process. For example, after downloading a data file from the internet, and the average downloading rate can be used as the network bandwidth.
A video playing method in accordance with embodiments will be described in detail below with reference to
Referring to
Step S101, retrieving description information associated with a requested video according to a video playing request launched by a user.
The user can launch the video playing request by selecting a video from a local playing list provided by the video playing module 124, or through loading a video playing webpage using a browser. In step S101, according to the video playing request launched by the user, the description information associated with the requested video can be obtained. The description information may include definition information describing at least one supported definition of the requested video.
If the description information is stored in the video playing terminal, then the description information can be directly read from the local data file or database. If the description information is stored in the server-side, a web request can be send to the database for retrieving the description information.
Step 102, detecting the current network condition and select a definition matching to the current network condition to play the requested video.
The current network condition may include the current network bandwidth. In step S102, the current network bandwidth can be detected with a known bandwidth detecting software or tool, and a definition matching to the current network bandwidth is selected to play the requested video. The definition matching to the current network bandwidth means that the bit rate is less than or equal to that required by the definition, or in other words, means the definition having a bit rate not more than the current network bandwidth. For example, if the requested video supports three definitions of “standard definition”, “high definition” and “ultra-high definition”, and the current network bandwidth is 480 Kbps, then in step S102, definitions having a bit rate not more than 480 Kbps should be selected. Referring to the listing table shown in
Referring to
Step S201, receiving a video playing request from a user.
The user can send the video playing request by selecting a video from a local playing list, or through loading a video playing webpage using a browser. In step S201, the video playing request launched by the user through above manners is received. The video playing request may include the ID or the name of the requested video.
Step S201, retrieving description information associated with the ID or name of the requested video from a server.
In step S202, according to the ID or the name of the requested video sent by the user, the description information can be retrieved from the server. For example, referring to the listing table shown in
The step S201 and the step S202 can be a more detailed implemention example of the step S101 in
Step S203, detecting the current network condition.
The current network condition may include the current network bandwidth. In step S203, the current network bandwidth can be detected with a known bandwidth detecting software or tool, and the detail detecting procedure can be referred to the known technique.
Step S204, obtaining definitions having a bit rate less than or equal to the current network bandwidth according to the definitions supported by the requested video.
Step S205, selecting a definition matching to the current network condition.
In step S204, the definitions having a bit rate less than or equal to (not more than) the current network bandwidth can be obtained according to the definitions supported by the requested video. For example, as shown in
Step S206, obtaining a source URL corresponding to the selected definition of the requested video, downloading and playing the requested video.
In step S206, the source URL corresponding to the selected definition of the requested video can be obtained from the server. For example, in step S204, the “standard definition” is selected for the film C, then the source URL corresponding to the “standard definition” of the film C that represented by the ID “3” can be read from the listing table shown in
It is to be noted that the number of the definition(s) matching to the current network condition selected in step S204 may be more than one. For example, the film C supports two definitions: “standard definition” and “ultra-high definition”. If the detected current network bandwidth is 1 Mbps, according to the listing table shown in
Manner 1: selecting a definition having a bit rate most close to the current network bandwidth from the obtained at least one definitions having a bit rate less than or equal to the current network bandwidth as the definition matching to the current network condition.
The primary objective of this manner is to select a definition having a bit rate most close to the current network bandwidth, and the selecting procedure may include the following steps: comparing the bit rate of the obtained at least one definitions and the current network bandwidth, getting the smallest difference between the bit rate and the network bandwidth, and selecting the definition corresponding to the smallest difference. For example, the film C supports two definitions: “standard definition” and “ultra-high definition”. If the network bandwidth is detected to be 1 Mbps (1000 Kbps), as shown in
Manner 2: providing the obtained definitions having a bit rate less than or equal to the current network bandwidth to the user for selecting; and when one definition is detected to be selected obtaining the selected definition as the definition matching to the current network condition.
In this manner, the selectable definitions can be displayed to the user in the form of menus, buttons and radio buttons etc. and the user could select the intended definition himself. Playing the requested video with the definition selected by the user is most satisfying with the definition demand of the user.
Manner 3: providing the obtained definitions having a bit rate less than or equal to the current network bandwidth to the user for selecting and further suggesting a most appropriate definition to the user; when one definition is detected to be selected, obtain the selected definition as the definition matching to the current network condition. The most appropriate definition to the user, for example, is the definition matching to the current network condition obtained according to the manner 1.
In this manner, not only all the definitions matched by the current network bandwidth are displayed to the user, but also the most appropriate definition is suggested, and thus this manner would improve the watching experience to the maximum extent.
It is further to be noted that the above three manners can be applied flexibly according to real demands, and any one of them or any combination of them can be used.
The step S203 through the step S206 can be a more detailed implemention example of the step S102 in
If the requested video supports more than one definition, the user can switch the definition during the playing process of the requested video. That is, the video playing method may further include:
Step S207, if a definition switching request from a user is received, recording the current playing time of the requested video.
In step S207, if a definition switching request from a user is received, the current playing time is located and recorded.
Step S208, obtaining a source URL corresponding to the target definition of the video, and downloading the requested video starting from the current playing time and then playing the downloaded video.
By the steps S207 and S208, the current playing time of the requested video can be located automatically when the user switches the definition. In other words, the current watching progress of the user is located and the requested video corresponding to the target definition is downloaded starting from the current playing time. As a result, the seamless playing between two different definitions is achieved, and the user gets the seamless watching experience when the definition is switched.
In the video playing method of the present embodiment, the most appropriate definition for the user is selected automatically to play the requested video according to the current network environment, and this avoids influent playing when the bit rate of the selected definition is not matching to the current network environment. The present embodiment can ensure the fluent playing.
Corresponding to the video playing method shown in
Referring to
The user can launch the video playing request by selecting a video from a local playing list provided by the video playing module 124, or through loading a video playing webpage using a browser. The information retrieving module 11 retrieves the description information associated with the requested video form a server according to the video playing request. The description information includes definition information describing at least one supported definition of the requested video.
The video playing module further includes a network detecting module 12, configured to detect the current network condition.
The current network condition may include the current network bandwidth. The network detecting module 12 can utilize a known bandwidth detecting software or tool to detect the current network bandwidth of the user, and the detail detecting procedure can be referred to the known technique.
The video playing module 124 further includes a playing module 13, configured to select a definition matching to the current network condition detected by the network detecting module 12 to play the requested video.
The playing module 13 may select the definition matching to the detected current network bandwidth to play the requested video. The definition matching to the detected current network bandwidth refers to the definition which has a bit rate less than or equal to the current network bandwidth, in other words, has a bit rate not more than the current network bandwidth. For example, if the requested video support three definitions of “standard definition”, “high definition” and “ultra-high definition”, and the detected current network bandwidth is 480 Kbps, then the playing module 12 selects a definition having a bit rate not more than 480 Kbps to play the requested video. Referring to the listing table shown in
Referring to
The user can send the video playing request by selecting a video from a local playing list, or through loading a video playing webpage using a browser. The receiving module 101 receives the video playing request sent by the user using the above methods. The video playing request may include the ID or the name of the requested video.
The information retrieving module 11 further includes a retrieving module 103, configured to retrieve the description information associated with the requested video form the server according to the ID or the name of the requested video received by the receiving module 101.
The retrieving module 11 can retrieve the description information associated with the requested video from the server according to the ID or the name of the requested video sent by the user. For example, the retrieving module 11 can read the description information such as the definition information describing the supported definition of the requested video, the source URL of each definition from the listing table shown in
Referring to
The playing module 103 further includes a selecting module 132, configured to select a definition matching to the current network condition from the definitions obtained by the definition obtaining module 131. The current network condition is detected by a network detecting module.
The selecting module 132 can select a definition matching to the detected current network bandwidth according to the supported definition of the requested video, in other words, select a definition having a bit rate less than or equal to (not more than) the current network bandwidth. For example, as shown in
The playing module 103 further includes a downloading module 133, configured to obtain the source URL of the requested video corresponding to the selected definition and then download the requested video.
The downloading module 133 can obtain the source URL of the requested video corresponding to the selected definition from the server. For example, the “standard definition” is selected by the selecting module 132 for the film C, then the source URL of the film C corresponding to the “standard definition” represented by the ID “3” can be read from the listing table shown in
The playing module 13 further includes a playing sub-module 134, configured to play the requested video downloaded by the downloading module 133.
The playing sub-module 134 can play the downloaded video in a window or a webpage navigated by a browser.
The selecting module 132, for example, is used to select a definition having a bit rate most close to the current network bandwidth from the obtained definitions having a bit rate less than or equal to the current network bandwidth. The primary objective of this manner is to select a definition having a bit rate most close to the current network bandwidth and this procedure may include, if at least one (e.g. two) definitions matching to the current network bandwidth are obtained by the definition obtaining module 131, the selecting module 132 compares the obtained definitions and the current network bandwidth, calculating the minimum difference between them, and selecting the definition that has the smallest difference. For example, the film C supports two definitions: “standard definition” and “ultra-high definition”. If the network bandwidth is detected to be 1 Mbps (1000 Kbps), as shown in
Referring to
If the definition obtaining module 131 selects at least one (e.g., two) definitions matching to the current network condition, the first suggesting module 135 can display the selectable definitions in the form of menus, buttons or radio button, and the user can select the intended definition himself. The selecting module 132 is used to obtain a selected definition as the definition matching to the current network condition when detecting that the definition is selected. The downloading module 133 obtains the source URL corresponding to the selected definition of the requested video, and then downloads the requested video to play.
Referring to
Referring to
If the requested video supports more than one definition, the user can switch the definition during the playing process of the requested video, the recording module 14 would locate the current playing time of the requested video, and record the current playing time. The playing module 13 is further configured to obtain the source URL of the requested video corresponding to the target definition, download the requested video starting from the recorded current playing time to play the requested video. The recording module 14 can locate the current playing time, in other words, the current watching progress, of the requested video automatically when the user switch the definition, and download the requested video starting from the current playing time. As a result, the seamless playing between two different definitions is achieved, and the user gets the seamless watching experience when the definition is switched.
According to the above described embodiments, during the video playing process, the definition matching to the current network environment is selected to play the requested video, and this avoids influent playing caused by the bit rate of the selected definition is mismatching with the current network environment, ensures the fluent playing.
It is to be noted for those ordinarily skilled in the art that the whole or part of the processes of the above video playing method can be achieved by computer executable instructions. In other words, the computer executable instructions are used to cause the computer or other similar computing apparatuses to perform the above video playing method. The computer executable instructions can be stored in a computer readable medium, and the computer readable medium may be a hard disk drive, a compact disk, a read-only memory (ROM), or a random access memory (RAM) etc.
The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any amendments, replacement and modification made to the above embodiments under the principle of the present invention should be included in the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
201110307998.6 | Oct 2011 | CN | national |
This application is a U.S. continuation application under 35 U.S.C. §111(a) claiming priority under 35 U.S.C. §120 and 365(c) to International Application No. PCT/CN2012/082175 filed Sep. 27, 2012, which claims priority of a Chinese patent application serial No. 201110307998.6, titled “video playing method and apparatus” and filed on Oct. 12, 2011, the contents of which are incorporated by reference herein in their entirety for all intended purposes.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2012/082175 | Sep 2012 | US |
Child | 14222498 | US |