Sciammarella, Eduardo (175 E. Delaware, Chicago, IL, 60611, US)
Poisson, John (9 Johns Drive, Hooksett, NH, 03106, US)
Imaizumi, Ryoichi (203A, 4-24-28 Takanaw, Minato-ku Tokyo, 108-0074, JP)
Hiraki, Norikazu (2-171 KosugiGoten-cho, Nakahara-ku Kanagawa-shi, Kanagawa, 211-0068, JP)
| 1. | A method of providing a network media channel, comprising: capturing media data using a media capture device, wherein said media capture device is connected to a network and includes local storage and a media editing component; storing said captured media data in a media file in said local storage of said media capture device; modifying said media file using said media editing component of said media capture device; and publishing said modified media file to said network to correspond to a network media channel, such that said published media file is accessible through said network. |
| 2. | The method of claim 1, wherein: said media data includes video data. |
| 3. | The method of claim 1, wherein: said media capture device is a publishing client connected to a server through said network. |
| 4. | The method of claim 1, wherein: said network media channel includes one or more media files published to said server by said publishing client. |
| 5. | The method of claim 1, further comprising: creating said network media channel. |
| 6. | The method of claim 1, wherein: modifying said media file includes editing the media data stored in said media file. |
| 7. | The method of claim 1, wherein: modifying said media file includes adding supplemental media data to said media file. |
| 8. | The method of claim 7, wherein: said supplemental media data is media data captured by said media capture device. |
| 9. | The method of claim 7, wherein: said supplemental media data is audio data. |
| 10. | The method of claim 1, wherein: modifying said media file includes adding metadata to said media file. |
| 11. | The method of claim 10, wherein: said metadata indicates said network media channel. |
| 12. | The method of claim 10, wherein: said metadata includes identification information identifying the author of said media file. |
| 13. | The method of claim 10, wherein: said metadata includes one or more keywords. |
| 14. | The method of claim 10, wherein: said metadata includes a timestamp. |
| 15. | The method of claim 10, wherein: said metadata includes a group identifier indicating a group of one or more media files with which the published media file is to be associated. |
| 16. | The method of claim 10, wherein: said metadata includes a group identifier indicating a group of one or more media network channels with which the published media file is to be associated. |
| 17. | The method of claim 1, wherein: publishing said media file includes sending a copy of said media file to a media channel server connected to said network. |
| 18. | The method of claim 1, further comprising: subscribing to a second network media channel with said server through said network; receiving a notification of an update to said second network media channel from said server through said network; receiving a media file corresponding to said update of said second network media channel at a media browsing device from said server through said network. |
| 19. | The method of claim 18, further comprising: presenting said media file corresponding to said update. |
| 20. | A method of providing a network media channel, comprising: subscribing to a network media channel with a server through a network; receiving a notification of an update to said network media channel from said server through said network; and receiving a media file corresponding to said update of said network media channel at a media browsing device from said server through said network. |
| 21. | The method of claim 20, wherein: said network media channel includes one or more media files published to said server by a publishing client. |
| 22. | The method of claim 20, further comprising: requesting said notification from said server through said network. |
| 23. | The method of claim 22, wherein: requesting said notification from said server includes accessing an RSS page for said network media channel. |
| 24. | The method of claim 20, further comprising: creating an annotation to said media file; sending said annotation to said server through said network. |
| 25. | The method of claim 20, wherein: subscribing to said network media channel includes sending a subscription request to said server through said network. |
| 26. | The method of claim 25, wherein: said subscription request includes profile information identifying the subscriber. |
| 27. | The method of claim 20, wherein: said subscribed network media channel is a group channel. |
| 28. | The method of claim 27, wherein: said group channel includes media files from two or more publishing clients. |
| 29. | The method of claim 27, wherein: said group channel includes media files from two or more network media channels. |
| 30. | The method of claim 20, wherein: said subscribed network media channel is a filter channel, wherein said filter channel includes any media files that match a filter query extracted from one or more target media network channels, and said filter channel indicates said filter query and said one or more target media network channels. |
| 31. | The method of claim 20, further comprising: sending a filter request to said server through said network indicating one or more target media network channels and a filter query including one or more filter terms, wherein said filter requests indicates a filter channel to include any media files that match said filter query extracted from said one or more target media network channels; receiving said media file from said server through said network as one of said extracted media files of said filter channel. |
| 32. | The method of claim 20, further comprising: presenting said media file. |
| 33. | The method of claim 20, further comprising: receiving a second media file corresponding to a second network media channel from said server through said network; presenting said media file and said second media file at the same time. |
| 34. | A method of providing a network media channel, comprising: receiving a media file corresponding to a network media channel through a network from a publishing client; storing said media file according to said network media channel; creating a notification indicating said media file has been received; and sending said media file to a subscriber client through said network. |
| 35. | The method of claim 34, wherein: said network media channel includes one or more media files published to said server by said publishing client. |
| 36. | The method of claim 34, further comprising: receiving a new channel request to create said network media channel. |
| 37. | The method of claim 36, wherein: said new channel request is from said publishing client. |
| 38. | The method of claim 34, further comprising: receiving a subscription request from said subscriber client indicating said subscriber client is to subscribe to said media network channel. |
| 39. | The method of claim 34, further comprising: receiving a notification request from said subscriber client requesting said notification be sent to said subscriber client. |
| 40. | The method of claim 39, wherein: said notification request also indicates that any notifications for other network media channels to which said subscriber client has subscribed also be sent to said subscriber client. |
| 41. | The method of claim 34, further comprising: sending said notification to said subscriber client. |
| 42. | The method of claim 34, wherein: said notification is an RSS page for said network media channel. |
| 43. | The method of claim 34, further comprising: receiving a media file request from said subscriber client requesting said media file be sent to said subscriber client. |
| 44. | The method of claim 34, further comprising: receiving a filter request from said subscriber client indicating one or more target media network channels and a filter query including one or more filter terms; generating a filter channel by extracting any media files that match said filter query from said one or more target media network channels, such that said filter channel includes said extracted media files and said extracted media files includes said media file received from said publishing client; sending said extracted media files to said subscriber client as said filter channel. |
| 45. | The method of claim 34, further comprising: receiving a group channel request to create a group channel. |
| 46. | The method of claim 45, wherein: said group channel includes media files from one or more media network channels including said media network channel indicated by the said publishing client. |
| 47. | The method of claim 45, wherein: said media network channel indicated by said publishing client is said group channel. |
| 48. | The method of claim 45, further comprising: receiving a second media file corresponding to said group channel through said network from a second publishing client; sending said second media file to said subscriber client through said network. |
| 49. | The method of claim 34, further comprising: verifying that said subscriber client has authorization to access said network media channel before sending said media file to said subscriber client. |
| 50. | A system for providing a network media channel, comprising: a network; a server connected to said network, wherein said server includes storage for storing media files, and a network media channel manager for receiving and sending media files according to one or more media network channels; a publishing client connected to said network, wherein said publishing client includes a media capture component for capturing media data and storing captured media data in a media file, a media editing component for editing media files, and a publishing component for publishing to said server a media file corresponding to a network media channel; and a subscribing client connected to said network, wherein said subscribing client includes a subscribing component for subscribing to one or more network media channels, and a browsing component for accessing media files received according to subscribed network media channels. |
| 51. | The system of claim 50, wherein: 59. The system of claim 58, wherein: said subscribing client is a phone. |
| 52. | 60 A computer program, stored on a tangible storage medium, for use in providing a network media channel, the program comprising executable instructions that cause a computer to: capture media data using a media capture device, wherein said media capture device is connected to a network and includes local storage and a media editing component; store said captured media data in a media file in said local storage of said media capture device; modify said media file using said media editing component of said media capture device; publish said modified media file to said network to correspond to a network media channel, such that said published media file is accessible through said network. |
| 53. | 61 The computer program of claim 60, further comprising executable instructions that cause a computer to: subscribe to a second network media channel with said server through said network; process a notification of an update to said second network media channel from said server through said network; request a media file corresponding to said update of said second network media channel at a media browsing device from said server through said network. |
| 54. | 62 The computer program of claim 61, further comprising executable instructions that cause a computer to: present said media file corresponding to said update. |
In one implementation, only the publishing client that creates the network media channel can publish to the channel. In another implementation, only members of a defined group can publish to the channel.
The transcoding manager 545 manages providing a published media file in a requested format. One type of metadata associated with a subscriber or a request for a media file indicates in what format the media file it to be delivered. When a subscriber requests a media files in a format different from that in which the media file is stored in the storage 505, the transcoding manager 545 causes a new media file to be created and <BR> stores a transcoded version (e. g. , transcoded from JPEG to GIF) of the original media file in the new media file.
The modification manager 550 manages changes or additions made to media files by subscribing clients. When a client adds an annotation or edits a media file and requests that the change or addition be published in the network media channel, the modification manager 550 incorporates the new or modified media file into the channel. In one implementation, the owner or originator of a channel may prohibit changes or additions to a channel being published to the channel (though changes made to the media files and kept only at the subscribing client might be acceptable).
The filter manager 555 manages any filter channels that have been established by subscribing clients. As discussed above, filter channel is a collection of media files from one or more target network media channels selected according to a filter query having one or more filter terms or criteria. The filter manager 555 stores the filter profile for the filter channel and extracts media files according to the filter profile. The filter manager 555 allows subscribing clients to subscribe to the filter channel as well.
The group manager 560 manages group channels. A group channel is collection of media files published by different publishing clients. In one implementation, the group channel is similar to a filter and extracts media files from
other network media channels. In another implementation, the group channel is similar to a regular network media channel and media files can be published to the group channel directly. A group channel can also be defined or limited by criteria such as time, members, and location.
The server manager 565 manages the operation of the server 500 outside the operations of the other managers.
Figure 6 shows a flowchart 600 of one implementation of providing a network media channel using a publishing client and a server interconnected by a network, such as the publishing client 210 and server 215 interconnected by the network 205 shown in Figure 2.
The publishing client captures media data, block 605. As described above, the publishing client includes a media capture device or component for capturing audio, video, text, drawing, or some other form of media data. For example, in one implementation, the publishing client includes a camera and a microphone for capturing audio and still or motion video. In another implementation, a separate device captures the media data and provides the captured media data to the publishing client.
The publishing client stores the captured media data in a media file, block 610.
As described above, the publishing client includes storage, such as embedded or removable flash memory. The publishing client creates media files for captured media data and stores the media data in the new file.
The publishing client modifies the media file, block 615. The publishing client adds metadata to the media file indicating the author, the time the media data was captured, and the publishing channel (i. e. , the network media channel to which the media file is to be published). The publishing client can query the user for additional information as appropriate, such as to select a channel for publishing. Other implementations provide more or less metadata, and can also allow a user to select what metadata to include. Examples of metadata include, but are not limited to, time information, publishing channel information (e. g. , to what network media channel the media file is to be published), keywords, author information, user information (e. g., personal characteristics of the user such as height, blood type, age, or mood), title, capturing device, publishing device, location, event information, a hierarchical class (e. g. , indicating to which category among a group of externally defined categories the
media file belongs), links to other media files or network resources (e. g. , a URL), a link<BR> to another network media channel, and associated channel information (e. g. , indicating with which other channels the media file is associated, or with which other channels the publishing channel is associated). In one implementation, information describing the layout and presentation of a media file in the channel can also be added as metadata.
As described above, in one implementation, the publishing client also provides editing functionality for a user to modify, supplement, or annotate the media data in the media file. The user can make various changes to the data, such as resizing or cropping an image or changing the format of the media file. The publishing client can treat the <BR> <BR> changes as destructive or non-destructive (e. g. , retractable) to the media data. The user can add additional data to a media file or annotate a media file, such as by adding an audio or text comment or an overlaying image, or by adding information about the media file, such as a title. If the publishing client does not modify the media file, block 615 is skipped.
The publishing client publishes the media file, block 620. After completing any modifications, the user requests that the publishing client publish the media file. If the publishing channel has not already been set, the publishing client sets the publishing channel in metadata for the media file. In one implementation, the publishing client confirms the publishing channel with the user. In another implementation, the publishing client indicates multiple publishing channels to publish the media file. The publishing client sends the media file to a server through the network to be published to the indicated network media channel. In another implementation, the publishing client sends a link to the server, the link indicating a storage location for the media file.
Figure 7 shows a flowchart 700 of one implementation of providing a network media channel using a subscribing client and a server interconnected by a network, such as the subscribing client 220 and server 215 interconnected by the network 205 shown in Figure 2.
A subscribing client subscribes to a network media channel through a server, block 705. The subscribing client receives a notification of or information about a network media channel to which the subscribing client can subscribe, such as received in an email or retrieved from an online index or directory of network media channels.
The subscribing client sends a subscription request to the server through the network.
The subscription request includes information identifying the subscribing client and
indicating the network media channel. In one implementation, the subscription request also includes authorization information indicating that the subscribing client has the authority or permission to subscribe to the indicated network media channel. The server returns confirmation that the subscribing client is a subscriber to the subscribed channel.
The subscribing client receives a notification that an update has occurred for the subscribed channel, block 710. A notification of an update indicates that new media is available for the subscribed channel. The notification can also provide information about the new media, such as a title, a time, or information indicating whether the new media file is a completely new file or a modification or annotation to a previously published file. In one implementation, the server maintains a notification table or page <BR> <BR> (e. g. , an RSS page (Rich Site Summary) ) for the subscribed channel. When the server has received an update, the server changes the notification page to reflect the update.
In one implementation, the server uses a notification flag to indicate whether an update has occurred during a defined time period. The subscribing client requests the notification page from the server to determine whether updates have occurred. For example, one subscribing client is set to check with the server for each subscribed channel two times each day. In another implementation, the subscribing client receives a direct notification from the server of an update. The server sends out a notification to each of the recorded subscribers for a network media channel when there is an update for the channel, such as by email. The email can specifically indicate what updates have occurred or merely that an update has occurred. Alternatively, the server provides a notification on a regular basis (e. g. , once each hour or day), rather than for every update.
The subscribing client receives a media file according to the notification, block 715. The subscribing client requests the updated or new media file (s) from the server and the server sends the media file (s) to the subscribing client. In one implementation, the subscribing client downloads media files from the server as a background process while performing other tasks. In another implementation, the subscribing client requests that the media file be sent to another storage location or device as well as or instead of the subscribing client. In another implementation, the server automatically <BR> <BR> sends new media files to a subscribing client (e. g. , in a push model), such as along with the notification or after receiving confirmation that the notification was received.
The subscribing client stores the received media file according to the subscribed channel, block 720. The subscribing client stores media files for the subscribed channel according to guidelines set by the user for the subscribed channel. For example, the user can set an expiration period indicating how long a media file is to be retained.
The subscribing client presents the media data of the media file to a user, block 725. The subscribing client presents the media data of the new media file along with media data from other older media files in the subscribed channel (e. g. , media files previously downloaded and stored). In one implementation, the media data for each file is presented as an item in a horizontal row of images or items in time order, with the most recently published item at the left. The user selects one of the items to <BR> <BR> activate or play the media data for the item (e. g. , to view and hear a video clip). In one implementation, the subscribing client presents media data from two or more network media channels at the same time, such as using respective horizontal rows of images.
In one implementation, the subscribing client presents one media file at a time, in order of ascending time. In another implementation, the user can change the presentation of media data. The user can set the layout and ordering of items from the subscribed channel. For example, rather than a horizontal row of items in time order, the user can select to have the media items arranged by title in a three-dimensional pyramid formation. In another example, the subscribing client supports a search function for finding media files, such as by keyword or author. In one implementation, information describing the layout and presentation is added as metadata to a media file when modifying a file.
The subscribing client modifies the new media file, block 730. The subscribing client provides editing and annotating functionality similar to that of the publishing client described above. The subscribing client allows a user to edit the media data, add media data or annotations, and modify or add metadata for the media file.
The subscribing client sends the modifications back to the server, block 735.
The uploaded changes are published so that all the subscribing clients for that channel will have access to the changes. In one implementation, the subscribed channel does not permit modifications to be published back to the channel by a subscribing client, or only by certain subscribing clients. In another implementation, the subscribing channel permits only some types of modification, such as allowing annotations, but not
allowing the media data to be edited. If the subscribing client does not have the authority or permission to make the requested changes, the subscribing client stores the changes locally so that when the media file is presented on the subscribing client the changes are available, but the changes will not be published so that other subscribing clients will not have access to the changes. Alternatively, the changes are discarded.
In another implementation, modifications by a subscribing client are submitted as proposed modifications and other subscribing clients can participate in accepting, declining, or editing the proposed modifications. For example, different subscribing clients could have different priority or ranking in deciding what modifications to accept. In this way, multiple subscribing clients can collaboratively edit and create a network media channel and its media files.
If the subscribing client does not have any modification to make to the media file, blocks 730 and 735 are skipped. Similarly, in an implementation where subscribing clients are not permitted to modify media files in network media channels, blocks 730 and 735 are skipped.
Figure 8 shows a flowchart 800 of one implementation of providing a network media channel using a server, a publishing client, and a subscribing client interconnected by a network, such as the server 215, publishing client 210, and subscribing client 220 interconnected by the network 205 shown in Figure 2.
A server creates a network media channel, block 805. The server creates the network media channel in response to a request received from a publishing client or a subscribing client. The request indicates characteristics of the network media channel, such as restrictions on publishing or subscribing. For example, one network media channel is restricted in that only the creating client can publish media files to the channel, only subscribing clients from a particular list can subscribe without a password, only one subscribing client and the publishing client can publish modifications to the media files of the channel, and only video files of a certain resolution can be published to the channel. In one implementation, the request can also indicate layout and presentation information indicating how a subscribing client is to present the media data of the network media channel. The server also prepares a new notification page or table for the new channel.
The server adds a subscribing client as a subscriber to the network media channel, block 810. The server receives a request to be added as a subscriber from the
subscribing client (or a request from another client to add the subscribing client). If the channel is restricted, the server first verifies that the subscribing client is authorized to become a subscriber. The server adds the subscribing client to a list of subscribers for the network media channel.
The server receives a media file to be published from a publishing client, block 815. The server determines to which network media channel the received media file is to be published. If the network media channel is restricted, the server verifies that the publishing client is authorized to publish to the channel and verifies that the media file is within any other restrictions of the channel.
The server stores the media file according to the network media channel, block 820. The server updates indexes related to relevant metadata of the new media file.
The server publishes the media file, block 825. Once the media file is published, subscribing clients that are subscribers can request the media file from the server.
The server generates a notification indicating the new media file is available, block 830. The notification indicates a new file is available for the network media channel. The notification can also indicate additional information, such as the type of file, author, time of publication, or information indicating whether the new media file is a completely new file or a modification or annotation to a previously published file. In one implementation, the server maintains a notification page or table including the <BR> <BR> notification information (e. g. , an RSS page). When the server has received an update, the server changes the notification page to reflect the update. In one implementation, the server uses a notification flag to indicate whether an update has occurred during a defined time period. Subscribing clients that are subscribers can request and access the notification page to determine whether an update has occurred. In another implementation, the server sends a notification to each of the subscribing clients that are recorded subscribers for a network media channel when there is an update for the channel, such as by email. Alternatively, the server provides a notification on a regular basis (e. g. , once each hour or day), rather than for every update.
The server sends the media file to a subscribing client, block 835. The server receives a request from a subscribing client that is a subscriber to the network media channel. In another implementation, the server automatically sends new media files to <BR> <BR> a subscribing client (e. g. , in a push model), such as along with the notification or after
receiving confirmation that the notification was received. In one implementation, the server provides transcoding to match the subscribing client. The server determines the type of platform of the subscribing client and the format that the subscribing client is requesting. In one implementation, the subscribing client provides the platform information in the initial subscription request and provides the format information in the request for the media file. If the stored media file does not match the platform and format for the subscribing client, the server transcodes the media file to match the client. In another implementation, the server stores the media files in multiple formats for multiple platforms, or caches the results of transcoding. In another implementation, the server streams media data to the subscribing client rather than sending the media file as a whole. In yet another implementation, the server provides to the subscribing client a link to the media file to be accessed later.
The server receives a modified media file from the subscribing client, block 840. As described above, the subscribing client provides editing and annotating functionality similar to that of the publishing client. The subscribing client allows a user to edit the media data, add media data or annotations, and modify or add metadata for the media file. The server receives the modified file from the subscribing client. If the channel is a restricted channel, the server verifies that the subscribing client sending the modified media file has the authority to publish modifications to the media file to the network media file, or has the authority to publish modification of the kind made to the media file.
If the modification is acceptable, the server stores the modified media file, block 845. The server updates indexes related to relevant metadata of the new media file.
The server publishes the modified media file, block 850. Once the media file is published, subscribing clients that are subscribers can request the media file from the server. The server treats the modified media file as an update and generates another notification for subscribers. Alternatively, modified media files are not treated as updates and so the server does not generate notifications for these media files, only for newly published media files.
If the server does not receive a modified media file from a subscribing client, blocks 840,845, and 850 are skipped. Similarly, in an implementation where
subscribing clients are not permitted to modify media files in network media channels, blocks 840,845, and 850 are skipped.
Figure 9 shows a flowchart 900 of one implementation of providing a network media channel using a publishing client, a server, and a subscribing client interconnected by a network, such as the publishing client 210, server 215, and subscribing client 220 interconnected by the network 205 shown in Figure 2. Figure 9 follows the path of one media file as the file is created, published, and downloaded, and so Figure 9 combines aspects of the processes described above referring to Figures 6-8 for a publishing client, a subscribing client, and a server.
A publishing client creates a new network media channel by sending a new channel request to a server, block 905. The server creates the new network media channel upon verifying the request from the publishing client. A subscribing client subscribes to the new channel by sending a subscription request to the server, block 910. The server verifies the subscription request and adds the subscription client to the list of subscribers for the channel. The publishing client captures media data using an embedded media capture device into a new media file, block 915. The publishing client edits the media data in the new media file, block 920, and adds metadata to the media file, block 925. The added metadata includes a timestamp and an indication that the new channel is the publishing channel for the media file. The publishing client publishes the media file by sending the media file to the server, block 930. The server verifies the media file and publishes the file to the new channel, making the media file available to subscribers of the channel. The server updates the notification page for the new channel indicating the new media file has been received, block 935. The subscribing client accesses the notification page and requests the new media file, block 940. The server sends the new media file to the subscribing client as a subscriber to the new channel, block 9450. The subscribing client receives the new media file and presents the media data in the file to a user of the subscribing client, block 950. The subscribing client can also present other media files from the new channel or from other network media channels. The subscribing client modifies the media file, block 955. The subscribing client can edit the media data, add media data, and add annotations to the media file. The subscribing client uploads the modified media file to the server, block 960. After verifying the modifications are acceptable, the server publishes the modified media file back to the new channel, block 965.
Figure 10 shows a flowchart 1000 of one implementation of providing a filter channel using a server and a subscribing client interconnected by a network, such as the server 215 and subscribing client 220 interconnected by the network 205 shown in Figure 2. As discussed above, a filter channel is a special type of network media channel that is a composite of media files extracted from one or more other network media channels. The filter channel extracts media files from these target network media channels according to a filter query including one or more filter terms.
Accordingly, in one aspect, a filter channel is similar to a persistent search applied repeatedly to the target channels. Examples of filter terms include, but are not limited to, data stored in the metadata of media files such as keywords or time, and attributes of the media files such as type, format, or size. If the filter query does not have any filter terms, the filter channel extracts all of the media files from the target channels, forming a composite channel or a type of group channel. In another implementation, the target channels are also defined by a filter query.
The filter channel is updated as the target channels of the filter channel are updated. Once established, the filter channel is treated similarly to a regular network media channel and subscribing clients can subscribe to the filter channel. However, publishing clients do not publish media files to the filter channel directly. New media files are added to the filter channel by being added to one of the target channels and then extracted to the filter channel. In an alternative implementation, publishing clients can publish directly to a filter channel as well. In one implementation, modifications or annotations made by subscribing clients to media files in the filter channel can be presented in both the target channels and the filter channel, in only one of the two, or modifications may not be permitted by a subscribing client as a subscriber to the filter channel (though the same modification may be permitted by a subscribing client as a subscriber to the target channel).
A subscribing client builds a filter profile for a new filter channel, block 1005.
A filter profile indicates one or more target network media channels and a filter query including zero or more filter terms. The target network media channels are network media channels accessible to the subscribing client (e. g. , channels to which the subscribing client has authorization to subscribe).
The subscribing client sends a filter request to the server, block 1010. The filter request includes the filter profile. The filter request also includes any restrictions the subscribing client wants imposed on the new filter channel, similar to creating a normal network media channel.
The server creates the filter channel and extracts from each of the target channels any media files that match the filter query of the filter channel, block 1015.
Before building the new filter channel, the server verifies the filter request is proper (e. g. , for syntax and authorization). The server searches among the media files of each target channel for media files that match the filter query, and extracts any media files that match the filter query. The server makes copies of or references to the extracted files, and so the extraction does not affect the target channels and the extracted media files themselves. The server treats the extracted media files similarly to media files to be published to a normal network media channel.
The server opens access to the filter channel and publishes the media files of the filter channel, block 1020. The server accepts subscription requests for the filter channel and provides notifications for updates to the filter channel (where updates to the filter channel include media files published to target channels and that match the filter query). Periodically, the server updates the media files included in the filter channel. Alternatively, the server updates the filter channel whenever one of the target channels of the filter channel is updated.
In an alternative implementation, a filter channel, or another type of filter channel, is managed by the subscribing client rather than the server. In this case, the subscribing client does not submit the filter profile to the server. The subscribing client applies the filter profile to the network media channels already being supplied to the subscribing client as a subscriber. The subscribing client then designates some or all of the received channels as target channels and applies a filter query to the target channels. In one implementation, the subscribing client then re-publishes the media items in the filter channel to a server as a normal channel.
Figure 11 shows a flowchart 1100 of one implementation of providing a group channel using a publishing client, a server, and a subscribing client interconnected by a network, such as the publishing client 210, server 215, and subscribing client 220 interconnected by the network 205 shown in Figure 2. As discussed above, a group
channel is a special type of network media channel that is published to by multiple publishing clients that are members of a group. Subscribing clients outside the group may be permitted to subscribe to the group channel, but are not permitted to publish to the group.
A publishing client builds a group profile, block 1105. The group profile defines the members of the group. The members can be defined in various ways, such as by device, by user, by location, by password, or some combination of criteria.
The publishing client sends a group request to a server, block 1110. The group request includes the group profile. The group request also includes any additional restrictions the subscribing client wants imposed on the new group channel, similar to creating a normal network media channel.
The server creates the group channel and publishes media files from publishing clients that are members of the group, block 1115. Before building the new group channel, the server verifies the group request is proper (e. g. , for syntax and authorization). The server receives media files to be published from publishing clients and verifies the publishing clients are group members. For authorized publishing clients, the server publishes the media files to the group channel and provides notifications as new media files are added.
In an alternative implementation, the group channel is a type of filter channel and the group profile includes a filter profile. The group profile defines a group including several publishing clients by selecting the network media channels of those group members as the target channels for the filter profile.
The various implementations of the invention are realized in electronic hardware, computer software, or combinations of these technologies. Some implementations include one or more computer programs executed by a programmable processor or computer. For example, referring to Figures 3-5, in one implementation, the publishing client, the subscribing client, and the server each include one or more programmable processors. In general, each computer includes one or more processors, one or more data-storage components (e. g. , volatile or non-volatile memory modules and persistent optical and magnetic storage devices, such as hard and floppy disk drives, CD-ROM drives, and magnetic tape drives), one or more input devices (e. g.,
mice and keyboards), and one or more output devices (e. g. , display consoles and printers).
The computer programs include executable code that is usually stored in a persistent storage medium and then copied into memory at run-time. The processor executes the code by retrieving program instructions from memory in a prescribed order. When executing the program code, the computer receives data from the input and/or storage devices, performs operations on the data, and then delivers the resulting data to the output and/or storage devices.
Various illustrative implementations of the present invention have been described. However, one of ordinary skill in the art will see that additional implementations are also possible and within the scope of the present invention. For example, while the above description focuses on implementations using a network media channel for a user using a publishing device, in other implementations, the focus of the channel can be different, such as upon a particular device, a location, an event, or a time period.
Accordingly, the present invention is not limited to only those implementations described above.
Next Patent: METHOD FOR SPARSE NETWORK DEPLOYMENT ACCURACY ENHANCEMENTS
