Seminars, training, meetings, and other events where information is presented traditionally have been face to face at a single location. As businesses and other organizations have expanded into national and international efforts, the expense of conducting such meetings in a single location has become prohibitive.
Previous efforts have provided peer-to-peer video conferencing over dedicated phone lines and the Internet between members of a small group. Other efforts have provided broadcast of slide presentations to several people or groups. However, these efforts, although highly utilized, fail to provide mechanisms by which full multimedia presentations may be broadcast. Further, recording of such presentations for later viewing has required additional effort to synchronize presented material.
In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments in which the inventive subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice them, and it is to be understood that other embodiments may be utilized and that structural, logical, and electrical changes may be made without departing from the scope of the inventive subject matter. Such embodiments of the inventive subject matter may be referred to, individually and/or collectively, herein by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
The following description is, therefore, not to be taken in a limited sense, and the scope of the inventive subject matter is defined by the appended claims.
The functions or algorithms described herein are implemented in hardware, software or a combination of software and hardware in one embodiment. The software comprises computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, described functions may correspond to modules, which may be software, hardware, firmware, or any combination thereof. Multiple functions are performed in one or more modules as desired, and the embodiments described are merely examples. The software is executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a system, such as a personal computer, server, a router, or other device capable of processing data including network interconnection devices.
Some embodiments implement the functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the exemplary process flow is applicable to software, firmware, and hardware implementations.
Various embodiments provide a personal multimedia communication tool. Some such embodiments utilize Flash technology available from Adobe Corporation of San Jose, Calif. Using this tool, it is possible to broadcast live presentations and to record presentations and make them available on demand. These presentations may include audio and video broadcast in a synchronized manner with other media that is simultaneously displayed or presented, such as slide presentations, video, audio, and other media types.
These embodiments allow quick, inexpensive, and easy broadcast and presentation of information to a large number of people, geographically separated groups, and others that are difficult or cost prohibitive to have in a single location at the same time. In some embodiments, a presentation may include multiple presenters. Video, audio, slide shows, such as slides of a Microsoft PowerPoint presentation, and other content may be transmitted to a moderator who may then select the content to be broadcast.
To facilitate broadcast of slide presentations, video, and other multimedia content, the content is uploaded to a server. A moderator or presenter may then view a listing of the available content in a presenter view through a web browser based interface. The presenter or moderator may order content in a playlist for inclusion in a broadcast or archived presentation. In some embodiments, the presenter or moderator may select the content of the playlist to be displayed sequentially. In other embodiments, a presenter or moderator selects the content within the playlist when needed in the context of a conversation or presentation.
In further embodiments, video of not only a presenter is presented in a webcast presentation, but also video of one or more participants may be presented. In such embodiments, video of a participant asking a question or otherwise contributing to the presentation may be displayed. In such embodiments, video may be received from a webcam of the participant and rebroadcast by a moderator or designated by a moderator for peer-to-peer transmission from a participant to other participants.
Some embodiments also include instant messaging capabilities to allow participants to ask questions, share information, and communicate with the presenter, moderator, and other participants.
After a presentation is broadcast live or recorded, the presentation, including audio, video, and other multimedia content such as slide presentations, videos, and the like may be archived and made available on demand. In some embodiments, the presentation may be archived as a podcast and made available for download to a computer or portable multimedia device. These and other embodiments are described and illustrated herein with reference to the figures.
The clients 102, 112 both include a web browser 104, such as Internet Explorer available from Microsoft Corporation of Redmond, Wash., Safari available from Apple, Inc. of Cupertino, Calif., or other web browsing application. The client 102, 112 also both include a browser plug-in 106. The browser plug-in 106, in some embodiments, is a FLASH Player plug-in available from Adobe Corporation. However in other embodiments, the plug-in 106 may be a Silverlight plug-in available from Microsoft Corporation, a QuickTime Player plug-in available from Apple, Inc., or other media player type plug-in. In some embodiments, the client 102 is a client computer of a presentation presenter or moderator. In such embodiments, the client 102 includes a web cam 103 to capture audio and video of a presenter. In some embodiments, the client 112 and other clients that may be connected to the network 114 may also include a web cam.
As used herein, the term presenter is used interchangeably with the term moderator. Thus, the terms presenter and moderator should be construed similarly unless explicitly provided otherwise.
As illustrated, the client 102 is a client of a presenter. In such embodiments, a user of the client 102, when wanting to generate a recorded presentation, causes the web browser 104 of the client 102 to connect to one or both of the media server 122 and the web server 116 over the network 114. The web browser 104 will download browser plug-in code 120 from the web server 116 and cache the browser plug-in code 108 on the client 102, 112. The browser plug-in code 108 is operable within the browser 104 to instantiate the browser plug-in 106 within the web browser 104. The browser plug-in code 108 may include ActionScript which is operable within a Flash Player plug-in. However, the browser plug-in code 108 may be other types of code or script depending on the browser plug-in and media server 122 services implemented in a particular embodiment.
The browser plug-in code 108 is operable within the browser plug-in 106 to generate and present user interfaces to the client 102 user. Example of such user interfaces are provided in
The media server 122, in some embodiments, provides services that may be called by browser plug-in code 108 on the clients 102, 112. The services that the media server 122 provides may include one or more presentation recording services 124, one or more file upload and transforming services 126, one or more playlist services 128, and other services depending on the particular embodiment.
The recording services 124 are operable on the media server 122 to receive various types of media and over data over the network 114 from one or more of the clients 102, 112. In some embodiments, the recording services 124 are operable to receive audio and video data, synchronization data that synchronizes presented materials, such as slides of a slide presentation, with the audio and video data, and other data. This data, when received for a particular presentation, may be stored in a content database 130 in an associative manner with other data of the particular presentation.
The file upload and transforming services 126 include services to receive presentation content files from a presenter, such as from the client 102, and to store the presentation content files in the content database 130. However, in some embodiments, the presentation content files may be received from the client 102 in a form that is not compatible for display with the client 102, 112 browser plug-ins 106. In such embodiments, the file upload and transforming services 126 are operable to receive presentation content files in various formats and transform them into a format that is compatible with the browser plug-in 106. For example, a video may be uploaded to the content database 130 via the file upload and transforming services. However, the video may be received from the client 102 in a format that is not compatible with the browser plug-in, such as in an MPEG format. The video file may be transformed by the file upload and transforming services 126 into a format, such as the FLV Flash video format which is compatible with the Flash Player plug-in. This transformation may be performed using one of may video transformation services that are provided in various software packages. One such example is available from the FF
In some embodiments, documents, such as slide presentation, word processing documents, and other document types, may also be converted to a format that is compatible for display within the browser plug-in 108. For example, in embodiments where the browser plug-in 108 is a Flash Player plug-in, each page of the document may be converted to the Portable Document Format (“PDF”) as set by Adobe Corporation using an Adobe Acrobat program on the media server 122. Each page converted to the PDF format may then be transformed into an image, such as a SWF image that is compatible with the Flash Player plug-in. This transformation may be performed using tools available from Adobe Corporation or other tools such as the pdf2swf software tool available at http://www.swftools.org. The converted video and document pages may are then stored in the content database 130.
The playlist services 128 are operable on the media server 122 are containers for content held in the content database 130. In some embodiments, a presenter, such as a user of the client 102, may generate a playlist including content that the user uploaded to the content database 130. The playlist may include images of slides, such as SWF images generated from a Microsoft PowerPoint presentation document uploaded via the file upload and transforming servers 126, and images of other documents. The playlist may also include videos uploaded to the content database and other content types.
Such a playlist may be presented on the client 102 within the web browser 104 browser plug-in 106 using a portion of the browser plug-in code 108. The playlist when presented to the client 102 user may allow the user to specify an order of the content within the playlist. Data representative of that order may be communicated to the playlist services 128 and stored in the content database 130 or other location accessible to the media server 122. The playlist services 128 are also operative to perform other functions as will be apparent in view of later portions of this disclosure, such as with regard to the description of
The web server 116 is operable to communicate with the clients 102, 112 over the network 114 to provide browser plug-in code 120, presentation services 118, to serve data from the content database 130, and other purposes. In some embodiments, if a client 112 user wishes to view a recorded presentation, the client 112 browser requests a presentation from the web server 116. The web server 116 provides the browser plug-in code 120 to the client 112 which locally caches the browser plug-in code 108 and executes the browser plug-in code 108 within the browser plug-in 106. The web server 116 via the presentation services 118 then retrieves the recorded presentation from the content database 130 and transmits it to the client 112 for presentation to the user of the client 112. The presentation may be retrieved from the content database 130 and provided to the client 112 in various ways. In one embodiment, a configuration file is retrieved and sent to the client 112. The configuration file may include data identifying a presenter video of a presenter to display in a first portion of a presentation viewing interface and identify content images and videos to display in a second potion of the presentation viewing interface at particular times with regard to the presenter video. The browser plug-in code may parse this configuration file and retrieve the presenter video display the video in the first portion of the presentation viewing interface. The browser plug-in may further retrieve the content images and video and display them in the second portion of the presentation viewing interface at the respective identified times during the playing of the presenter video.
The user interface 300 includes action buttons 304, 306, 308, 312, 314, 316 that provide playlist 302 and library 312 management functions. To upload a file to the playlist 302, the “UPLOAD FILE” action button 304 may be selected. Selection of the “UPLOAD FILE” action button 304, in some embodiments, may cause the user interface of
Selection of the “DELETE FROM PLAYLIST” action button 306 causes a file selected in the playlist 302 to be removed from the playlist 302. However, the file will remain in the library 310. In some embodiments, a file included in the playlist 302 is also included in the library 310. However, in some such embodiments, when a file is selected for inclusion in the playlist 302, the file will be hidden from view in the library 310 to prevent confusion to the presenter that might arise if a file is scrolled out of view in the playlist 302 and viewable in library 310.
Selection of the “SORT PLAYLIST” action button 308 may cause the user interface of
Selection of the “ADD TO PLAYLIST” action button 312 adds a file selected in the library 310 to the playlist. Selection of the “DELETE FROM LIBRARY” action button 314 removes a file selected in the library from the library 310 and from the content database. Selection of the “SAVE AND CLOSE” action button 316 saves all change made to the playlist 302 and library 310, closes the user interface 300, and returns the presenter to the user interface 200 of
The user interface 500 may provide several file upload options 502 based on the type of file to be uploaded. For example, the presenter may want to upload a Microsoft PowerPoint slide presentation document. Selection of this option will provide a user interface that allows the presenter to navigate through a drive/folder/file organization on the presenters local computing device and network storage locations to select the appropriate file to upload. Once the file is selected, the file will be uploaded using the file upload and transformation services on the media server, as discussed above with regard to
The video portion includes a video viewing area that displays video captured by a video camera attached to the presenter's computer. The video recording portion 702 also includes a “RECORD” action button that triggers not only recording of video from the video camera, but also recording of a presentation. When selected, the “RECORD” action button triggers the recording and becomes a “STOP RECORDING” action button which may be selected to conclude recording of the presentation. If the presenter does not want to record video, the presenter may select the “TURN OFF VIDEO” action button to stop recording to the video, but keep recording the presentation. The same action button may be selected again to turn the video back on.
As the presentation is being recorded, the presenter may select content, such as slide images, video, and other media content, in the playlist portion 708. The selected content will be displayed in the content viewing portion 706. The selections of the presenter and a time within the video recording are captured and recorded in a presentation configuration data structure, such as is illustrated in
The greeting portion 704, through selection of the “UPDATE GREETING” action button allows the presenter to enter various data elements. Such data elements may include an identity of the presenter, contact information, a greeting message, and other data for display when the recorded presentation is played back.
In some embodiments, the method 1100 includes retrieving 1102 representations of files stored at a remote location, such as a content database, and displaying 1104 a view of the file representations within a playlist portion of a presentation recording user interface. The method 1100, while recording video of a presenter, further includes receiving 1106 a selection of a file representation within the playlist portion and retrieving 1108, from the remote location, and displaying, within a slide presentation portion of the presentation recording user interface, the file of the selected file representation. The method 1100 may then include populating 1110 a data structure with data identifying a file of the selected file representation and a time point within the recorded video input. The data structure may then be stored 1112 in association to with the recorded video. In some embodiments, the data structure may be stored at the remote location.
Computer-readable instructions stored on a computer-readable medium are executable by the processing unit 1302 of the computer 1310. A hard drive, CD-ROM, and RAM are some examples of articles including a computer-readable medium on which software may be stored. For example, a computer program 1325, such as one or more of a web browser, web browser plug-in, and web browser plug-in executable code may be stored on a computer readable medium.
Some further embodiments may take the form of a system. Such embodiments, include a network interface, a processor, and a memory coupled to a bus. The memory, in such embodiments, may store media server software that is executable by the processor. The media server software may include a file upload module, a playlist module, and a recording module.
The file upload module may be executable by the processor to receive a file in a first file format over the network interface from a first client, transform the file from the first file format to a second file format, and store, in the memory, the file in the second file format.
The playlist module may executable by the processor to present a view of files stored in the memory and to receive input from the first client, over the network interface designating an order of the files stored in the memory. The playlist module may be further executable by the processor to present a selectable view, within a recording interface, of the files stored in the memory and ordered according to the received input.
The recording module may be executable by the processor to receive presentation data from the first client over the network interface. The presentation data may include video and sequence data identifying files stored in the memory with a time reference to the video at which particular files stored in the memory are to be displayed to a viewer. The recording module may also store the presentation data in the memory.
Such a system may further include web server software stored in the memory and executable by the processor to receive a presentation data request over the network interface from a second client and provide the video and the sequence data to the second client over the network interface. The web server software may be further executable by the processor to receive, from the second client over the network interface, requests for files stored in the memory that are referenced in the sequence data and provide the requested files to the second client.
It is emphasized that the Abstract is provided to comply with 37 C.F.R. §1.72(b) requiring an Abstract that will allow the reader to quickly ascertain the nature and gist of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
In the foregoing Detailed Description, various features are grouped together in a single embodiment to streamline the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the inventive subject matter require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of the inventive subject matter may be made without departing from the principles and scope of the inventive subject matter as expressed in the subjoined claims.
This application claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 60/938,043, filed May 15, 2007, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60938043 | May 2007 | US |