Method and apparatus for providing trick play service
Abstract
A method and apparatus for providing a trick play service in a hypertext transfer protocol (HTTP) adaptive streaming (HAS) architecture for adaptively streaming media data according to fluctuation of a streaming environment are provided. The method at a server includes: generating a media presentation description (MPD) file including information about at least one piece of trick play data; transmitting the MPD file to a client; and transmitting the at least one piece of trick play data to the client in response to a request by the client based on the MPD file. The method at a client includes: receiving a media presentation description (MPD) file including information about at least one piece of trick play data; and receiving the at least one piece of trick play data from a server based on the MPD file.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of providing a trick play service at a server, the method comprising:
generating a media presentation description (MPD) file comprising information about at least one piece of trick play data; transmitting the MPD file to a client; and transmitting the at least one piece of trick play data to the client in response to a request by the client based on the MPD file, wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed, and wherein the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
2. The method of claim 1 , wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
3. The method of claim 1 , wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time to be played exclusively at the predetermined trick play speed.
4. The method of claim 1 , wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
5. The method of claim 1 , wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and the method further comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed from the trick play data corresponding to the predetermined trick play speed in response to the request of the client based on the MPD file.
6. The method of claim 5 , wherein the predetermined trick play speed is a 2× trick play speed.
7. The method of claim 5 , wherein the extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
8. The method of claim 5 , wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
9. The method of claim 1 , wherein:
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels; the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time; the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels; the maximum depth of trick levels is determined based on a maximum trick play speed; and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
10. The method of claim 9 , wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
11. The method of claim 9 , wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
12. The method of claim 1 , wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time; the MPD file comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
13. A method of providing a trick play service at a client, the method comprising:
receiving a media presentation description (MPD) file comprising information about at least one piece of trick play data; and receiving the at least one piece of trick play data from a server based on the MPD file, wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
14. The method of claim 13 , wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
15. The method of claim 1 , wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time and be played exclusively at the predetermined trick play speed.
16. The method of claim 1 , wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed; wherein the frame rate indicates a number of frames to be played per second at the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
17. The method of claim 13 , wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed, which is extracted by the server from the trick play data corresponding to the predetermined trick play speed in response to a request by the client based on the MPD file.
18. The method of claim 17 , wherein the predetermined trick play speed is a 2× trick play speed.
19. The method of claim 17 , wherein the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed is extracted by the server from the trick play data corresponding to the predetermined trick play speed trick play speed by using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
20. The method of claim 17 , wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed: the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
21. The method of claim 13 , wherein:
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels; the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time; the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels; the maximum depth of trick levels is determined based on a maximum trick play speed; and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
22. The method of claim 21 , wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
23. The method of claim 22 , wherein the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to each trick level in order to support a predetermined trick play speed based on a request by the client.
24. The method of claim 21 , further comprising realigning the at least one piece of trick play data in an order of play time.
25. The method of claim 21 , wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
26. The method of claim 13 , wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time; the MPD file comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
27. The method of claim 26 , further comprising varying the frame rate into the number of frames per second corresponding to the predetermined trick play speed.
28. The method of claim 26 , further comprising playing the at least one piece of trick play data based on the frame rate.
29. A server comprising:
an information generation unit which generates a media presentation description (MPD) file comprising information about at least one piece of trick play data; an information transmission unit which transmits the MPD file to a client; and a trick play data transmission unit which transmits the at least one piece of trick play data to the client in response to a request by the client based on the MPD file, wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
30. A client comprising:
an information reception unit which receives a media presentation description (MPD) file comprising information about at least one piece of trick play data; and a trick play data reception unit which receives the at least one piece of trick play data from a server based on the MPD file, wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
31. A method of providing a trick play service at an encoder, the method comprising:
generating at least one piece of trick play data from a media content according to a predetermined generating method that corresponds to information comprised in a media presentation description (MPD) file that is transmitted to a client and based on which the client requests the at least one piece of trick play data, wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
32. A system comprising:
an encoder which generates at least one piece of trick play data from a media content; and a server which comprises:
an information generation unit which generates a media presentation description (MPD) file comprising information about the at least one piece of trick play data,
an information transmission unit which transmits the MPD file to a client, and
a trick play data transmission unit which transmits the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
33. The system of 32 , further comprising the client which comprises:
an information reception unit which receives the MPD file comprising the information about the at least one piece of trick play data; and a trick play data reception unit which receives the at least one piece of trick play data from the server based on the MPD file.
34. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 1 .
35. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 13 .
36. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 31 .
37. A method of providing a trick play service at a server, the method comprising:
generating a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding; transmitting the MPD file to a client; and transmitting the at least one trick play data to the client in response to a request by the client based on the MPD file, wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client, a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels, the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time, the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels, the maximum depth of trick levels is determined based on the maximum trick play speed, and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
38. The method of claim 37, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
39. The method of claim 37, wherein:
a number of the at least one piece of trick play data is determined based on the maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
40. The method of claim 39, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time to be played exclusively at the predetermined trick play speed.
41. The method of claim 39, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
42. The method of claim 39, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and the method further comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed from the trick play data corresponding to the predetermined trick play speed in response to the request of the client based on the MPD file.
43. The method of claim 42, wherein the predetermined trick play speed is a 2× trick play speed.
44. The method of claim 42, wherein the extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
45. The method of claim 42, wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed; the frame rate indicates a number of frames to be played per second by the client; and the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
46. The method of claim 37, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
47. The method of claim 37, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
48. The method of claim 37, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time; the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
49. The method of claim 37, wherein the information indicates whether the at least one trick play data includes the frame that depends on one or more other frames for decoding and whether the at least one trick play data includes intra frames and does not include inter frames.
50. A method of providing a trick play service at a client, the method comprising:
receiving a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding; and receiving the at least one trick play data from a server based on the MPD file, wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client; a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels; the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time; the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels; the maximum depth of trick levels is determined based on the maximum trick play speed; and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
51. The method of claim 50, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
52. The method of claim 50, wherein:
a number of the at least one piece of trick play data is determined based on the maximum trick play speed; and the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
53. The method of claim 52, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time and be played exclusively at the predetermined trick play speed.
54. The method of claim 52, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second at the client.
55. The method of claim 50, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed, which is extracted by the server from the trick play data corresponding to the predetermined trick play speed in response to a request by the client based on the MPD file.
56. The method of claim 55, wherein the predetermined trick play speed is a 2× trick play speed.
57. The method of claim 55, wherein the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed is extracted by the server from the trick play data corresponding to the predetermined trick play speed trick play speed by using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
58. The method of claim 55, wherein:
the MPD file further comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
59. The method of claim 50, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
60. The method of claim 59, wherein the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to each trick level in order to support a predetermined trick play speed based on a request by the client.
61. The method of claim 50, further comprising realigning the at least one piece of trick play data in an order of play time.
62. The method of claim 50, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
63. The method of claim 50, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time; the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and the frame rate indicates a number of frames to be played per second by the client.
64. The method of claim 63, further comprising varying the frame rate into the number of frames per second corresponding to the predetermined trick play speed.
65. The method of claim 63, further comprising playing the at least one piece of trick play data based on the frame rate.
66. A server comprising:
a memory storing instructions; and at least one processor configured to execute the instructions to:
generate a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding,
transmit the MPD file to a client, and
transmit the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client, a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels, the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time, the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels, the maximum depth of trick levels is determined based on the maximum trick play speed, and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
67. A client comprising:
a memory storing instructions; and at least one processor configured to execute the instructions to:
receive a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding, and
to receive the at least one trick play data from a server based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client, a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels, the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time, the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels, the maximum depth of trick levels is determined based on the maximum trick play speed, and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
68. A method of providing a trick play service at an encoder, the method comprising:
generating at least one piece of trick play data from a media content according to a predetermined generating method that corresponds to information comprised in a media presentation description (MPD) that is transmitted to a client and based on which the client requests the at least one piece of trick play data, wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client, a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels, the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time, the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels, the maximum depth of trick levels is determined based on the maximum trick play speed, and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
69. A system comprising:
an encoder which generates at least one piece of trick play data from a media content; and a server which comprises: at least one processor configured to generate a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding, to transmit the MPD file to a client, and to transmit the at least one piece of trick play data to the client in response to a request by the client based on the MPD file, wherein the maximum trick play speed included in the MPD is indicated as a multiple of regular playout rate supported with the client, a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels, the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time, the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels, the maximum depth of trick levels is determined based on the maximum trick play speed, and the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
70. The system of claim 69, further comprising the client which comprises:
at least one processor configured to receive the MPD file comprising the information about the at least one piece of trick play data and to receive the at least one piece of trick play data from the server based on the MPD file.
71. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 37.
72. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 50.
73. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 68.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.