WO2007129008A1 - Generating a media program - Google Patents
Generating a media program Download PDFInfo
- Publication number
- WO2007129008A1 WO2007129008A1 PCT/GB2007/001382 GB2007001382W WO2007129008A1 WO 2007129008 A1 WO2007129008 A1 WO 2007129008A1 GB 2007001382 W GB2007001382 W GB 2007001382W WO 2007129008 A1 WO2007129008 A1 WO 2007129008A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- media
- program
- user
- clips
- clip
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/34—Indicating arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
Definitions
- This invention relates to generating a media program.
- media programs or media presentations / media sequences / media content / media product releases / media issues
- These media programs may be, for example, video, audio or audio/video content. For example, it is possible to search the
- a media program relating to the property/housing market may have been prepared and made available, with the media program having material relating to houses and apartments located in London, Manchester and Birmingham.
- a user (viewer) of the media program may only be interested in houses located in Manchester. Therefore, the interest that that user has in the media program may be significantly reduced due to the amount of relatively irrelevant material within the media program.
- a person may wish for a weekly media program to be generated having horoscope information for one or more specific star-signs. Such a media program may not actually exist in that form, although more general horoscope programs may exist.
- an apparatus According to a second aspect of the invention, there is provided an apparatus according to claim 32 or claim 33. According to third aspect of the invention, there is provided a computer program according to claim 33.
- the computer program may be carried on a storage medium or a transmission medium.
- Embodiments of the invention allow one or more properties for a media program to be specified. This may be performed by a user.
- the media program is then generated (or assembled) according to the specified properties from a sequence of media clips.
- the media clips each have media metadata associated with them, for example describing the content of the clip, its duration etc.
- the media clips used/selected and the order in which they are used are determined by matching the indicated iDroperties for the media program with the media metadata. This matching processing is performed according to a number of rules which are applied to help ensure that the media program is generated according to the properties that have been specified. In this way, a user is provided with an automatic media program tailoring system that automatically generates a media program according to the user's needs or a media program that has the desired content and form.
- Embodiments of the invention provide a way of assembling a media program that satisfies one or more preferences of a user by applying one or more rules to the one or more preferences of the user and to metadata associated with stored media clips in order to select and order a plurality of the stored media clips.
- the media program is then assembled from the selected and ordered media clips.
- Figure 1 schematically illustrates a system according to an embodiment of the invention
- Figure 2 schematically illustrates a media processing system according to an embodiment of the invention
- Figure 3 is a flowchart illustrating the processing performed by the media processing system illustrated in Figure 2;
- Figures 4 to 8 schematically illustrates the application of rules and the generation of a media program.
- FIG. 1 schematically illustrates a system according to an embodiment of the invention.
- a media processing system 100 is connected to a network 102.
- the term "media” shall be taken to include, amongst other things, video content/data, audio content/data and audio-video content/data.
- a number of users 104 are also connected to the network 102.
- the media processing system 100 may comprise one or more computers or servers and is capable of receiving information from and providing information to the network 102.
- the users 104 may make use of any suitable means for connecting to the network 102, for example a personal computer or a set top box.
- the users 104 may then receive information from and provide information to the network 102. In this way, the users 104 can send information to and receive information from the media processing system 100 via the network 102.
- some of the users 104 may communicate directly with the media processing system 100.
- these users 104 may communicate via telephonic means, such as sending an SMS message from an SMS-enabled telephone.
- the media processing system 100 is adapted to receive and interpret such telephonic communications and may provide appropriate responses back to the users 104 via a telephonic communication.
- the media processing system 100 is adapted to receive and interpret such telephonic communications and may provide appropriate responses back to the users 104 via a telephonic communication.
- the media processing system 100 collates and stores a number of media clips, i.e. in one respect, the media processing system 100 acts as a media content repository.
- a user 104 requests the media processing system 100, either directly or via the network 102, to prepare a media program for that user 104.
- the media processing system 100 interprets the request received from the user 104 and automatically generates an appropriate media program for that user 104 using the media clips that it is currently storing.
- the media processing system 100 then delivers/outputs the media program that it has generated to the user 104 either directly or via the network 102.
- the generated media program may be delivered to a different location from the location at which the user 104 made the initial request.
- the network 102 may be, for example, the Internet. However, it will be appreciated that the network 102 may be any other suitable network which allows the users 104 and the media processing system 100 to communicate with each other.
- FIG. 2 schematically illustrates the media processing system 100 0 according to an embodiment of the invention.
- the media processing system 100 comprises a user interface unit 200, a program generation unit 202 and an operator interface unit 204.
- the media processing system 100 makes use of three databases, namely: a user metadata database 206, a media database 208 and a media metadata database 210.
- the user interface unit 200 comprises a 5 network interface 212 and a telecommunications interface 214.
- the operator interface unit 204 comprises an operator interface 216 and a media ingest unit 218.
- the media processing system 100 receives media data at the media ingest unit 218 and stores the media data that it has received in the media 0 database 208.
- the media ingest unit 218 may receive media data from a variety of sources, for example a video camera 220. It will be appreciated that the media processing system 100 may receive and ingest media data from other sources, such as optical discs, magnetic media, data streams received from a source over a network, etc.
- the media ingest unit 218 may therefore have a variety of 5 different interfaces to accommodate different media and/or data connections so that it may receive the media data from a variety of sources.
- the media database 208 stores media data as media clips. For example, an individual piece of video received from the video camera 220 may be stored as one media clip in the media database 208 whilst another piece of video o received from a different source, or even the same video camera 220, is stored as a separate media clip in the media database 208.
- the media metadata database 210 stores, for each media clip in the media database 208, associated media metadata. Media metadata stored in the media metadata database 210 may be linked to a media clip stored in the media database 208 via a unique identifier that uniquely identifies both the media clip and the media metadata.
- the media ingest unit 218 is responsible for generating this unique identifier when the media clip is first received by the media ingest unit 218 and then stored in the media database 208.
- the media metadata stored in the media metadata database 210 may compromise any of the following information relating to an individual media clip: • a date/time of creation of the media clip;
- semantic metadata concerning the actual content of the media clip • syntactic metadata relating to the format of the media clip, such as a compression algorithm that has been used for the media clip, video aspect ratio, number of audio channels, video/audio bit-rates, etc.;
- this media metadata may be generated automatically by the device, such as the video camera 220, that has acquired/created a media clip.
- the video camera 220 may itself automatically generate and store media metadata relating to a time and/or geographical location of creation of the media clip. Therefore, the media ingest unit 218 is arranged to retrieve this automatically generated media metadata if possible from the video camera 220 (or the other acquisition/storage devices and/or media streams). Additionally, the media ingest unit 218 may automatically generate some of the media metadata itself, such as some of the above-mentioned syntactic metadata, the duration of the media clip, etc. This may be achieved by the media ingest unit 218 analysing the media data that it has received as an input.
- the media metadata may need to be generated by an operator of the media processing system 100, for example, some of the semantic metadata relating to what an actual media clip is about.
- This sort of media metadata may be provided by an operator of the media processing system 100 via the operator interface 216.
- the operator interface 216 comprises any suitable means for receiving information from and providing information to an operator of the media processing system 100.
- the operator interface 216 may consist of a keyboard, a mouse and a monitor, although it will be appreciated that any other input/output devices may be used for the operator interface 216.
- media metadata other than that which has been described above may be included in the media metadata stored in the media metadata database 210 and that other means for generating the media metadata may also be used.
- the user interface unit 200 is responsible for providing an interface for the users 104 to interact with the media processing system 100.
- the network interface 212 of the user interface unit 200 provides an interface for the media processing system 100 to receive information from and provide information to the network 102.
- the network interface 212 may make use of one or more network interface cards that are capable of receiving information from and providing information to the network 102.
- the network interface 212 may provide one or more webpages with which the users 104 may interact via the network 102.
- the users 104 may also interact with the media processing system 100 via the telecommunications interface 214.
- the telecommunications interface 214 may be able to receive SMS messages that have been sent to the media processing system 100. The telecommunications interface 214 may then interpret these SMS messages as appropriate. Additionally, the telecommunications interface 214 may deliver SMS messages back to a user 104 or deliver a media program to a user 104 via a telephonic communication. It will be appreciated that the telecommunications interface 214 may be responsible itself for receiving and transmitting the telephonic communications. However, the media processing system 100 may make use of a separate telephonic communication input/output mechanism that is responsible for receiving and sending telephonic communications and this may deliver data to and receive data from the telecommunications interface 214.
- Information about a user 104 may be stored in the user metadata database 206 as user metadata (or a user profile).
- This user metadata is received from a user 104 via the user interface unit 200.
- the user interface unit 200 then stores the user metadata in the user metadata database 206.
- the network interface 212 provides a user registration webpage through which a user 104 may provide a variety of user metadata.
- a user 104 may indicate via the user registration webpage the following types of user metadata: name; home address; age or date of birth; one or more indications about the type of media that the user does/does not wish to receive; an indication of a preferred media format that the user 104 would prefer to use; billing information; etc.
- the network interface 212 also provides a user log-in webpage through which a user 104 may log-in to the media processing system 100. If a user 104 logs-in to the media processing system 100, then the media processing system 100 is able to identify that user 104 and is therefore able to access and use any user metadata associated with that user 104 stored in the user metadata database 206. In doing so, the media processing system 100 may generate a media program in accordance with a request received from a user 104 by making use of the user metadata stored in the user metadata database 206 for that user 104. In this way, a more appropriate/more suitable media program may be generated for that user 104. This will be described in more detail later.
- the user interface unit 200 upon receiving an input from a user 104 indicating that that user 104 wishes a media program to be generated for him, generates a request from the data that it has received from that user 104. This request indicates various properties that the media program is intended to have.
- the user interface unit 200 may also use some of the user metadata stored in the user metadata database 206 to form the request. For example, the user metadata for a user 104 may indicate that that user 104 prefers a certain video aspect-ratio for the media program, in which case the user interface unit 200 would include this as one of the properties for the media program in the request.
- the user interface unit 200 is arranged to try and ascertain further information about the user 104 automatically. For example, the user interface unit 200 attempts to determine the type of device which the user 104 is using to communicate with the media processing system 100, for example a personal computer or a set top box. Additionally, if the user 104 is using a particular application (such as a particular web browser) to communicate with the media processing system 100 via the network 102, then the user interface unit 200 attempts to identify this particular application. The information that the user interface unit 200 has identified in this way may also be used to determine one or more properties for the media program that is to be generated, such as an appropriate compression algorithm, bitrate or video aspect suited to the detected device or application.
- a particular application such as a particular web browser
- the user interface unit 200 then passes this request to the program generation unit 202, the request having an indication of one or more properties for the media program to be generated.
- the program generation unit 202 receives the request from the user interface unit 200 and processes it accordingly.
- the program generation unit is therefore arranged to access both the media database 208 and the media metadata database 210.
- the program generation unit 202 uses the information in the received request together with the media metadata stored in the media metadata database 210.
- the program generation unit 202 applies one or more rules to the media metadata and the properties indicated in the request to automatically identify and order a sequence of media clips from the plurality of media clips that are stored in the media database 208. This is done in a way such that a combination of the identified media clips in the identified sequence satisfies the properties indicated in the request.
- the program generation unit 202 then generates a media program by combining the identified media clips in the identified sequence.
- the media processing system 100 Having generated a media program in this way, the media processing system 100 returns/delivers the generated media program to the requesting user 104 via the user interface unit 200.
- the delivery destination may be determined by the media processing system 100 as follows. If the user 104 has not requested a particular location to which the generated media program should be returned, then the generated media program is returned to the location from which the user 104 initiated the request. However, it will be appreciated that the user 104 may indicate to the media processing system 100 a delivery location to which the media processing system 100 should deliver the generated media program. In this case, the user interface unit 200 delivers the generated media program to the location indicated by the user 104.
- This indicated location could be: (i) a default location for the user 104 stored as user metadata in the user metadata database 206; (ii) a location indicated by the user 104 when making the initial request; or (Hi) a location determined by the user interface unit 200 when automatically determining user metadata.
- the media processing system 100 may make use of a single database to store the media clips and the media metadata. Additionally, or alternatively, the media processing system 100 may be arranged to store the media metadata within the actual data forming a media clip. For example, in many compression formats, such as MPEG-2 or MPEG-4, it is possible to store metadata within the audio/video bitstream in addition to any audio and/or video data.
- the various components making up the media processing system 100 may be realised as separate devices, such as one or more computers or servers. Additionally, the databases that are used by the media processing system 100 may be stored locally to the media processing system 100 or may be remote from the media processing system 100 and accessed via a communications link (not shown).
- the program generation unit 202 may be able to access the user metadata database 206 directly so that it can itself ascertain user metadata relating to a user 104 and identify properties for the media program to be generated. Furthermore, an operator of the media processing system 100 may, via the operator interface unit 204, control and/or configure the program generation unit 202, for example by establishing one or more of the rules that the program generation unit 202 uses.
- FIG. 3 is a flowchart illustrating the processing performed by the media processing system 100.
- the media processing system 100 receives input from a user 104. As described above, this may be an input received from a user 104 via the network 102 by the network interface 212. Alternatively, the input may be received from a user 104 via a telephonic communication by the telecommunications interface 214.
- the user interface unit 200 of the media processing system receives input from a user 104 via the network 102 by the network interface 212.
- the user interface unit 200 of the media processing system receives input from a user 104. As described above, this may be an input received from a user 104 via the network 102 by the network interface 212. Alternatively, the input may be received from a user 104 via a telephonic communication by the telecommunications interface 214.
- the user interface unit 200 of the media processing system receives input from a user 104. As described above, this may be an input received from a user 104 via the network
- the user interface unit 200 may provide a registration webpage for a user 104 to register himself/herself with the media processing system 100. Therefore, if the user 104 is interacting with this registration webpage then processing continues at a step S304 at which the user 104 performs the registration process; otherwise processing continues at a step S306.
- the user 104 is invited at the registration webpage to provide certain details that are then stored as user metadata in the user metadata database 206.
- processing returns to the step S300. It will be appreciated that the registration process includes the option for a user 104 to update/amend the corresponding user metadata, for example due to a change of address or preferences.
- the media processing system 100 determines whether the input received from the user 104 relates to the user 104 logging-in to the media processing system 100. If the input received from the user 104 does relate to the user 104 logging-in to the media processing system 100, then processing continues at a step S308; otherwise processing continues at a step S310.
- the user 104 performs a log-in process. For example, during the registration process at the step S304, the user 104 may have provided a user name and a password for the purpose of logging-in to the media processing system 100. Then, at the step S308, the user 104 provides the user name and the password so that that user 104 can log-in to, and be identified by, the media processing system 100. Processing then returns to the step S300.
- the program generation unit 202 receives from the user interface unit 200 an indication of one or more properties for a media program that is to be generated for the user 104.
- the user interface unit 200 may determine some of these properties from the input of the user 104 directly, for example by the interaction of the user 104 with a webpage provided by the network interface 212 or via an input telephonic communication received via the telecommunications interface 214. Additionally, the user interface unit 200 may determine some of these properties from user metadata stored in the user metadata database 206 for the user 104 if the user 104 has logged-in to and been identified by the media processing system 100. Additionally, as described above, the user interface unit 200 may attempt to determine various information about a user 104 automatically, such as the type of device with which the user 104 is communicating with the media processing system 100. The user interface unit 200 may determine some of the properties for the media program to be generated from such automatically gathered user metadata. The user interface unit 200 determines one or more properties for the media program to be generated from these various sources and provides an indication of these properties to the program generation unit 202. The program generation 202 then receives this indication of the one or more properties.
- the program generation unit 202 identifies various media clips, from the plurality of media clips stored in the media database 208, which are to be used to generate the media program for the user 104. It also identifies a sequential order for the identified media clips. In order to do this, the program generation unit 202 applies one or more rules to the properties for the media program and the media metadata stored in the media metadata database 210.
- the rules are applied to identify media clips such that a combination of the identified media clips in the identified sequential order forms a media program that has the properties which have been indicated to the program generation unit 202.
- the program generation unit 202 determines whether it has identified sufficient media clips in order to generate the media program for the user 104. If the program generation unit 202 determines that it has not identified sufficient media clips to generate the media program, then processing continues at a step S316 at which the program generation unit 202 informs the user 104, via the user interface unit 200, that the media program cannot be generated.
- the 104 may only use/play the media clip if the age of that user 104 is above a threshold age, and the age of the user 104 making the request for the media program is not above that threshold age.
- the program generation unit 202 determines that sufficient media clips have been identified in order to generate the media program, then the media program is generated at a step S318. This will be described in more detail later.
- Figure 4 schematically illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 of Figure 3.
- Figure 4 also illustrates media metadata associated with each of the media clips 400, this media metadata being stored in the media metadata database 210.
- This media metadata includes, but is not restricted to, the following fields:
- ProglD - This is an identifier of a media program for which the media clip 400 may be included or used. There may be multiple ProglD identifiers for a particular media clip 400, in which case that particular media clip 400 is suitable for inclusion in multiple media programs.
- ProgCliplD This represents the sequential position of the media clip 400 amongst all of the media clips 400 for a given media program. If a media clip 400 may be included within multiple media programs, then there is a corresponding number of ProgCliplD values, one for the sequential position within each of these media programs.
- the media clip 400A with a ProgCliplD value of 1 is to be the first media clip 400 for the corresponding media program, in this case the media program with a ProglD value of 1234.
- the media clip 400B with a ProgCliplD value of 2 is to be the second media clip for the media program with ProglD of 1234.
- ProgClips This indicates the number of media clips 400 that normally make up the corresponding media program. Again, if a media clip 400 may be included within multiple media programs, then there is a corresponding number of ProgClips values, one for each of these media programs.
- GeoRel - This represents a length of time taken to play back the media clip 400.
- GeoRel - this is an indicator of a geographical location which is particularly relevant to this media clip 400. This may take a particular value, such as Chelsea or Soho, indicating that that particular media clip 400 is particularly relevant to that geographical location. However, the GeoRel field may not take any value at all (or may take a default value) indicating that that particular media clip 400 is not particularly relevant to any individual geographical location. There may be one or more GeoRel geographical relevance indicators.
- Subject - this is an indicator of the subject-matter of the media clip 400.
- Figure 4 represents the situation where a user 104 has requested a particular program having a ProglD of 1234. This may have occurred, for example, by the user 104 interacting with a program specification webpage provided by the user interface 212. Therefore, one of the properties for the media program to be generated by the program generation unit 202 is an indication of the requested media program (or a program identifier). This property could be indicated as the ProglD value of 1234.
- the program generation unit 202 applies a first rule according to which the media clips 400 to be identified are those media clips 400 having associated media metadata with a ProglD value matching the program identifier property received from the user 104, i.e. a value of 1234.
- a media clip 400 is identified if at least one of the ProglD program identifiers for that media clip 400 matches the indicated program identifier for the media program.
- the program generation unit 202 also applies a second rule to identify a sequence in which the identified media clips 400A-F are to be presented in the generated media program.
- the rule provides that the media clips 400 be presented/ordered sequentially in accordance with the ProgCliplD sequence identifier indicated in the media metadata associated with the media clips 400. This is the sequence shown in Figure 4 from left to right.
- the identified sequence is ordered according to the sequential position indicators
- ProgCliplD for the identified media clips 400.
- the program generation unit 202 may use user metadata relating to a logged-in user 104 to determine a preference for that user 104.
- the user 104 may have indicated that he is only interested in media programs with a subject-matter of cars and not vans or caravans. Therefore, the program generation unit would select the first of the media clips 400 that relates to cars. The selection may also be determined based one or more other/alternative preferences specified by the user, such as a preference for a specific geographical relevance. If, however, the user 104 is not logged-in, so that the preferences of the user 104 are not currently know, then the program generation unit 202 may chose between the possible multiple media clips 400. In the example given above, the program generation unit 202 may randomly select a media clip 400 to use from the media clips 400 relating to cars, vans and caravans.
- the program generation unit 202 may identify more than one of them for inclusion in the media program, these identified media clips 400 being ordered one after the other at the location indicated by the ProgClipID value.
- the program generation unit 202 then generates the media program for the user 104 by combining the identified media clips 400A-F in the sequential order that has been identified. This will be described in more detail later.
- Figure 5 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired duration for the generated media program, i.e. one of the properties for the media program is a duration.
- the user 104 has indicated a desired duration for the media program of 20 minutes. Therefore, once the program generation unit 202 has identified the media clips 400A-F and a sequential order for those identified media clips 400A-F in accordance with the first and second rules as described above, the program generation unit 202 applies a third rule to further determine which of these identified media clips 400 should actually be used to generate the media program.
- the application of this third rule identifies media clips 400 such that the sum of the durations for those media clips 400 is the same as, or substantially the same as, the duration that has been indicated by the user 104.
- the program generation unit 202 determines that the media clip 400B should not be included in the generated media program since the combined duration of the media clips 400A and 400C-F is the desired 20 minutes.
- the program generation unit 202 could have excluded the media clips 400C and 400E instead, leaving a media program generated from the clips 400A, 400B, 400D and 400F, this generated media program also having a total duration of 20 minutes.
- This third rule applied by the program generation unit 202 may therefore assume a variety of forms.
- the program generation unit 202 may determine the combined duration of all of the media clips 400A-F identified as suitable for inclusion in the media program. If the program generation unit determines that this is exceeds the duration property for the media program, then the application of the third rule may be based on excluding as few media clips 400 as is necessary (which would result in excluding the media clip 400B).
- the media metadata storing the media metadata database 210 could indicate a priority for the media clips 400, with the application of the third rule then being based on excluding one or more of the media clips 400 in the order of lowest priority to highest priority (which may result in excluding the media clips 400C and 400E).
- the program generation unit 202 may also apply a fourth rule which indicates that the first media clip 400A for a given media program (i.e. the media clip 400 having a ProgCliplD of 1 indicating that this media clip 400 relates to the introduction for the media program) should always be identified and included in the generated media program. Similarly, this could be based on the value for the Subject field of the media metadata.
- the application of the fourth rule is such that the identified sequence must include a media clip 400 indicated as relating to the introduction for the media program.
- the program generation unit 202 may apply a fifth rule which indicates that the last media clip 400F for a given media program (the media clip 400 having a ProgCliplD equal to ProgClips indicating that this media clip 400 relates to the conclusion for the media program) should always be included in the generated media program. Similarly, this could be based on the value for the Subject field of the media metadata.
- the application of the fifth rule is such that the identified sequence must include a media clip 400 indicated as relating to the conclusion for the media program.
- these two rules would ensure that the generated media program would always have an appropriate introduction and conclusion. It will be appreciated that it may not always be possible to exclude a number of media clips 400 for the generated media program in order to exactly meet the duration that has been input by the user 104. In this case, in applying the above rules, the program generation unit 202 attempts to identify which media clips 400 should be included in the media program such that the generated media program has a duration as close to the desired duration as possible.
- the application of the third rule by the program generation unit 202 may be arranged to identify media clips 400 with a combined duration as close to, but not exceeding, the desired duration. In this situation, the program generation unit 202 would exclude the media clip 400C from the generated media program, leaving a generated media program with a duration of 24 minutes. However, it will be appreciated application of the third rule by the program generation unit 202 may be arranged to identify media clips 400 with a combined duration as close to, but not less than, the desired duration. In this situation, the program generation unit 202 would exclude the media clip 400E from the generated media program, leaving a generated media program having a duration of 26 minutes.
- Figure 6 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired duration for the generated media program.
- This is similar to the situation shown in Figure 5, except that this time the user 104 has indicated that the generated program should have a longer duration than what is actually possible using just the media clips 400A-F for the media program with a ProglD value of 1234.
- the user 104 may have requested that the generated media program have the property of being 32 minutes long.
- the program generation unit 202 in applying the above-mentioned third rule, determines than the combined duration of the media clips 400A-F that have already been identified is short of the desired duration by 2 minutes.
- the program generation unit 202 may therefore identify one or more other media clips 400 to include within the media program.
- These may be, for example, advert media clips 600A-C.
- the identified media clip 400A-F and 600A-C can be combined to generate a media program having a duration of 31.5 minutes which, although not exactly the desired 32 minutes, is close to it.
- the fact that a media clip 400 is an advert media clip 600 (or of another type) may be indicated in the media metadata associated with it, for example in the Subject field or in a separate media type field (not shown).
- the third rule may therefore specify one or more types of media clip 400 (as indicated by their media metadata) which may be included to extend the duration of the media program.
- the sequential position of the advert media clips 600 within the identified media clips 400 for the generated media program is determined in accordance with a sixth rule. This rule may specify a variety of positioning criteria for the advert media clips 600, such as:
- an advert media clip 600 should not be the first and/or the last media clip 400 in the sequence of media clips 400 for the media program; • the combined duration of a number of consecutive advert media clips
- Figure 7 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated one or more desired subject-matters for the generated media program, i.e. one of the indicated properties for the media program is one or more subject-matters.
- the media program with a ProglD value of 1234 may be a program relating to the housing/property market.
- the user 104 may be interested in houses as opposed to, say, apartments, flats, or other forms of dwelling.
- the user 104 may therefore indicate this preference to the media processing unit 100 when making the initial request.
- this preference may make up part of the user metadata stored in the user metadata database 206 for that user 104. This preference is then used to form a property for the media program to be generated.
- the program generation unit 202 applies a seventh rule to identify which media clips 400 should be used for the media program.
- this rule only media clips 400 having a specific subject-matter (as indicated by the Subject value for their associated media metadata) are identified for the media program, with other media clips 400 being excluded.
- at least one of the subject-matter indicators of an identified media clip 400 should match one of the subject-matters indicated for the media program.
- media clips 400B, 400C with a Subject of "Houses” are included, with the media clips 400D, 400E that do not have a Subject of "Houses” being excluded.
- the application of this seventh rule may provide for one or more default subject-matters (such as "Introduction” or "End"), such that if a media clip 400 relates to one of these default subject-matters then it may be included in the generated media program.
- the application of this seventh rule may provide that a media clip 400 may (or may not) be included in the generated media program if there is no media metadata indicating the subject-matter for that media clip 400.
- Figure 8 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired one or more geographical relevances for the generated media program, i.e. one of the properties for the media program comprises one or more geographical relevance indicators.
- the media program with a ProglD value of 1234 may be a program relating to the housing/property market.
- the user 104 may be interested in properties in a specific geographical area.
- the user 104 may therefore indicate this preference to the media processing unit 100 when making the initial request.
- this preference may make up part of the user metadata stored in the user metadata database 206 for that user 104. This preference is then used to form a property for the media program to be generated.
- the program generation unit 202 applies an eighth rule to identify which media clips 400 should be used for the media program.
- this rule only media clips 400 having a specific geographical relevance (as indicated by the GeoRel value for their associated media metadata) are identified for the media program, with other media clips 400 being excluded.
- at least one of the geographical relevance indicators of an identified media clip should match one of the geographical relevances indicated for the media program.
- the program generation unit 202 identifies and includes the media clips 400B, 400D with a GeoRel value of "Chelsea”, but does not identify and include the media clip 400C that does not have a GeoRel value of "Chelsea”.
- the application of this eighth rule may provide that a media clip 400 may be included in the generated media program if there is no media metadata indicating the geographical relevance for that media clip 400.
- the application of this eighth rule may provide that a media clip 400 may not be included in the generated media program if there is no media metadata indicating the geographical relevance for that media clip 400. It will be appreciated that it may be possible to specify one or more preferred geographical relevance areas/locations as properties for the generated media program.
- the media metadata associated with a media clip 400 may indicate an age for a user 104, with a user 104 only being permitted to use/view that media clip if their age is at least the age indicated by the media metadata.
- the program generation unit 202 may therefore apply a ninth rule based on these age indicators when identifying one or more media clips 400 with which to generate the media program.
- One of the properties for the media program may comprise an indication of an age for a user 104 of that media program. This could be determined automatically, for example, from a date of birth stored for a user 104 who has logged-in to the media processing system 100.
- the program generation unit 202 only identifies media clips 400 having an age indicator the not exceeding the age of the user 104, with other media clips 400 being excluded. Additionally, if the media metadata for a media clip 400 does not indicate a viewing age for that media clip 400, then the application of this ninth rule allows the program generation unit 202 to identify that media clip 400 for use in generating the media program. In this way, the generated media program will only contain media clips 400 that are suitable for viewing by the requesting user 104.
- the media metadata associated with a media clip 400 may also include a price value for using that media clip 400.
- This price value may be a positive value if the user 104 may have to pay that price for the inclusion of that media clip 400 within the generated media program.
- the price value may be a zero- price, indicating that that particular media clip 400 may be included within the generated media program at no cost.
- the price value may be a negative value, indicating that the originator of the media clip 400 has to pay for the inclusion of that media clip 400 within the generated media program. This may be the case, for example, when the media clip 400 is an advertisement.
- the cost of the generated media program to the user 104 is then the sum of the price values of the identified media clips 400 that are used to generate the media program.
- the user 104 may indicate to the media processing system 100 a price preference value. This may be done by the user 104 when making the request for the media program. Alternatively, this may form part of the user metadata associated with that user 104. For example, the user 104 may have a preference for the generated media programs to be always free of charge, i.e. the price that the user 104 has to pay for the media program is zero. Therefore, the program generation unit 202 applies a tenth rule to identify the media clips 400 for generating the media program. According to this tenth rule, the program generation unit 202 identifies one or more media clips 400 such that the sum of the price indicators/values for the identified media clips 400 does not exceed the price indicated by the user 104 for the media program.
- the program generation unit 202 may have already identified, via the application of the above- mentioned rules, one or more media clips 400 for the media program, but the total cost for the media program may currently exceed the price value indicated by the user 104. Therefore, in the application of this tenth rule, the program generation unit 202 may identify one or more media clips 400, such as advertisement clips that have a negative price value, for inclusion within the media program. In this way, the program generation unit 202 may reduce the combined total price for the generated media program to a level that does not exceed the price value indicated by the user 104.
- the user 104 may have indicated to the media processing system 100 one or more preferred properties (syntactic properties) for the media program.
- the user 104 may have indicated a preferred compression algorithm, bitrate, video aspect-ratio, number of audio channels, etc.
- the user 104 may have specified a target device or application (PC, PDA, set-top box, mobile phone, specific web-browsers or player applications, etc.) which is to be used to play the media program.
- the media processing system 100 may therefore identify one or more syntactic properties for the media program. Therefore, when identifying the media clips 400 with which to generate the media program, the program generation unit 202 may apply an eleventh rule.
- the program generation unit 202 identifies media clips 400 that syntactically satisfy the syntactic properties that have been indicated by the user 104.
- the syntactic information associated with an identified media clip 400 should substantially match the syntactic information indicated for the media program.
- the program generation unit 202 may perform a degree of reformatting of the media clip 400 for the purpose of generating the media program. This may involve, for example, decompressing a media clip 400, altering the video aspect ratio of the decompressed media clip, followed by recompression of the media clip 400 according to a target bitrate.
- a degree of reformatting may be performed by the program generation unit 202 in order to match the required syntactic format for the generated media program as per the preference of the user 104.
- the above-mentioned rules may be applied on their own or in conjunction with one or more of the other rules. Additionally, it will be appreciated that other rules relating to properties for the media program to be generated may be used and that the above-mentioned rules are purely exemplary. Furthermore, the program generation unit 202 may apply one or more of these rules to generate one or more media programs, and then combine these media programs to form a single output media program for the user 104. For example, a user 104 may request a media program that begins with a property/housing program and which is then followed by a horoscope program.
- the program generation unit 202 may apply the above-mentioned rules to identify media clips 400 relating to a property/housing program and then may apply the above-mentioned rules to identify media clips 400 for a horoscope program and then form a media program for the user 104 from all of these identified media clips 400.
- the program generation unit 202 may not be possible for the program generation unit 202 to identify a sequence of media clips 400 that has all of the properties indicated by the user 104.
- the user 104 may want a media program which is 15 minutes long and free of charge, yet the media metadata for the media clips 400 may be such that these two properties conflict with each other in an unresolvable manner. If this happens, then the media processing system 100 reports the situation to the user 104 (see the step S316 of Figure 3) and may offer alternative media programs which can be generated Most of this is hidden from the user and we just do a "best approximation" (such as a media program which is 18 minutes long and free of charge or which is 15 minutes long and costs £.00).
- the user 104 may then refine the desired properties for the media program accordingly and submit a new request via the user interface unit 200.
- the user interface unit 200 may be arranged to determine whether or not a media program may be generated for a user 104 or whether there will be an unresolvable situation to prevent the generation of the requested media program. For example, the user interface unit 200 may compare the age of a logged-in user 104 with the minimum usage age for the media clips 400 for a media program to check whether the user 104 is old enough to be provided with the media program. The user interface unit 200 may therefore perform some/all of the rules-checking process and the media clip identification/ordering process to ensure that a media program may be validly generated for the user 104. Once the user interface unit 200 has done this, then (i) if it has determined that the media program may be validly generated, it passes the request to the program generation unit 202; otherwise (ii) it reports the situation to the user 104 as described above.
- the program generation unit 202 may have to perform a variety of processing in order to combine the identified media clips 400. It may be possible to simply concatenate the bit streams associated with the media clips 400 (i.e. simply concatenate the media clips 400 themselves in the identified sequential order) in order to form the media program. However, it will be appreciated that this may not be possible in certain situations. For example, the data compression algorithms used for the media clips 400 may not provide for simple concatenation of compressed data streams. Alternatively, the bitrates of the various identified media clips 400 may all be different, and this may lead to a situation in which the media clips 400 cannot simply be concatenated.
- the program generation unit may perform a degree of formatting (or re-formatting) on one or more of the identified media clips 400 in order to generate the media program. This may involve, for example: decompressing one or more compressed media clips 400; compressing one or more decompressed (or non-compressed) media clips 400; adjusting the bitrate of one or more media clips 400; and adjusting the video aspect-ratio of one or more media clips 400.
- This formatting may be performed in accordance with a requirement of a target device or application that is to receive the generated media program or in accordance with a required format indicated by the user 104. It will be appreciated that the user 104 may have specified a particular time/date at which the media processing system 100 should return/deliver the generated media program to that user 104.
- the media processing system 100 may have a memory in which to store a media program that has been generated prior to its delivery at a specific time.
- the media processing system 100 may be arranged to generate a media program for a user 104 at a time determined such that, once the media program has been generated, it is then time to deliver that media program to the user 104. This may be under the control of the user interface unit 200 or the program generation unit 202.
- the user 104 may have specified that they wish a media program to be generated for them at one or more specific times. For example, the user 104 may indicate that they wish a particular media program to be generated for them on a weekly basis. This may be stored as user metadata in the user metadata database 206. To this end, the user interface unit 200 routinely interrogates the user metadata stored in the user metadata database 206 to identify any such requests. This may be performed, for example, on a daily basis. If the user interface unit 200 identifies user metadata indicating that a media program should be generated for a user 104, then the user interface unit 200 automatically generates a request indicating properties for the media program that is to be generated for the user 104 and sends his request to the program generation unit 202.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
The invention provides method of generating a media program from a plurality of media clips, each media clip having associated media metadata, the method comprising the steps of: receiving an indication of one or more properties for the media program to be generated; applying one or more rules to the media metadata and the one or more properties for the media program to automatically identify and order a sequence of media clips from the plurality of media clips such that a combination of the identified media clips in the identified sequence satisfies the one or more properties for the media program; and generating the media program by combining the identified media clips in the identified sequence.
Description
GENERATING A MEDIA PROGRAM
This invention relates to generating a media program.
It is known for media programs (or media presentations / media sequences / media content / media product releases / media issues) to be generated and made available. These media programs may be, for example, video, audio or audio/video content. For example, it is possible to search the
Internet for video material that other people have captured/created. However, these media programs are invariably prepared according to the creative thoughts of the people who captured, edited and assembled them. This is not always in line with the desires of a person who may wish to use that specific media program or who may wish for a media program of a certain form to be prepared.
For example, a media program relating to the property/housing market may have been prepared and made available, with the media program having material relating to houses and apartments located in London, Manchester and Birmingham. However, a user (viewer) of the media program may only be interested in houses located in Manchester. Therefore, the interest that that user has in the media program may be significantly reduced due to the amount of relatively irrelevant material within the media program. Alternatively, a person may wish for a weekly media program to be generated having horoscope information for one or more specific star-signs. Such a media program may not actually exist in that form, although more general horoscope programs may exist.
Therefore, in order to be able to maintain the interest of users of media programs and enhance their experiences of media programs, it would be desirable to be able to tailor a media program to the needs to a user and/or generate a media program according to a user's requirements. However, current program delivery mechanisms, such as television broadcasts, media stored on a server and available over the Internet, optical and magnetic distribution media, etc. are inherently fixed in their content and cannot be tailored to meet the needs of a user.
It is therefore an object of the invention to address these, and other problems, associated with current media program generation technologies.
According to a first aspect of the invention, there is provided a method according to claim 1 or claim 30.
According to a second aspect of the invention, there is provided an apparatus according to claim 32 or claim 33. According to third aspect of the invention, there is provided a computer program according to claim 33. The computer program may be carried on a storage medium or a transmission medium.
Embodiments of the invention allow one or more properties for a media program to be specified. This may be performed by a user. The media program is then generated (or assembled) according to the specified properties from a sequence of media clips. The media clips each have media metadata associated with them, for example describing the content of the clip, its duration etc. The media clips used/selected and the order in which they are used are determined by matching the indicated iDroperties for the media program with the media metadata. This matching processing is performed according to a number of rules which are applied to help ensure that the media program is generated according to the properties that have been specified. In this way, a user is provided with an automatic media program tailoring system that automatically generates a media program according to the user's needs or a media program that has the desired content and form.
Embodiments of the invention provide a way of assembling a media program that satisfies one or more preferences of a user by applying one or more rules to the one or more preferences of the user and to metadata associated with stored media clips in order to select and order a plurality of the stored media clips. The media program is then assembled from the selected and ordered media clips.
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
Figure 1 schematically illustrates a system according to an embodiment of the invention;
Figure 2 schematically illustrates a media processing system according to an embodiment of the invention;
Figure 3 is a flowchart illustrating the processing performed by the media processing system illustrated in Figure 2; and
Figures 4 to 8 schematically illustrates the application of rules and the generation of a media program.
Figure 1 schematically illustrates a system according to an embodiment of the invention. A media processing system 100 is connected to a network 102. The term "media" shall be taken to include, amongst other things, video content/data, audio content/data and audio-video content/data. A number of users 104 are also connected to the network 102.
The media processing system 100 may comprise one or more computers or servers and is capable of receiving information from and providing information to the network 102. The users 104 may make use of any suitable means for connecting to the network 102, for example a personal computer or a set top box. The users 104 may then receive information from and provide information to the network 102. In this way, the users 104 can send information to and receive information from the media processing system 100 via the network 102.
As shown in Figure 1, some of the users 104 may communicate directly with the media processing system 100. For example, these users 104 may communicate via telephonic means, such as sending an SMS message from an SMS-enabled telephone. As will be described later, the media processing system 100 is adapted to receive and interpret such telephonic communications and may provide appropriate responses back to the users 104 via a telephonic communication. As will be described in more detail below, the media processing system
100 collates and stores a number of media clips, i.e. in one respect, the media processing system 100 acts as a media content repository. A user 104 requests the media processing system 100, either directly or via the network 102, to prepare a media program for that user 104. The media processing system 100 then interprets the request received from the user 104 and automatically generates an appropriate media program for that user 104 using the media clips that it is currently storing. The media processing system 100 then
delivers/outputs the media program that it has generated to the user 104 either directly or via the network 102. The generated media program may be delivered to a different location from the location at which the user 104 made the initial request.
5 The network 102 may be, for example, the Internet. However, it will be appreciated that the network 102 may be any other suitable network which allows the users 104 and the media processing system 100 to communicate with each other.
Figure 2 schematically illustrates the media processing system 100 0 according to an embodiment of the invention. The media processing system 100 comprises a user interface unit 200, a program generation unit 202 and an operator interface unit 204. The media processing system 100 makes use of three databases, namely: a user metadata database 206, a media database 208 and a media metadata database 210. The user interface unit 200 comprises a 5 network interface 212 and a telecommunications interface 214. The operator interface unit 204 comprises an operator interface 216 and a media ingest unit 218.
The media processing system 100 receives media data at the media ingest unit 218 and stores the media data that it has received in the media 0 database 208. The media ingest unit 218 may receive media data from a variety of sources, for example a video camera 220. It will be appreciated that the media processing system 100 may receive and ingest media data from other sources, such as optical discs, magnetic media, data streams received from a source over a network, etc. The media ingest unit 218 may therefore have a variety of 5 different interfaces to accommodate different media and/or data connections so that it may receive the media data from a variety of sources.
The media database 208 stores media data as media clips. For example, an individual piece of video received from the video camera 220 may be stored as one media clip in the media database 208 whilst another piece of video o received from a different source, or even the same video camera 220, is stored as a separate media clip in the media database 208.
The media metadata database 210 stores, for each media clip in the media database 208, associated media metadata. Media metadata stored in the media metadata database 210 may be linked to a media clip stored in the media database 208 via a unique identifier that uniquely identifies both the media clip and the media metadata. The media ingest unit 218 is responsible for generating this unique identifier when the media clip is first received by the media ingest unit 218 and then stored in the media database 208.
The media metadata stored in the media metadata database 210 may compromise any of the following information relating to an individual media clip: • a date/time of creation of the media clip;
• an indicator of a geographical location at which the media clip was recorded/created;
• an indicator of a geographical location to which the media clip relates;
• semantic metadata concerning the actual content of the media clip; • syntactic metadata relating to the format of the media clip, such as a compression algorithm that has been used for the media clip, video aspect ratio, number of audio channels, video/audio bit-rates, etc.;
• an identifier of one or more media programs in which this media clip may be included; • an indicator of a minimum age that a user 104 must be to be allowed to use the media clip;
• a duration (length of time) of the media clip when it is played;
• etc.
As is well known in this field of technology some of this media metadata may be generated automatically by the device, such as the video camera 220, that has acquired/created a media clip. For example, the video camera 220 may itself automatically generate and store media metadata relating to a time and/or geographical location of creation of the media clip. Therefore, the media ingest unit 218 is arranged to retrieve this automatically generated media metadata if possible from the video camera 220 (or the other acquisition/storage devices and/or media streams).
Additionally, the media ingest unit 218 may automatically generate some of the media metadata itself, such as some of the above-mentioned syntactic metadata, the duration of the media clip, etc. This may be achieved by the media ingest unit 218 analysing the media data that it has received as an input. However, it will be appreciated that some of the media metadata may need to be generated by an operator of the media processing system 100, for example, some of the semantic metadata relating to what an actual media clip is about. This sort of media metadata may be provided by an operator of the media processing system 100 via the operator interface 216. The operator interface 216 comprises any suitable means for receiving information from and providing information to an operator of the media processing system 100. For example, the operator interface 216 may consist of a keyboard, a mouse and a monitor, although it will be appreciated that any other input/output devices may be used for the operator interface 216. It will be appreciated that media metadata other than that which has been described above may be included in the media metadata stored in the media metadata database 210 and that other means for generating the media metadata may also be used.
The user interface unit 200 is responsible for providing an interface for the users 104 to interact with the media processing system 100. The network interface 212 of the user interface unit 200 provides an interface for the media processing system 100 to receive information from and provide information to the network 102. For example, the network interface 212 may make use of one or more network interface cards that are capable of receiving information from and providing information to the network 102. Additionally, the network interface 212 may provide one or more webpages with which the users 104 may interact via the network 102.
The users 104 may also interact with the media processing system 100 via the telecommunications interface 214. For example, the telecommunications interface 214 may be able to receive SMS messages that have been sent to the media processing system 100. The telecommunications interface 214 may then interpret these SMS messages as appropriate. Additionally, the
telecommunications interface 214 may deliver SMS messages back to a user 104 or deliver a media program to a user 104 via a telephonic communication. It will be appreciated that the telecommunications interface 214 may be responsible itself for receiving and transmitting the telephonic communications. However, the media processing system 100 may make use of a separate telephonic communication input/output mechanism that is responsible for receiving and sending telephonic communications and this may deliver data to and receive data from the telecommunications interface 214.
Information about a user 104 may be stored in the user metadata database 206 as user metadata (or a user profile). This user metadata is received from a user 104 via the user interface unit 200. There is a soft link between the user metadata and the media metadata. Therefore, if there is media with a particular metadata e.g. "sport" then it is possible to use the soft link in order to determine if a user is interested in this media. Thus all video data is allowed into the system, and each users is able to setup their own "filters". The user interface unit 200 then stores the user metadata in the user metadata database 206. In order to obtain the user metadata from a user 104, the network interface 212 provides a user registration webpage through which a user 104 may provide a variety of user metadata. For example a user 104 may indicate via the user registration webpage the following types of user metadata: name; home address; age or date of birth; one or more indications about the type of media that the user does/does not wish to receive; an indication of a preferred media format that the user 104 would prefer to use; billing information; etc.
The network interface 212 also provides a user log-in webpage through which a user 104 may log-in to the media processing system 100. If a user 104 logs-in to the media processing system 100, then the media processing system 100 is able to identify that user 104 and is therefore able to access and use any user metadata associated with that user 104 stored in the user metadata database 206. In doing so, the media processing system 100 may generate a media program in accordance with a request received from a user 104 by making use of the user metadata stored in the user metadata database 206 for that user
104. In this way, a more appropriate/more suitable media program may be generated for that user 104. This will be described in more detail later.
The user interface unit 200, upon receiving an input from a user 104 indicating that that user 104 wishes a media program to be generated for him, generates a request from the data that it has received from that user 104. This request indicates various properties that the media program is intended to have. The user interface unit 200 may also use some of the user metadata stored in the user metadata database 206 to form the request. For example, the user metadata for a user 104 may indicate that that user 104 prefers a certain video aspect-ratio for the media program, in which case the user interface unit 200 would include this as one of the properties for the media program in the request.
Furthermore, the user interface unit 200 is arranged to try and ascertain further information about the user 104 automatically. For example, the user interface unit 200 attempts to determine the type of device which the user 104 is using to communicate with the media processing system 100, for example a personal computer or a set top box. Additionally, if the user 104 is using a particular application (such as a particular web browser) to communicate with the media processing system 100 via the network 102, then the user interface unit 200 attempts to identify this particular application. The information that the user interface unit 200 has identified in this way may also be used to determine one or more properties for the media program that is to be generated, such as an appropriate compression algorithm, bitrate or video aspect suited to the detected device or application.
The user interface unit 200 then passes this request to the program generation unit 202, the request having an indication of one or more properties for the media program to be generated. The program generation unit 202 receives the request from the user interface unit 200 and processes it accordingly. The program generation unit is therefore arranged to access both the media database 208 and the media metadata database 210. The program generation unit 202 uses the information in the received request together with the media metadata stored in the media metadata database 210. As will be described in more detail later, the program generation unit 202 applies one or
more rules to the media metadata and the properties indicated in the request to automatically identify and order a sequence of media clips from the plurality of media clips that are stored in the media database 208. This is done in a way such that a combination of the identified media clips in the identified sequence satisfies the properties indicated in the request. The program generation unit 202 then generates a media program by combining the identified media clips in the identified sequence.
Having generated a media program in this way, the media processing system 100 returns/delivers the generated media program to the requesting user 104 via the user interface unit 200. The delivery destination may be determined by the media processing system 100 as follows. If the user 104 has not requested a particular location to which the generated media program should be returned, then the generated media program is returned to the location from which the user 104 initiated the request. However, it will be appreciated that the user 104 may indicate to the media processing system 100 a delivery location to which the media processing system 100 should deliver the generated media program. In this case, the user interface unit 200 delivers the generated media program to the location indicated by the user 104. This indicated location could be: (i) a default location for the user 104 stored as user metadata in the user metadata database 206; (ii) a location indicated by the user 104 when making the initial request; or (Hi) a location determined by the user interface unit 200 when automatically determining user metadata.
It will be appreciated that a variety of alternative configurations for the media processing system 100 may be used. For example, the media processing system 100 may make use of a single database to store the media clips and the media metadata. Additionally, or alternatively, the media processing system 100 may be arranged to store the media metadata within the actual data forming a media clip. For example, in many compression formats, such as MPEG-2 or MPEG-4, it is possible to store metadata within the audio/video bitstream in addition to any audio and/or video data.
It will be appreciated that whilst the media processing system 100 is illustrated in Figure 2 as a unitary unit, the various components making up the
media processing system 100 may be realised as separate devices, such as one or more computers or servers. Additionally, the databases that are used by the media processing system 100 may be stored locally to the media processing system 100 or may be remote from the media processing system 100 and accessed via a communications link (not shown).
Additionally, it will be appreciated that the program generation unit 202 may be able to access the user metadata database 206 directly so that it can itself ascertain user metadata relating to a user 104 and identify properties for the media program to be generated. Furthermore, an operator of the media processing system 100 may, via the operator interface unit 204, control and/or configure the program generation unit 202, for example by establishing one or more of the rules that the program generation unit 202 uses.
Figure 3 is a flowchart illustrating the processing performed by the media processing system 100. At a step S300, the media processing system 100 receives input from a user 104. As described above, this may be an input received from a user 104 via the network 102 by the network interface 212. Alternatively, the input may be received from a user 104 via a telephonic communication by the telecommunications interface 214. At a step S302, the user interface unit 200 of the media processing system
100 determines whether the input received from the user 104 at the step S300 relates to a registration process for the user 104. As mentioned above, the user interface unit 200 may provide a registration webpage for a user 104 to register himself/herself with the media processing system 100. Therefore, if the user 104 is interacting with this registration webpage then processing continues at a step S304 at which the user 104 performs the registration process; otherwise processing continues at a step S306.
At the step S304 at which the user 104 performs the registration process, the user 104 is invited at the registration webpage to provide certain details that are then stored as user metadata in the user metadata database 206. Once the registration process has been completed by the user 104, processing returns to the step S300. It will be appreciated that the registration process includes the
option for a user 104 to update/amend the corresponding user metadata, for example due to a change of address or preferences.
At the step S306, the media processing system 100 determines whether the input received from the user 104 relates to the user 104 logging-in to the media processing system 100. If the input received from the user 104 does relate to the user 104 logging-in to the media processing system 100, then processing continues at a step S308; otherwise processing continues at a step S310.
At the step S308, the user 104 performs a log-in process. For example, during the registration process at the step S304, the user 104 may have provided a user name and a password for the purpose of logging-in to the media processing system 100. Then, at the step S308, the user 104 provides the user name and the password so that that user 104 can log-in to, and be identified by, the media processing system 100. Processing then returns to the step S300. At the step S310, the program generation unit 202 receives from the user interface unit 200 an indication of one or more properties for a media program that is to be generated for the user 104. The user interface unit 200 may determine some of these properties from the input of the user 104 directly, for example by the interaction of the user 104 with a webpage provided by the network interface 212 or via an input telephonic communication received via the telecommunications interface 214. Additionally, the user interface unit 200 may determine some of these properties from user metadata stored in the user metadata database 206 for the user 104 if the user 104 has logged-in to and been identified by the media processing system 100. Additionally, as described above, the user interface unit 200 may attempt to determine various information about a user 104 automatically, such as the type of device with which the user 104 is communicating with the media processing system 100. The user interface unit 200 may determine some of the properties for the media program to be generated from such automatically gathered user metadata. The user interface unit 200 determines one or more properties for the media program to be generated from these various sources and provides an indication of these
properties to the program generation unit 202. The program generation 202 then receives this indication of the one or more properties.
At a step S312, the program generation unit 202 identifies various media clips, from the plurality of media clips stored in the media database 208, which are to be used to generate the media program for the user 104. It also identifies a sequential order for the identified media clips. In order to do this, the program generation unit 202 applies one or more rules to the properties for the media program and the media metadata stored in the media metadata database 210.
Details of these rules will be provided later. However, in brief, the rules are applied to identify media clips such that a combination of the identified media clips in the identified sequential order forms a media program that has the properties which have been indicated to the program generation unit 202.
At a step S314, the program generation unit 202 determines whether it has identified sufficient media clips in order to generate the media program for the user 104. If the program generation unit 202 determines that it has not identified sufficient media clips to generate the media program, then processing continues at a step S316 at which the program generation unit 202 informs the user 104, via the user interface unit 200, that the media program cannot be generated.
This may happen, for example, if one or more of the media clips required to generate a specific media program has media metadata indicating that a user
104 may only use/play the media clip if the age of that user 104 is above a threshold age, and the age of the user 104 making the request for the media program is not above that threshold age.
If, however, at the step S314, the program generation unit 202 determines that sufficient media clips have been identified in order to generate the media program, then the media program is generated at a step S318. This will be described in more detail later.
Finally, as has been described above, at a step S320, the generated media program is delivered to the user 104. Figure 4 schematically illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 of Figure 3. In Figure 4, there are six media clips 400A-F. Figure 4 also illustrates media metadata
associated with each of the media clips 400, this media metadata being stored in the media metadata database 210. This media metadata includes, but is not restricted to, the following fields:
• ProglD - This is an identifier of a media program for which the media clip 400 may be included or used. There may be multiple ProglD identifiers for a particular media clip 400, in which case that particular media clip 400 is suitable for inclusion in multiple media programs.
• ProgCliplD - This represents the sequential position of the media clip 400 amongst all of the media clips 400 for a given media program. If a media clip 400 may be included within multiple media programs, then there is a corresponding number of ProgCliplD values, one for the sequential position within each of these media programs. Thus, the media clip 400A with a ProgCliplD value of 1 is to be the first media clip 400 for the corresponding media program, in this case the media program with a ProglD value of 1234. Similarly, the media clip 400B with a ProgCliplD value of 2 is to be the second media clip for the media program with ProglD of 1234.
• ProgClips - This indicates the number of media clips 400 that normally make up the corresponding media program. Again, if a media clip 400 may be included within multiple media programs, then there is a corresponding number of ProgClips values, one for each of these media programs.
• Duration - This represents a length of time taken to play back the media clip 400. • GeoRel - this is an indicator of a geographical location which is particularly relevant to this media clip 400. This may take a particular value, such as Chelsea or Soho, indicating that that particular media clip 400 is particularly relevant to that geographical location. However, the GeoRel field may not take any value at all (or may take a default value) indicating that that particular media clip 400 is not particularly relevant to any
individual geographical location. There may be one or more GeoRel geographical relevance indicators. • Subject - this is an indicator of the subject-matter of the media clip 400.
There may be one or more subject-matter indicators. Figure 4 represents the situation where a user 104 has requested a particular program having a ProglD of 1234. This may have occurred, for example, by the user 104 interacting with a program specification webpage provided by the user interface 212. Therefore, one of the properties for the media program to be generated by the program generation unit 202 is an indication of the requested media program (or a program identifier). This property could be indicated as the ProglD value of 1234.
In the example shown in Figure 4, no other properties have been determined for the media program. This could be due to, for example, the user 104 not having logged-in to the media processing system 100 and therefore no user metadata being available to indicate any preferences for the user 104. Therefore, the program generation unit 202 applies a first rule according to which the media clips 400 to be identified are those media clips 400 having associated media metadata with a ProglD value matching the program identifier property received from the user 104, i.e. a value of 1234. In other words, according to the first rule, a media clip 400 is identified if at least one of the ProglD program identifiers for that media clip 400 matches the indicated program identifier for the media program.
The program generation unit 202 also applies a second rule to identify a sequence in which the identified media clips 400A-F are to be presented in the generated media program. In the absence of any additional properties indicated by the user 104, the rule provides that the media clips 400 be presented/ordered sequentially in accordance with the ProgCliplD sequence identifier indicated in the media metadata associated with the media clips 400. This is the sequence shown in Figure 4 from left to right. In other words, according to the second rule, the identified sequence is ordered according to the sequential position indicators
ProgCliplD for the identified media clips 400.
For a media program with a given ProgID program identifier, there may be one or more media clips 400 with the same ProgClipID. For example, if the media program relates to automobiles, then there may be a first media clip 400 relating to cars, a second media clip 400 relating to vans and a third media clip 400 relating to caravans, and each of these three media clips 400 may have the same ProgClipID value, indicating that they are all suitable for inclusion in the media program at the same point. In the application of these first and second rules, the program generation unit 202 may use user metadata relating to a logged-in user 104 to determine a preference for that user 104. For example, the user 104 may have indicated that he is only interested in media programs with a subject-matter of cars and not vans or caravans. Therefore, the program generation unit would select the first of the media clips 400 that relates to cars. The selection may also be determined based one or more other/alternative preferences specified by the user, such as a preference for a specific geographical relevance. If, however, the user 104 is not logged-in, so that the preferences of the user 104 are not currently know, then the program generation unit 202 may chose between the possible multiple media clips 400. In the example given above, the program generation unit 202 may randomly select a media clip 400 to use from the media clips 400 relating to cars, vans and caravans.
It will be appreciated that in the situation where there are multiple media clips 400 with the same ProgClipID for a given media program, the program generation unit 202 may identify more than one of them for inclusion in the media program, these identified media clips 400 being ordered one after the other at the location indicated by the ProgClipID value.
The program generation unit 202 then generates the media program for the user 104 by combining the identified media clips 400A-F in the sequential order that has been identified. This will be described in more detail later.
Figure 5 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired duration for the generated media program, i.e. one of the properties for
the media program is a duration. For example, in the situation shown in Figure 5, the user 104 has indicated a desired duration for the media program of 20 minutes. Therefore, once the program generation unit 202 has identified the media clips 400A-F and a sequential order for those identified media clips 400A-F in accordance with the first and second rules as described above, the program generation unit 202 applies a third rule to further determine which of these identified media clips 400 should actually be used to generate the media program. The application of this third rule identifies media clips 400 such that the sum of the durations for those media clips 400 is the same as, or substantially the same as, the duration that has been indicated by the user 104.
If all of the media clips 400A-F were used for the media program, then the total duration for the media program would be 30 minutes, which is 10 minutes longer than the user 104 desires. Therefore, as shown in Figure 5, the program generation unit 202 determines that the media clip 400B should not be included in the generated media program since the combined duration of the media clips 400A and 400C-F is the desired 20 minutes.
It will be appreciated that the program generation unit 202 could have excluded the media clips 400C and 400E instead, leaving a media program generated from the clips 400A, 400B, 400D and 400F, this generated media program also having a total duration of 20 minutes.
This third rule applied by the program generation unit 202 may therefore assume a variety of forms. In applying the third rule, the program generation unit 202 may determine the combined duration of all of the media clips 400A-F identified as suitable for inclusion in the media program. If the program generation unit determines that this is exceeds the duration property for the media program, then the application of the third rule may be based on excluding as few media clips 400 as is necessary (which would result in excluding the media clip 400B). Alternatively, the media metadata storing the media metadata database 210 could indicate a priority for the media clips 400, with the application of the third rule then being based on excluding one or more of the media clips 400 in the order of lowest priority to highest priority (which may result in excluding the media clips 400C and 400E).
It will be appreciated that the program generation unit 202 may also apply a fourth rule which indicates that the first media clip 400A for a given media program (i.e. the media clip 400 having a ProgCliplD of 1 indicating that this media clip 400 relates to the introduction for the media program) should always be identified and included in the generated media program. Similarly, this could be based on the value for the Subject field of the media metadata. In other words, the application of the fourth rule is such that the identified sequence must include a media clip 400 indicated as relating to the introduction for the media program. Similarly, the program generation unit 202 may apply a fifth rule which indicates that the last media clip 400F for a given media program (the media clip 400 having a ProgCliplD equal to ProgClips indicating that this media clip 400 relates to the conclusion for the media program) should always be included in the generated media program. Similarly, this could be based on the value for the Subject field of the media metadata. In other words, the application of the fifth rule is such that the identified sequence must include a media clip 400 indicated as relating to the conclusion for the media program.
In this way, these two rules would ensure that the generated media program would always have an appropriate introduction and conclusion. It will be appreciated that it may not always be possible to exclude a number of media clips 400 for the generated media program in order to exactly meet the duration that has been input by the user 104. In this case, in applying the above rules, the program generation unit 202 attempts to identify which media clips 400 should be included in the media program such that the generated media program has a duration as close to the desired duration as possible.
For example, with the media program having a ProglD value of 1234 and having available the media clips 400A-F, it is not possible to generate a media program with a duration of 25 minutes if the above rules are applied. Therefore, the application of the third rule by the program generation unit 202 may be arranged to identify media clips 400 with a combined duration as close to, but not exceeding, the desired duration. In this situation, the program generation unit 202 would exclude the media clip 400C from the generated media program,
leaving a generated media program with a duration of 24 minutes. However, it will be appreciated application of the third rule by the program generation unit 202 may be arranged to identify media clips 400 with a combined duration as close to, but not less than, the desired duration. In this situation, the program generation unit 202 would exclude the media clip 400E from the generated media program, leaving a generated media program having a duration of 26 minutes.
Figure 6 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired duration for the generated media program. This is similar to the situation shown in Figure 5, except that this time the user 104 has indicated that the generated program should have a longer duration than what is actually possible using just the media clips 400A-F for the media program with a ProglD value of 1234. For example, the user 104 may have requested that the generated media program have the property of being 32 minutes long. The program generation unit 202, in applying the above-mentioned third rule, determines than the combined duration of the media clips 400A-F that have already been identified is short of the desired duration by 2 minutes. The program generation unit 202, in applying the third rule, may therefore identify one or more other media clips 400 to include within the media program. These may be, for example, advert media clips 600A-C. In the example shown in Figure 6, the identified media clip 400A-F and 600A-C can be combined to generate a media program having a duration of 31.5 minutes which, although not exactly the desired 32 minutes, is close to it. The fact that a media clip 400 is an advert media clip 600 (or of another type) may be indicated in the media metadata associated with it, for example in the Subject field or in a separate media type field (not shown). The third rule may therefore specify one or more types of media clip 400 (as indicated by their media metadata) which may be included to extend the duration of the media program. The sequential position of the advert media clips 600 within the identified media clips 400 for the generated media program is determined in accordance
with a sixth rule. This rule may specify a variety of positioning criteria for the advert media clips 600, such as:
• an advert media clip 600 should not be the first and/or the last media clip 400 in the sequence of media clips 400 for the media program; • the combined duration of a number of consecutive advert media clips
600 should not exceed a threshold duration; and
• the first advert media clip 600 should only occur after a threshold duration in the media program.
It will be appreciated that similar rules may be applied to other media clips 400 of another given type and that types of media clip 400 other than advert media clips 600 may be defined accordingly, these rules determining the sequential position of a media clip 400 in dependence upon the type of the media clip 400.
Figure 7 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated one or more desired subject-matters for the generated media program, i.e. one of the indicated properties for the media program is one or more subject-matters. For example, the media program with a ProglD value of 1234 may be a program relating to the housing/property market. The user 104 may be interested in houses as opposed to, say, apartments, flats, or other forms of dwelling. The user 104 may therefore indicate this preference to the media processing unit 100 when making the initial request. Alternatively, this preference may make up part of the user metadata stored in the user metadata database 206 for that user 104. This preference is then used to form a property for the media program to be generated.
The program generation unit 202 applies a seventh rule to identify which media clips 400 should be used for the media program. According to this rule, only media clips 400 having a specific subject-matter (as indicated by the Subject value for their associated media metadata) are identified for the media program, with other media clips 400 being excluded. In other words, according to the
seventh rule, at least one of the subject-matter indicators of an identified media clip 400 should match one of the subject-matters indicated for the media program.
In the example shown in Figure 7, media clips 400B, 400C with a Subject of "Houses" are included, with the media clips 400D, 400E that do not have a Subject of "Houses" being excluded. As shown in Figure 7, the application of this seventh rule may provide for one or more default subject-matters (such as "Introduction" or "End"), such that if a media clip 400 relates to one of these default subject-matters then it may be included in the generated media program. Furthermore, the application of this seventh rule may provide that a media clip 400 may (or may not) be included in the generated media program if there is no media metadata indicating the subject-matter for that media clip 400.
It will be appreciated that it may be possible to specify one or more preferred subject-matters as properties for the generated media program. Figure 8 illustrates the application of a rule at the step S312 and the generation of a media program at the step S318 shown in Figure 3, in the situation following on from Figure 4 when the user 104 has also indicated a desired one or more geographical relevances for the generated media program, i.e. one of the properties for the media program comprises one or more geographical relevance indicators. For example, the media program with a ProglD value of 1234 may be a program relating to the housing/property market. The user 104 may be interested in properties in a specific geographical area. The user 104 may therefore indicate this preference to the media processing unit 100 when making the initial request. Alternatively, this preference may make up part of the user metadata stored in the user metadata database 206 for that user 104. This preference is then used to form a property for the media program to be generated.
The program generation unit 202 applies an eighth rule to identify which media clips 400 should be used for the media program. According to this rule, only media clips 400 having a specific geographical relevance (as indicated by the GeoRel value for their associated media metadata) are identified for the media program, with other media clips 400 being excluded. In other words,
according to the eighth rule at least one of the geographical relevance indicators of an identified media clip should match one of the geographical relevances indicated for the media program.
In the example shown in Figure 8, the user 104 has indicated a preferred geographical relevance of "Chelsea". Therefore, in applying this eighth rule, the program generation unit 202 identifies and includes the media clips 400B, 400D with a GeoRel value of "Chelsea", but does not identify and include the media clip 400C that does not have a GeoRel value of "Chelsea". As shown in Figure 8, the application of this eighth rule may provide that a media clip 400 may be included in the generated media program if there is no media metadata indicating the geographical relevance for that media clip 400. However, it will be appreciated that the application of this eighth rule may provide that a media clip 400 may not be included in the generated media program if there is no media metadata indicating the geographical relevance for that media clip 400. It will be appreciated that it may be possible to specify one or more preferred geographical relevance areas/locations as properties for the generated media program.
As described above, the media metadata associated with a media clip 400 may indicate an age for a user 104, with a user 104 only being permitted to use/view that media clip if their age is at least the age indicated by the media metadata. The program generation unit 202 may therefore apply a ninth rule based on these age indicators when identifying one or more media clips 400 with which to generate the media program.
One of the properties for the media program may comprise an indication of an age for a user 104 of that media program. This could be determined automatically, for example, from a date of birth stored for a user 104 who has logged-in to the media processing system 100. According to this ninth rule, the program generation unit 202 only identifies media clips 400 having an age indicator the not exceeding the age of the user 104, with other media clips 400 being excluded. Additionally, if the media metadata for a media clip 400 does not indicate a viewing age for that media clip 400, then the application of this ninth rule allows the program generation unit 202 to identify that media clip 400 for use
in generating the media program. In this way, the generated media program will only contain media clips 400 that are suitable for viewing by the requesting user 104.
The media metadata associated with a media clip 400 may also include a price value for using that media clip 400. This price value may be a positive value if the user 104 may have to pay that price for the inclusion of that media clip 400 within the generated media program. The price value may be a zero- price, indicating that that particular media clip 400 may be included within the generated media program at no cost. Additionally, the price value may be a negative value, indicating that the originator of the media clip 400 has to pay for the inclusion of that media clip 400 within the generated media program. This may be the case, for example, when the media clip 400 is an advertisement. The cost of the generated media program to the user 104 is then the sum of the price values of the identified media clips 400 that are used to generate the media program.
The user 104 may indicate to the media processing system 100 a price preference value. This may be done by the user 104 when making the request for the media program. Alternatively, this may form part of the user metadata associated with that user 104. For example, the user 104 may have a preference for the generated media programs to be always free of charge, i.e. the price that the user 104 has to pay for the media program is zero. Therefore, the program generation unit 202 applies a tenth rule to identify the media clips 400 for generating the media program. According to this tenth rule, the program generation unit 202 identifies one or more media clips 400 such that the sum of the price indicators/values for the identified media clips 400 does not exceed the price indicated by the user 104 for the media program. For example, the program generation unit 202 may have already identified, via the application of the above- mentioned rules, one or more media clips 400 for the media program, but the total cost for the media program may currently exceed the price value indicated by the user 104. Therefore, in the application of this tenth rule, the program generation unit 202 may identify one or more media clips 400, such as advertisement clips that have a negative price value, for inclusion within the
media program. In this way, the program generation unit 202 may reduce the combined total price for the generated media program to a level that does not exceed the price value indicated by the user 104.
The user 104 may have indicated to the media processing system 100 one or more preferred properties (syntactic properties) for the media program. For example, the user 104 may have indicated a preferred compression algorithm, bitrate, video aspect-ratio, number of audio channels, etc. Alternatively, the user 104 may have specified a target device or application (PC, PDA, set-top box, mobile phone, specific web-browsers or player applications, etc.) which is to be used to play the media program. The media processing system 100 may therefore identify one or more syntactic properties for the media program. Therefore, when identifying the media clips 400 with which to generate the media program, the program generation unit 202 may apply an eleventh rule. According to this eleventh rule, the program generation unit 202 identifies media clips 400 that syntactically satisfy the syntactic properties that have been indicated by the user 104. In other words, according to the eleventh rule, the syntactic information associated with an identified media clip 400 should substantially match the syntactic information indicated for the media program.
However, it will be appreciated that such matching may not always be possible. For example, the user may have specified a compression bitrate which does not equal the compression bitrates of any of the stored media clips 400. In this case, the program generation unit 202 may perform a degree of reformatting of the media clip 400 for the purpose of generating the media program. This may involve, for example, decompressing a media clip 400, altering the video aspect ratio of the decompressed media clip, followed by recompression of the media clip 400 according to a target bitrate. However, it will be appreciated that other forms of reformatting may be performed by the program generation unit 202 in order to match the required syntactic format for the generated media program as per the preference of the user 104. It will be appreciated that the above-mentioned rules may be applied on their own or in conjunction with one or more of the other rules. Additionally, it will be appreciated that other rules relating to properties for the media program to be
generated may be used and that the above-mentioned rules are purely exemplary. Furthermore, the program generation unit 202 may apply one or more of these rules to generate one or more media programs, and then combine these media programs to form a single output media program for the user 104. For example, a user 104 may request a media program that begins with a property/housing program and which is then followed by a horoscope program. In this case, the program generation unit 202 may apply the above-mentioned rules to identify media clips 400 relating to a property/housing program and then may apply the above-mentioned rules to identify media clips 400 for a horoscope program and then form a media program for the user 104 from all of these identified media clips 400.
In the application of these rules, it may not be possible for the program generation unit 202 to identify a sequence of media clips 400 that has all of the properties indicated by the user 104. For example, the user 104 may want a media program which is 15 minutes long and free of charge, yet the media metadata for the media clips 400 may be such that these two properties conflict with each other in an unresolvable manner. If this happens, then the media processing system 100 reports the situation to the user 104 (see the step S316 of Figure 3) and may offer alternative media programs which can be generated Most of this is hidden from the user and we just do a "best approximation" (such as a media program which is 18 minutes long and free of charge or which is 15 minutes long and costs £2.00). The user 104 may then refine the desired properties for the media program accordingly and submit a new request via the user interface unit 200. Alternatively, the user interface unit 200 may be arranged to determine whether or not a media program may be generated for a user 104 or whether there will be an unresolvable situation to prevent the generation of the requested media program. For example, the user interface unit 200 may compare the age of a logged-in user 104 with the minimum usage age for the media clips 400 for a media program to check whether the user 104 is old enough to be provided with the media program. The user interface unit 200 may therefore perform some/all of the rules-checking process and the media clip identification/ordering process to
ensure that a media program may be validly generated for the user 104. Once the user interface unit 200 has done this, then (i) if it has determined that the media program may be validly generated, it passes the request to the program generation unit 202; otherwise (ii) it reports the situation to the user 104 as described above.
It will also be appreciated that the program generation unit 202 may have to perform a variety of processing in order to combine the identified media clips 400. It may be possible to simply concatenate the bit streams associated with the media clips 400 (i.e. simply concatenate the media clips 400 themselves in the identified sequential order) in order to form the media program. However, it will be appreciated that this may not be possible in certain situations. For example, the data compression algorithms used for the media clips 400 may not provide for simple concatenation of compressed data streams. Alternatively, the bitrates of the various identified media clips 400 may all be different, and this may lead to a situation in which the media clips 400 cannot simply be concatenated. Therefore, the program generation unit may perform a degree of formatting (or re-formatting) on one or more of the identified media clips 400 in order to generate the media program. This may involve, for example: decompressing one or more compressed media clips 400; compressing one or more decompressed (or non-compressed) media clips 400; adjusting the bitrate of one or more media clips 400; and adjusting the video aspect-ratio of one or more media clips 400. This formatting may be performed in accordance with a requirement of a target device or application that is to receive the generated media program or in accordance with a required format indicated by the user 104. It will be appreciated that the user 104 may have specified a particular time/date at which the media processing system 100 should return/deliver the generated media program to that user 104. To this end, the media processing system 100 may have a memory in which to store a media program that has been generated prior to its delivery at a specific time. Alternatively, the media processing system 100 may be arranged to generate a media program for a user 104 at a time determined such that, once the media program has been generated, it is then time to deliver that media program to the user 104. This may
be under the control of the user interface unit 200 or the program generation unit 202.
Additionally, the user 104 may have specified that they wish a media program to be generated for them at one or more specific times. For example, the user 104 may indicate that they wish a particular media program to be generated for them on a weekly basis. This may be stored as user metadata in the user metadata database 206. To this end, the user interface unit 200 routinely interrogates the user metadata stored in the user metadata database 206 to identify any such requests. This may be performed, for example, on a daily basis. If the user interface unit 200 identifies user metadata indicating that a media program should be generated for a user 104, then the user interface unit 200 automatically generates a request indicating properties for the media program that is to be generated for the user 104 and sends his request to the program generation unit 202. It will be appreciated that, insofar as embodiments of the invention are implemented at least in part by a computer program, the computer program and any storage medium and/or transmission medium carrying that computer program are envisaged as aspects of the invention. Additionally, a media program generated by an embodiment of the invention and any storage medium and/or transmission medium carrying such a generated media program are also envisaged as aspects of the invention.
Claims
1. A method of generating a media program from a plurality of media clips, each media clip having associated media metadata, the method comprising the steps of: receiving an indication of one or more properties for the media program to be generated; applying one or more rules to the media metadata and the one or more properties for the media program to automatically identify and order a sequence of media clips from the plurality of media clips such that a combination of the identified media clips in the identified sequence satisfies the one or more properties for the media program; and generating the media program by combining the identified media clips in the identified sequence.
2. A method according to claim 1, in which at least part of the indication is in accordance with a user input provided by a user.
3. A method according to claim 2, comprising the steps of: providing a user interface for the user to provide the user input; and receiving the user input from the user via the user interface.
4. A method according to claim 3, in which the user interface is a webpage.
5. A method according to any one of claims 2 to 4, comprising the step of storing user metadata associated with a user, and in which at least part of the indication is in accordance with user metadata associated with the user providing the user input.
6. A method according to claim 5, comprising the step of identifying the user providing the user input.
7. A method according to any one of the preceding claims, in which: one of the indicated properties for the media program is a program identifier; the media metadata associated with a media clip comprises one or more program identifiers indicating a media program for which that media clip may be used; and one of the rules provides that, when identifying a sequence of media clips, a media clip is identified if at least one of the program identifiers for that media clip matches the indicated program identifier for the media program.
8. A method according to claim 7, in which: the media metadata associated with a media clip comprises a sequential position indicator indicating a sequential position for that media clip within a media program; and one of the rules provides that, when identifying a sequence of media clips, the identified sequence is ordered according to the sequential position indicators for the identified media clips.
9. A method according to any one of the preceding claims, in which: one of the indicated properties for the media program is a duration for the media program; the media metadata associated with a media clip comprises an indication of the duration of that media clip; and one of the rules provides that, when identifying a sequence of media clips, the sum of the durations of the identified media clips is substantially the same as the indicated duration for the media program.
10. A method according to any one of the preceding claims in which: the media metadata associated with a media clip comprises an indication that that media clip relates to an introduction for the media program; and one of the rules provides that, when identifying a sequence of media clips, the identified sequence must include a media clip indicated as relating to the introduction for the media program.
11. A method according to any one of the preceding claims in which: the media metadata associated with a media clip comprises an indication that that media clip relates to a conclusion for the media program; and one of the rules provides that, when identifying a sequence of media clips, the identified sequence must include a media clip indicated as relating to the conclusion for the media program.
12. A method according to any one of the preceding claims, in which: the media metadata associated with a media clip indicates a type for the media clip; and one of the rules provides that, when identifying a sequence of media clips, the sequential position of an identified media clip is dependent upon the type for that media clip.
13. A method according to any one of the preceding claims, in which: one of the properties for the media program comprises one or more subject-matter indicators; the media metadata associated with a media clip comprises one or more subject-matter indicators; and one of the rules provides that, when identifying a sequence of media clips, at least one of the subject-matter indicators of an identified media clip matches one of the subject-matter indicators for the media program.
14. A method according to claim 13 in which a media clip may be identified if the subject-matter indicator for that media clip indicates a default value.
15. A method according to any one of the preceding claims, in which: one of the properties for the media program comprises one or more geographical-relevance indicators; the media metadata associated with a media clip comprises one or more geographical-relevance indicators; and one of the rules provides that, when identifying a sequence of media clips, at least one of the geographical-relevance indicators of an identified media clip matches one of the geographical-relevance indicators for the media program.
16. A method according to any one of the preceding claims, in which: one of the properties for the media program comprises an indication of an age for a user of the media program; the media metadata associated with a media clip comprises an indication of a permissible age for a user of that media clip; and one of the rules provides that, when identifying a sequence of media clips, the permissible age indicator of an identified media clip does not exceed the indicated age for the user of the media program.
17. A method according to any one of the preceding claims, in which: one of the properties for the media program comprises a price indicators; the media metadata associated with a media clip comprises a price indicator; and one of the rules provides that, when identifying a sequence of media clips, the sum of the price indicators for the identified media clips does not exceed the price indicator for the media program.
18. A method according to any one of the preceding claims, in which: one of the properties for the media program comprises syntactic information; the media metadata associated with a media clip comprises syntactic information; and one of the rules provides that, when identifying a sequence of media clips, the syntactic information of an identified media clip substantially matches the syntactic information for the media program.
19. A method according to any one of the preceding claims, comprising the step of outputting the generated media program.
20. A method according to claim 19, comprising the steps of: determining a destination to which the generated media program is to be output; and outputting the generated media program to the determined destination.
21. A method according to claim 20, in which the determined destination is a default destination specified by a user.
22. A method according to any one of the preceding claims, in which the step of generating the media program comprises formatting one or more of the identified media clips.
23. A method according to claim 22, in which the step of formatting comprises one or more of: decompressing a compressed media clip; compressing a de-compressed media clip; adjusting a bitrate for a media clip; and adjusting a video aspect ratio for a media clip.
24. A method according to claim 22 or 23, in which the step of formatting is performed in accordance with a requirement of a target device or application that is to receive the generated media program.
25. A method according to claim 22 to 23, in which the step of formatting is performed in accordance with an indication of a desired format received from a user.
26. A method according to any one of the preceding claims, in which the step of combining the identified media clips in the identified sequence comprises concatenating the identified media clips according to the identified sequence.
27. A method according to any one of the preceding claims, in which the media clips comprise one or more of: a video clip; an audio clip; and an audio/video clip.
28. A method according to any one of the preceding claims, comprising the step of automatically generating a request indicating the one or more properties for the media program.
29. A method according to claim 28, in which the request is generated periodically.
30. A method of assembling a program that satisfies one or more preferences of a user by applying one or more rules to the one or more preferences of the user and to metadata associated with stored media clips to select and order a plurality of the stored media clips, the program being assembled from the selected and ordered media clips.
31. A method substantially as hereinbefore described with reference to the accompanying drawings.
32. An apparatus for generating a media program from a plurality of media clips, each media clip having associated media metadata, the system comprising: a data store operable to store the media clips and the associated media metadata; an interface operable to receive an indication of one or more properties for the media program to be generated; and a program generation unit operable to: apply one or more rules to the media metadata and the one or more properties for the media program to automatically identify and order a sequence of media clips from the plurality of media clips such that a combination of the identified media clips in the identified sequence satisfies the one or more properties for the media program; and generate the media program by combining the identified media clips in the identified sequence.
33. An apparatus for assembling a program that satisfies one or more preferences of a user by applying one or more rules to the one or more preferences of the user and to metadata associated with stored media clips to select and order a plurality of the stored media clips, the program being assembled from the selected and ordered media clips.
34. An apparatus substantially as hereinbefore described with reference to the accompanying drawings.
35. A computer program which, when executed by a computer, carries out a method according to any one of claims 1 to 30.
36. A storage medium carrying a computer program according to claim 35.
37. A transmission medium carrying a computer program according to claim 35.
38. A media program generated by a method according to any one of claims 1 to 31.
39. A storage medium carrying a media program according to claim 38.
40. A transmission medium carrying a media program according to claim 38.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0608529.4 | 2006-04-28 | ||
GB0608529A GB0608529D0 (en) | 2006-04-28 | 2006-04-28 | Generating a media program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007129008A1 true WO2007129008A1 (en) | 2007-11-15 |
Family
ID=36590071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2007/001382 WO2007129008A1 (en) | 2006-04-28 | 2007-04-17 | Generating a media program |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB0608529D0 (en) |
WO (1) | WO2007129008A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009124385A1 (en) * | 2008-04-11 | 2009-10-15 | Dunk Craig A | Systems, methods and apparatus for providing media content |
US20130125000A1 (en) * | 2011-11-14 | 2013-05-16 | Michael Fleischhauer | Automatic generation of multi-camera media clips |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998044717A2 (en) * | 1997-04-01 | 1998-10-08 | Medic Interactive, Inc. | System for automated generation of media programs from a database of media elements |
WO2000039997A2 (en) * | 1998-12-30 | 2000-07-06 | Earthnoise.Com Inc. | Creating and editing digital video movies |
EP1083567A2 (en) * | 1999-09-08 | 2001-03-14 | Sony United Kingdom Limited | System and method for editing source metadata to produce an edited metadata sequence |
WO2002052565A1 (en) * | 2000-12-22 | 2002-07-04 | Muvee Technologies Pte Ltd | System and method for media production |
WO2006065223A1 (en) * | 2004-12-13 | 2006-06-22 | Muvee Technologies Pte Ltd | A method of automatically editing media recordings |
-
2006
- 2006-04-28 GB GB0608529A patent/GB0608529D0/en not_active Ceased
-
2007
- 2007-04-17 WO PCT/GB2007/001382 patent/WO2007129008A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998044717A2 (en) * | 1997-04-01 | 1998-10-08 | Medic Interactive, Inc. | System for automated generation of media programs from a database of media elements |
WO2000039997A2 (en) * | 1998-12-30 | 2000-07-06 | Earthnoise.Com Inc. | Creating and editing digital video movies |
EP1083567A2 (en) * | 1999-09-08 | 2001-03-14 | Sony United Kingdom Limited | System and method for editing source metadata to produce an edited metadata sequence |
WO2002052565A1 (en) * | 2000-12-22 | 2002-07-04 | Muvee Technologies Pte Ltd | System and method for media production |
WO2006065223A1 (en) * | 2004-12-13 | 2006-06-22 | Muvee Technologies Pte Ltd | A method of automatically editing media recordings |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009124385A1 (en) * | 2008-04-11 | 2009-10-15 | Dunk Craig A | Systems, methods and apparatus for providing media content |
US20130125000A1 (en) * | 2011-11-14 | 2013-05-16 | Michael Fleischhauer | Automatic generation of multi-camera media clips |
US9792955B2 (en) * | 2011-11-14 | 2017-10-17 | Apple Inc. | Automatic generation of multi-camera media clips |
Also Published As
Publication number | Publication date |
---|---|
GB0608529D0 (en) | 2006-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1536352B1 (en) | System for accessing content items over a network | |
US10027813B2 (en) | System and method for aggregating and providing audio and visual presentations via a computer network | |
US8271341B2 (en) | Media content delivery systems and methods | |
US8214462B1 (en) | System and method for providing a personalized media service | |
EP1239619A2 (en) | Apparatus and method for media distribution in the form requested by a client | |
KR101706630B1 (en) | Method, apparatus and system for providing contents to multi devices | |
US20080163317A1 (en) | Generation of video streams from content items | |
EP1579690A1 (en) | Usage data harvesting | |
WO2001084340A1 (en) | Media player with programmable playlists | |
US20070294249A1 (en) | Electronic program guide | |
US20100205276A1 (en) | System and method for exploiting a media object by a fruition device | |
JP4303085B2 (en) | Content provision service system | |
KR20000036934A (en) | Internet broadcasting system and method using the technique of dynamic combination of multimedia contents and targeted advertisement | |
US9172732B1 (en) | System and method for providing a personalized media service | |
KR20060123459A (en) | Use of Presence Status in On-Demand Media Systems | |
EP2154819B1 (en) | Content sharing method, server and system | |
US7313702B2 (en) | Method for issuing identification information | |
US20020049723A1 (en) | Content managing system, content managing apparatus, and content managing method | |
US20040010630A1 (en) | System and method for delivery of information | |
WO2007129008A1 (en) | Generating a media program | |
CN100466575C (en) | Content playing system, client and content playing method | |
US20020023167A1 (en) | Content delivering method | |
EP1992145B1 (en) | Managing playlists | |
KR20040010905A (en) | Audio-ad system using music file on network | |
CA2634039A1 (en) | Content depot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07732424 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07732424 Country of ref document: EP Kind code of ref document: A1 |