WO2000020960A1 - Asynchronous video forums - Google Patents

Asynchronous video forums Download PDF

Info

Publication number
WO2000020960A1
WO2000020960A1 PCT/US1999/023051 US9923051W WO0020960A1 WO 2000020960 A1 WO2000020960 A1 WO 2000020960A1 US 9923051 W US9923051 W US 9923051W WO 0020960 A1 WO0020960 A1 WO 0020960A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
clips
feedback
gt
discussion
Prior art date
Application number
PCT/US1999/023051
Other languages
French (fr)
Inventor
Michael T. Keehan
Original Assignee
Keehan Michael T
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US10304298P priority Critical
Priority to US60/103,042 priority
Application filed by Keehan Michael T filed Critical Keehan Michael T
Publication of WO2000020960A1 publication Critical patent/WO2000020960A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages

Abstract

An asynchronous video forum is the maintenance of a periodic or ongoing interaction of a group on a focused topic. 'Thought leaders' are provided with forum technology so that they can interact with other asynchronous video forum participants (107) on a focused group. Knowledge providers (101) are invited to record and/or upload their video clips to a receiving server (102). The clips are converted to popular and efficient 'streaming' file formats, then placed in appropriate 'conversational' sequence on a video-stream server (105). A video-stream server (105) is provided on a computer network (106), such as the Internet. Users (107) are allowed to connect to the video-stream server (105) using appropriate protocols. The viewer/participant sees a sequence of 'talking head' shots of participant comments that build on previous comments. The major difference in viewing asynchronous video forum 'meeting' is that the comments would have been input over many hours or even days by people who might be widely dispersed geographically.

Description

ASYNCHRONOUS VIDEO FORUMS

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the PTO patent file or records, but otherwise reserves all copyright rights whatsoever.

FIELD OF THE INVENTION

The present invention generally relates to information systems and particularly to systems facilitating an electronically-mediated, asynchronous discussion among knowledge providers, distributing information and entertainment to consumers.

SUMMARY OF THE INVENTION

There are new communications capabilities which will naturally emerge as a result of technological trends which are easily identifiable today. For example, with the increased availability of broadband computer communications capability and reductions in the cost of computer data storage, it seems inevitable that "video mail" will become an important alternative and adjunct to electronic mail.

Video mail differs from video conferencing in that the message is recorded by the sender, stored on a computer disc and forwarded to the receiver on his or her command. This difference is analogous to the difference between computer "chat" systems and electronic mail; with mail, the sender and receiver need not be accessing the computer system at the same time. Electronic mail and video mail are "store-and-forward" media, allowing messages to be sent and received at the convenience of the user. Neither video conferencing nor chat systems have enjoyed the degree of acceptance which was anticipated. There are various reasons why this is the case, but it is clear that the addition of store-and-forward capacity to a chat system results in a communications system of well established value, i.e. electronic mail. Similarly, the addition of "store and forward" capability to video conferencing produces a communications system that will likely have much broader application and acceptance than real-time video conferencing has enjoyed to date. This store-and-forward version of video conferencing is called video mail. As communications bandwidth increases and storage cost decreases, it becomes more viable. The development and emergence of video mail leads to efforts to use the new capability to facilitate communications among groups of people on a focused topic. That is, what might be called "video forums" will naturally develop from the occasional need to convene a group discussion on a focused topic using video mail technology.

The applications of video forums, while important, are anticipated by the present invention. Clearly, if a group can meet face-to-face to deal with a group communications need, they should do so. If computer conferencing or a bulletin board system would meet their needs, they should look no further in their communications toolbox. However, given certain subject matter, conditions and requirements, an asynchronous video forum will suggest itself as a valuable capability. The present invention provides an "asynchronous video forum." An asynchronous video forum is the maintenance of a periodic or ongoing interaction of a group on a focused topic. "Thought leaders" are provided with video forum technology so that they can interact with other asynchronous video forum participants on a focused topic.

The analogy of a moderated face-to-face roundtable discussion is useful in understanding an asynchronous video forum. The moderator introduces the topic, provides background, and then calls on the first group member for comment. A second member of the group is asked to respond, followed by a third and so on around the table. Once everyone has had a turn to speak (or pass), the sequence begins again after the moderator has had a chance to summarize or make some process comment.

The experience of watching the video record of such a meeting is similar to watching the recording of a round-the-table discussion where each participant has her own video camera sitting before her on the conference table. The viewer sees a sequence of "talking head" shots of participant comments that build on previous comments. The major difference in viewing an asynchronous video forum "meeting" is that the comments would have been input over many hours or even days by people who might be widely dispersed geographically. The experience from the standpoint of any one of the participants is very- different from a roundtable discussion, although familiar in terms of process. That is, participants sit down at computers appropriately equipped with video recording and playback capability. They "sign-on" the system which tells them that they have been invited to take part in a certain asynchronous video forum. On command, the system plays for them all of the comments that have been recorded by participants to date. For example, the first clip might be a 3 to 5 minute opening statement by the moderator establishing the topic, setting ground rules for the discussion (e.g. brevity, order of comments, etc.), and asking participants to introduce themselves. A participant reviews the introductions of those who had submitted them to date and submits his or her own. Each participant has theoretically unlimited time to prepare her submission. However, the next person to sign on after the submission is made sees that submission as though there were no break in the continuity of the discussion. That is, each participant signing on has the illusion that she was seeing the record of a discussion that was recorded in "real time". In fact, since any asynchronous video forum participant would have "unlimited" time to record submissions, she is able to select from several alternative "takes". Under appropriate circumstances, a participant is able to edit into their submission an outline of discussion points, graphics or even location video if it seemed useful in making a point.

The importance of the moderator's role cannot be understated in this application. Process comments are essential from time-to-time in order to keep the discussion on track. Clearly there is a learning curve for participants. Some participants will "take" to this medium more readily than others; some will be judged as having more "talent" than others. Something like a screen-test would be required if the video record of an asynchronous video forum is to hold the attention of anyone other than the participants.

It is intended that the video record of an asynchronous video forum will ultimately be of interest to a larger audience than is available currently on the Internet. It is seen as a new medium for adult education. Furthermore, it is hoped that such educational products will have entertainment value as is the case with public television, the learning channel, the history channel, etc. Indeed, it is hoped that the resulting "programs" might at some point be of sufficient interest and value that they might be not only made available through the internet, but also be broadcast to a larger audience on television. One can imagine an ongoing asynchronous video forum being carried by a cable station and thought of as one might think of live discussion groups such as "Washington Week in Review" or others. Depending on the quality of the discussion and the enduring interest of the topic, archival storage and availability may prove valuable as well.

Initial applications, however, will involve simple access to the evolving record of the discussion by suitably equipped "view only" subscribers over the Internet. That is, when a viewer who has access to view the discussion signs on the system, they would be able to view all of the video "comments" made by participants since that viewer last signed on. In group process terminology, this is analogous to a "fishbowl" format. It is also analogous to "read only" participation in a computer conferencing system. In fact, there could be a parallel computer conferencing discussion on the topic of the fishbowl with submission of questions or comments to the asynchronous video forum through the moderator.

It is an object of the present invention to provide an electronically-mediated discussion among knowledge providers for the purpose of distributing information and entertainment to consumers.

-Knowledge providers are invited to record and/or upload their video clips to a receiving server. The clips are converted to popular and efficient "streaming" file formats, then placed in appropriate "conversational" sequence on a video-stream server.

A video-stream server is provided on a computer network, such as the Internet. Users are allowed to connect to the video-stream server using appropriate protocols. For example, a user can click on an appropriate link or URL on a webpage and be directed to the server where the information resides. As another example, the server may be part of a company's Intranet. Once connected to the video-stream server, a program (e.g. CGI script) on the server transmits parameters that identify where (e.g. which host/which URL) the user came from, and what she wants to see. If a browser-implemented version is used, it may determine whether not the person has seen any particular item in the collection. This determination may be made through the use of information stored on the server (e.g. in a user- account directory or user-account database) or information kept on the visiting person's computer (e.g. through the use of cookies).

In a preferred implementation, available files are listed on a webpage. A CGI front end allows users to select one or more video clips. The CGI-based front end accesses a control file containing information about all available clips, preferably including at least clip ID, date and time, and "title/subject" which may include presenter's name and topic.

The CGI-based script, perl script or other script on the server generates a datastream that is MIME-typed as .ASF. This typing identifies the datastream to the user's browser and user's system software as a set of instructions to be passed to the user's viewing software (e.g. MICROSOFT MediaPlayer in the case of an .ASF file). The browser activates the user's viewing software which then contacts another port on the host that hosts the desired video clip(s). Ideally, the servers involved should have enough processing power (e.g. dual PENTIUM 400Mhz machine or other machine as appropriate) and memory (e.g. 256 megabytes) for the processor- and memory-intensive job of setting up appropriate video streams for all users. The server should also have a large bandwidth connection (e.g. a dedicated T1), so that multiple videostreams can be broadcast to different users.

Access to the stored clips may be open (e.g. to anyone who can find it) or restricted. Restriction optionally includes creation of accounts and passwords.

Restriction optionally includes limitations based on IP address if content is not meant to be viewed in certain areas of the country, world, Intranet, network, etc.

The present invention is highly valuable in that it can generate an ongoing knowledge base created by this knowledge management technology. The records of the various discussions may be researched, annotated, indexed by heading and/or speech-to-text transcripts, transcribed, etc.

The present invention provides a computer system for managing an electronically-mediated, asynchronous discussion among knowledge providers, comprising: a first connective means from a first computer to a second computer; a second computer; said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; a second connective means allowing said second computer to communicate said appropriately formatted clip to a third computer; said third computer; and a third connective means allowing said third computer to communicate said appropriately formatted clip to at least one viewer.

Another embodiment of the present invention further comprises a knowledge provider serves as a discussion leader and provides additional background information to said knowledge providers through said connective means. Another embodiment of the present invention further comprises a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers. Another embodiment of the present invention further comprises a process manager to organize and edit the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.

Another embodiment of the present invention further comprises said process manager comprises management software residing on said second computer. Another embodiment of the present invention further comprises a fourth connective means to allow viewers to communicate feedback to a feedback manager; said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and said feedback manager communicating said feedback to said discussion leader.

Another embodiment of the present invention further comprises summarizing means for sifting, sorting and summarizing said feedback for said feedback manager to communicate a summary of said feedback to said discussion leader.

Another embodiment of the present invention further comprises a first connective means from a first computer to a second computer; a second computer; said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; a second connective means allowing said second computer to communicate said appropriately formatted clip at least one viewer; and a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.

Another embodiment of the present invention further comprises a fourth connective means to allow viewers to communicate feedback to a feedback manager; said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and said feedback manager communicating said feedback to said discussion leader.

Another embodiment of the present invention comprises providing a first connective means from a first computer to a second computer; providing a second computer; providing said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; providing a second connective means allowing said second computer to communicate said appropriately formatted clip to a third computer; providing said third computer; and providing a third connective means allowing said third computer to communicate said appropriately formatted clip to at least one viewer.

Another embodiment of the present invention further comprises providing a knowledge provider serves as a discussion leader and provides additional background information to said knowledge providers through said connective means. Another embodiment of the present invention further comprises providing a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.

Another embodiment of the present invention further comprises providing a process manager to organize and edit the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.

Another embodiment of the present invention further comprises a fourth connective means to allow viewers to communicate feedback to a feedback manager; said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and n) said feedback manager communicating said feedback to said discussion leader.

Another embodiment of the present invention further comprises providing summarizing means for sifting, sorting and summarizing said feedback for said feedback manager to communicate a summary of said feedback to said discussion leader.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention, both as to its organization and its manner of operation, together with further objects and advantages, may be best understood by reference to the following description, in connection with the accompanying drawings.

Fig. 1 shows hardware helping to illustrate an embodiment of the present invention.

Fig. 1 A shows hardware helping to illustrate an embodiment of the present invention.

Fig. 2 shows a diagram showing a flow of information in the present invention.

Fig. 3 shows a diagram showing a flow of information in the present invention.

Fig. 4 shows a diagram showing a flow of information in the present invention.

DEFINITIONS Asynchronous: occurring at various times.

Knowledge Provider: an individual who is knowledgeable on the topic of the forum, and who is selected to provide information in the form of clips to the forum discussion. Knowledge providers are typically geographically dispersed and few in number. In special cases, a computerized process may serve as a knowledge provider.

Clip: a segment of multimedia information electronically transmitted by a knowledge provider as a comment in the discussion.

Discussion: a stream or series of clips in an asynchronous video forum which represent the record of a building discussion among knowledge providers on the topic of the forum.

Discussion leader: the individual who introduces the topic of a forum and manages the ensuing discussion. A discussion leader may also be a knowledge provider and/or the feedback manager. In special cases, the discussion leader may have editorial control over the content of the clips.

Feedback Manager: receives feedback on the forum from consumers. That feedback is then sifted, sorted, summarized and entered into the discussion through either the discussion leader or an automated process.

Feedback: information, opinions or questions provided by consumers to the forum through the feedback manager. Survey feedback and content analysis tools may be used by the manager to sharpen consumer feedback.

Participants: knowledge providers and consumers who have access to a particular discussion.

Process manager: a person and/or automated process which among other things organizes the clips into discussion form, authorizes participants, tracks which clips have been viewed by individual participants and transmits clips as requested by individual participants. In special cases, the process manager may have editorial control over the content of the clips. This control would preferably rest with a human discussion leader.

Consumer: an individual who requests access to a forum for the purpose of learning or being entertained. Any consumer may provide feedback (text or multimedia) to the asynchronous video forum through the discussion leader. The number of consumers is limited only by access to the electronic medium on which the asynchronous video forum is available.

DESCRIPTION OF PREFERRED EMBODIMENTS

Referring now to Fig. 1 , the knowledge provider 101 produces a video file on her own machine, or receives such a file from someone else. If the knowledge provider 101 produces the video file, it may be done in any of a number of ways. One way is through the use of commercially available cameras (such as the CONNECTIX ball camera) and microphones (whether integrated with the camera or disconnected therefrom) to create an appropriate AVI, MOV, MPEG or other format file. Alternately, the file is already made available in a ready-to-distribute format, such as MICROSOFT'S ASF (Advanced Streaming Format).

The knowledge provider 101 fills in information about the author (e.g. email, name) and subject (e.g. a header line), selects the file to upload and initiates the transfer of the video file. The knowledge provider 101 then uploads the file through connective means 102 to the first server 103. This upload can be performed using file transfer protocol (FTP) software or done through appropriate means through a web browser. Connective means 102 is an Internet connection, phone line, network connection, being at the terminal or keyboard of the first server 103, or equivalents thereto.

In order for the video clip to be made available to as many users as possible, it preferably is made available in one or more popular video file formats. For example, the uploaded video clips are run through Microsoft's NetShow Encoder to produce ASF files. It is an advantage of ASF files that that they play as they 'stream' to the receiver in ways that make them more efficient than larger AVI or MPEG files. Other file formats, such as REALAUDIO'S RealVideo format, so-called "thin server" VDO videostreaming technology, or other technologies made available on various operating systems are alternatives. Other existing and/or to-be-invented file formats which have desired compression and streaming playback capability are also useful for the present invention (e.g. VRML and/or other 3D representations).

The encoding process is preferably automated. For example, encoding takes place on receipt of file(s), or on a timed schedule through the use of software written for this purpose.

If during the encoding process there are any error indications, the original knowledge provider 101 of the file can be contacted. If there is no error, however, the encoded file is then moved from first server 103 through appropriate connective means 104 (e.g. network connection, Internet connection) to the second server 105. Once the "final" form of a given video clip exists on the second server 105, it's ready to be "posted." Posting will include (at least) moving the clip into the correct directory, with an appropriate name. Posting will also include entering the appropriate name into a list that will be used by the download management software. The name and some information about the file is then optionally made available to potential viewers (e.g. a pull-down list). Preferably, the list refers to some information (e.g. login account, cookies set by the browser, if any) to keep track of who has already seen what clips.

Preferably, an automatic notification is periodically sent out to an appropriate user base, through the use of a listserve or other appropriate means. Preferably, system software should provide manager the opportunity to create their own new discussion topic or "panel" through the use of a template. Although the process might be implemented on paper or otherwise require human interaction, the panel creation process may be automated through the use of forms presented in a web browser. At that point, or later in a human-governed approval process, appropriate access rights for editing clips, notification, etc. are created.

In a preferred embodiment, a first server receives files from knowledge providers. This first server then places the files in an appropriate place for encoding to take place. Encoding management software automatically detects the presence and type of files, then activates an appropriate encoding program to convert the file to a popularly available format of choice, such as ASF. The ASF version of the video file is then passed to an appropriate spot on the video-streaming server. Preferably, the video-streaming server has excellent processor power, large amounts of memory, and a large-bandwidth connection to viewers. Viewers, whether knowledge providers participating in the discussion or consumers having 'read only' access to the stored clips, visit an interface to the stored video clips which tells them who wrote the clip, a subject heading, and when the clip was recorded and published. The interface also contains some indication as to what clips the viewer has already seen through the use of cookies placed on the viewer's machine or though user account information stored elsewhere (preferably on the video- streaming machine).

In another preferred embodiment, a first server receives files from knowledge providers. This first server then places the files in an appropriate place for encoding to take place. Encoding management software is triggered by a human operator or on an appropriate schedule. The encoding management software automatically detects the presence and type of files, then activates an appropriate encoding program to convert the file to a popularly available format of choice, such as ASF. Once the file has been converted, the original file is deleted from the system. The ASF file remains on the first server until moved to the video-streaming server by appropriate software or by a human agent. The ASF version of the video file is then passed to an appropriate spot on the video-streaming server.

In a preferred embodiment, each forum has at least one discussion leader. The discussion leader is an individual who introduces the topic of a forum and manages the ensuing discussion. A discussion leader may also be a knowledge provider and/or the feedback manager.

In a preferred embodiment, each forum is provided with a feedback manager. The Feedback Manager receives feedback on the forum from consumers. That feedback is then sifted, sorted, summarized and entered into the discussion through either the discussion leader or an automated process. Feedback may be responses, information, opinions or questions provided by consumers to the asynchronous video forum through the feedback manager. The feedback manager may use survey feedback and/or content analysis tools may be used to sharpen consumer feedback. This iterative process of sharpening the focus of and/or redirecting the discussion through feedback will be crucial to many scaled applications. When the volume of feedback is large, content analysis may be used on the feedback received. Alternatively, a representative sample is used to focus in on the particulars of the feedback. For this reason, and others, consumer feedback is crucial from a communication standpoint.

In a less preferred embodiment, the Process Manager role is split between software and a human agent. Software is used to authorize consumers, track which clips have been viewed by individual participants, and transmits clips as requested by individual participants. A human agent manages the selection of knowledge providers (e.g. approving the 'talking heads' who may participate), and in addition may interject process clips to keep the discussion on point. In special cases, the process manager may have editorial control over the content of the clips.

In a preferred embodiment, software is used to authorize consumers, track which clips have been viewed by individual participants, and transmits clips as requested by individual participants. An optional human agent discussion leader manages the selection of knowledge providers (e.g. approving the 'talking heads' who may participate), and in addition may interject process clips to keep the discussion on point. In special cases, the process manager may have editorial control over the content of the clips. Referring now to Fig. 1 A, a knowledge provider 1 1 1 uploads a clip through connective means 1 12 to a single server 1 13. If necessary, encoding management software performs any necessary or desired conversion of file formats. The single server 1 14 is also used as the video-streaming server. The single server 1 13 provides video streams across connective means 1 14 to various viewers 1 15. This implementation is likely to be popular for asynchronous video forums conducted across an Intranet.

Referring now to Fig. 2, the discussion leader 201 is the individual who introduces the topic of a forum and manages the ensuing discussion. Knowledge providers 202 receive input from the discussion leader in the form of clips and/or supporting documentation and email so that knowledge providers 202 are able to contribute appropriately to the forum. The knowledge providers 202 and the discussion leader 201 provide video clips to the video-streaming server. Process Manager 203 is a person, likely supplemented or alternatively replaced with process management software, who organizes the clips into discussion form, authorizes participants, tracks which clips have been viewed by individual participants and transmits clips as requested by individual participants. In special cases, process manager 203 may have editorial control over the content of clips. Consumers or users 204 are individuals who request access to a forum for the purpose of learning or being entertained. Consumers 204 may provide feedback to the forum through the Discussion Leader 201 . The number of consumers 204 is limited only by access to the electronic medium on which the forum is available. The Feedback manager 205 receives feedback on the forum from consumers 204. The Feedback may be in the form of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology, or other means of gathering information on the discussion. The feedback is summarized after having been sifted and sorted using tools appropriate to the scope of the feedback desired and/or received from consumers 204. Referring now to Fig. 3, the discussion leader 301 is the individual who introduces the topic of a forum and manages the ensuing discussion. Knowledge providers 302 receive input from the discussion leader in the form of clips and/or supporting documentation and email so that knowledge providers 302 are able to contribute appropriately to the forum. The knowledge providers 302 and the discussion leader 301 provide video clips to the video-streaming server. Process Manager 303 is a person, likely supplemented or alternatively replaced with process management software, who organizes the clips into discussion form, authorizes participants, tracks which clips have been viewed by individual participants and transmits clips as requested by individual participants. In special cases, process manager 303 may have editorial control over the content of clips. Consumers or users 304 are individuals who request access to a forum for the purpose of learning or being entertained. Consumers 304 may provide feedback to the forum through

5 the Discussion Leader 301. The number of consumers 304 is limited only by access to the electronic medium on which the forum is available.

Referring now to Fig. 4, the discussion leader 401 is the individual who introduces the topic of a forum and manages the ensuing discussion. Knowledge providers 402 receive input from the discussion leader in the form of clips and/or i() supporting documentation and email so that knowledge providers 402 are able to contribute appropriately to the forum. The knowledge providers 402 and the discussion leader 401 provide video clips to the video-streaming server. Process Manager 403 is process management software which organizes the clips into discussion form, authorizes participants, tracks which clips have been viewed by

15 individual participants and transmits clips as requested by individual participants. In special cases, discussion leader 403 may have editorial control over the content of clips. Consumers or users 404 are individuals who request access to a forum for the purpose of learning or being entertained. Consumers 404 may provide feedback to the forum through the Discussion Leader 401. The number of consumers 404 is

20 limited only by access to the electronic medium on which the forum is available.

Scripts

The following scripts for use on a website illustrate many of the features of the present invention discussed herein. getvid.pl - Script determines from the query string with which it is invoked (e.g. http://host.net/getvid.pl7salon) for which asynchronous video forum a file is to be received. It determines the local name it will use for the file as a character string which is the current date and time as a hex string. It produces an HTML form with the Asynchronous video forum identifier and the file identifier as hidden input fields, and fields for the user the provider's name, the title or other identifying information on the video clip, and the name of the file on the sender's system to be transferred. The web browser collects the information and transmits it, together with the actual file, to the getvid.asp script. getvid.asp - Receives from the user's browser the contents of the form generated by getvid.pl, and the file transmitted from the user's computer. The file is copied into a receiving directory appropriate to the particular asynchronous video forum, with the local name made up by the previous script. Another file, with the same name but the extension .FRM, is also created in the same directory, containing the other information collected by the previous form. These files in turn are used by the encode.pl script. encode.pl - Is run from time to time by an administrator. The program checks and sets interlocks to make sure that it is not being run multiple times simultaneously. It iterates through the directories belonging to the various asynchronous video forums, looking for .FRM files. It iterates through those files, and for each one it finds, it invokes the MICROSOFT NetShow Encoder for the corresponding video file. (If the corresponding file is of type .ASF, meaning it was encoded before being transmitted, then the encoding step is skipped and the file is simply moved to where it has to go.) The resulting .ASF file is placed in a directory appropriate to the Asynchronous video forum. A file called DATA.TXT in that same directory is updated with information from the original form, giving the provider's name and clip information, and the local name (the hex string) of the file. This data is used by display.pl display.pl - Tests to see if an HTTP "cookie" has come from the user's web browser indicating which clip in the Asynchronous video forum's series she last saw. Produces a welcome page to the Asynchronous video forum, which can be a coded-in default page or can be an alternative made available as the file BASE.HTML in the Asynchronous video forum's content directory. Within this page (either way it's generated) the script inserts a form allowing the user to pick which clips she wishes to view. If the cookie was available, and if new clips have been added since the last one viewed, those new clips are automatically preselected, though the user can change this at will. Information identifying the cookie value and the identity of the Asynchronous video forum are included in the form as "hidden" fields. This information is used by display.pM display1.pl - Produces an output stream identified with the MIME type application/x-ms-asf, which is a text stream conforming to Microsoft's specification for a Version 3 Advanced Streaming extension (or .ASX) file. This MIME type tells the user's browser (which has been set up with this information) to invoke the

MS Media Player as the application to handle this information. If the user did not previously have a cookie value set (detected by the previous script) or if the last clip viewed in this run is a later one than the previous last viewed, the user's browser is requested to set a new cookie value for subsequent use.

DISPLAY.PL #!perl # This program uses either a provided HTML file or its own default data

# file to produce the basic structure and most of the content of an HTML

# page laying out the list of clips available in a particular salon. If

# the user has visited this salon before, and allowed a cookie to be set,

# then those clips that came later than the last previously selected will # be selected automatically.

#

# If an HTML file is provided, it must be placed in the salon's content

# directory with the name BASE.HTML. It must include the token "_BREAK__"

# on a line by itself at three locations. The first two will each be # "filled" with the name of the salon, and are designed to be within

# the <TITLEx/TITLE> tags and within the body. Either or both can be

# commented out in the file

# _BREAK_ # -->

# if it is desired not to use that information. The third BREAK

# will be replaced by a form which will invoke the program that actually

# results in video clips being streamed to the user. If it is not used,

# then there's no reason to use this package! use Html; package main;

$formAction = 'http://www.KnowledgeAssembly.net/Scripts/display1.pi'; $rootDir = 'c:\inetpub\vidfiles';

$query = $ENV{QUERY_STRING} or (noQuery("none"),exit 0); if ($query eq ") {noQueryfnone");} elsif ($query eq 'test') {

$salon = Test';

$dirName = 'test';

$mainDir = "$rootDir\\$dirName\\content"; doSalon();

} elsif ($query eq 'mb') { $salon = 'Bill and Michael'; $dirName = 'test'; $mainDir = "$rootDir\\$dirName\\content"; doSalon();

} #_ADD_HERE else { noQueryC'bad");

} exit 0;

# sub cantCD { print "Content-type: text/plain\n\nCan't CD to $mainDir.\n"; exit 0;

} sub doSalon { cantCD() unless chdir($mainDir); my @data; my $lastSeen; $htmlFile = 'BASE.HTML'; if (open( HTMLFILE, "<$htmlFile" )) { $htmlFile = VHTMLFILE; } else { $htmlFile = VDATA; } { #to reclaim memory from following "my" variable(s) my ©tempData; problemfCanVt open data.txt file.') unless open DATAFILE, "<data.txt";

©tempData = <DATAFILE>; close DATAFILE; foreach $line (@tempData) { { # so each new "array" is new my ©array = split Λl/, $line; push ©data, \@ array; }

} # ©data is now an array of references to arrays of the data, which # are filename, presenter, and description, my $cookies = Html->getCookies(); $lastSeen = $$cookies{$dirName.'Jast'} II '8FFFFFFF';

} print "Cache-Control: no-cache\n"; print "Pragma: no-cache\n"; print "Content-type: text/htm l\n\n"; tilBreak(); print "\n$salon\n"; # title tilBreak(); print "\n$salon\n"; # in body tilBreak(); print qq(<FORM ACTION="$formAction" METHOD="GET">\n); print qq(<INPUT TYPE="HIDDEN" NAME="directory" VALUE="$dirName">\n); print qq(<INPUT TYPE="HIDDEN" NAME="salon" VALUE="$salon">\n); if ($lastSeen ne '8FFFFFFF') { print qq(<INPUT TYPE="HIDDEN" NAME="lastSeen" VALUE="$lastSeen">\n);

} print qq( <B>The speed of my Internet connection is:</B><BR> <INPUT TYPE="RADIO" NAME="speed" VALUE="s"> Slower than 33.6Kbps

<INPUT TYPE="RADIO" NAME="speed" VALUE="m" CHECKED> 33.6 thru 56Kbps

<INPUT TYPE="RADIO" NAME="speed" VALUE="f"> Faster than 56Kbps<P>

); my $newSwitch = 0; my $o!dSwitch = 0;

# Two select fields in form. First is "new" clips... my $lineCount = ©data;

$lineCount = 9 if $lineCount>9; foreach $entry (©data) { if (($lastSeen It $$entry[0])) { if (!$newSwitch) { print "New clips...<BR>\n"; print qq(<SELECT NAME="newSelection" SIZE=$lineCount MULTIPLE>\n); $newSwitch = 1 ;

} print qq(<OPTION VALUE="$$entry[0]l$$entry[1 ]l$$entry[2]"); print " SELECTED>$$entry[1 ]: $$entry[2]\n"; } } if ($newSwitch) { print qq(</SELECT>\n);

}

# ...then "old" clips... foreach Sentry ( © data) { if (!($lastSeen It $$entry[0])) { if (!$oldSwitch) { if ($newSwitch) {print "<BR>";} print "Previously viewed clips...<BR>\n"; print qq(<SELECT NAME="oldSelection" SIZE=$lineCount MULTIPLE>);

$oldSwitch = 1 ;

} print qq(<OPTION VALUE="$$entry[0]l$$entry[1 ]l$$entry[2]"); print ">$$entry[1 ]: $$entry[2]\n"; }

} if ($oldSwitch) {print qq(</SELECT>\n);} if ($newSwitch && $oldSwitch) { print qq(<P> <INPUT TYPE="submit" NAME="viewOld" VALUE="View marked old clips only"xBR>

<INPUT TYPE="SUBMIT" NAME="viewAH" VALUE="View new AND old selected clips"><BR>

<INPUT TYPE="RESET" VALUE="Reset selections'^ );

} elsif ($newSwitch) { print qq(<P>

<INPUT TYPE="SUBMIT" NAME="viewAH" VALUE="View selected clips"xBR> <INPUT TYPE="RESET" VALUE="Reset selections'^

);

} elsif ($oldSwitch) { print qq(<P> <INPUT TYPE="SUBMIT" NAME="viewOld" VALUE="View selected clips"xBR>

<INPUT TYPE="RESET" VALUE="Reset selections'^

);

} print "</FORM>\n"; tilBreak(); } sub problem { my $cause = shift; print "Content-type: text plain\n\n$cause\n"; exit 0;

} sub noQuery { print 'Content-type: text/html <HTMLxHEADxTITLE>Error notice</TITLExHEAD>

<BODY>

<B>

<FONT SIZE="+2">

Error notice: </FONT>

<FONT SIZE="+1">

This script has been invoked incorrectly. If you arrived here via a link from another web page, please advise the owner of that page.

</FONT> </B>

</BODYx/HTML>'; } sub tilBreak { my $line; while ($line = <$htmlFile>) { return 1 if $line eq "_BREAK_\n"; print $line;

} return 0; # meaning we hit "end of file"

} __END_ <HTML> <HEAD> <TITLE> _BREAK_ CyberSalon </TITLE> </HEAD> <BODY BACKGROUND="" BGCOLOR="#0000ff" TEXT="#ffffff" LINK="#ff0000"

VLINK="#ff80c0" ALINK="#00ff00">

<B>Welcome to</B>

<center> <H2>

The

_BREAK_

CyberSalon

</H2> </center>

Please pick the clips you would like to view from the list below:

_BREAK_

</BODY>

</HTML> •

DISPLAY1.PL #!perl use Html; package main;

Html->getFormData( \%formData );

$directory = $formData{directory};

$oldSelection = $formData{oldSelection}; $newSelection = $formData{newSelection};

$host = "mms://www.knowledgeassembly.net";

$homeDir = "C:\\inetpub\\vidfiles";

$salon = $formData{salon};

$lastSeen = $formData{lastSeen}; if (defined($oldSelection)) { if (ref($oldSelection) eq 'ARRAY') { #user made multiple selections #@$oldSelection = sort @$oldSelection;

} else { #turn it into an array, for later processing my ©array; push ©array, $oldSelection;

$oldSelection = \@ array;

} } if (defined($newSelection)) { if (ref($newSelection) eq 'ARRAY') { #user made multiple selections #@$newSelection = sort @$newSelection;

} else { #tum it into an array, for later processing my ©array; push ©array, $newSelection;

$newSelection = \@ array;

} }

{ #temporary variable scope my ©array; push ©array, @$oldSelection if @$oldSelection; undef $oldSelection; if ($formData{viewAII}) { push ©array, @$newSelection if @$newSelection; } undef $newSelection; $selection = \@array;

} if (! @$selection) { print "Content-type: text/htm l\n\n"; print "<HTMLxHEADχTITLE>\n"; print "ERROR\n"; print "</TITLEx/HEADxBODY>\n"; print qq(<FONT size="+2">\n); print qq(<B>Error:</b>); print qq(Please press your "Back" button and select at least one clip ); print qq(to view. Thank you.); print qq(</FONTx/BODYx/HTML>\n); exit 0; }

@$selection = sort @$selection;

#Now, $selection is a reference to a sorted array, of one or more members. $lastSelection = $$selection[@$selection - 1]; $lastSelection =~ mΛI/; $lastSelection = $'; #now contains the key value for the latest clip selected if (($lastSeen && ($lastSelection gt $lastSeen))ll !$lastSeen) {

Html->setCookie($directory."_last=$lastSelection", 30);

} print "Content-type: video/x-ms-asf\n\n"; { my ©tmp = localtime(); $year = 1900+$tmp[5];

} print qq(<ASX Version="3">\n\t<COPYRIGHT>Knowledge Assembly Inc. $year</COPYRIGHT>\n); print qq(\t<title>$salon</title>\n); foreach $line (@$selection) { my ©data = split Λl/, $line; print "\t<ENTRY>\n"; my $speed = $formData{speed} II 'm'; CHECK_SPEED: if (! -f("$homeDir\\$directory\\content\\$data[0]$speed.asf")) { # No file, or no file for that speed if ($speed eq T) {$speed = 'm'; goto CHECK_SPEED;} if ($speed eq 'm') {$speed = 's'; goto CHECK_SPEED;} if ($speed eq 's') {$speed = "; goto CHECK_SPEED;} if ($speed eq ") { # Got a real problem. No file, goto SKIP_ENTRY; }

} print qq(\t\t<ref href="$host/$directory/$data[0]$speed.asf" />\n); print qq(\t\t<author>$data[1 ]</author>\n); { my $substr = substr($data[2],-1 ); if ("\n" eq substr($data[2],-1 )) {chop $data[2]; chop $data[2];}

} print qq(\t\t<title>$data[2]</title>\n); print qq(\t</ENTRY>\n); SKIP_ENTRY:

} print qq(</ASX>\n);

#

ENCODE.PL package main;

# $vidToASF = 'vidtoasf;

$mainDir = 'c:\inetpub\vidfiles'; print "Cache-Control: no-cache\n"; print "Pragma: no-cache\n"; print ("Content-type: text/plain\n\nEncoding manager V2.c\n\n"); (print ("***Can't change directory to $mainDir.\n"),exit 0) unless (chdir($mainDir));

# prevent multiple copies of encode from running at same time... BEGIN { $main::fileLockActive = 0; }

END { if ($fileLockActive) { unlink $fileLockActive or die "$fileLockActive: $!";

} } { my $lockFile = "encode. lok"; if (-f $lockFile) { print ("Another copy of $0 may be runningΛn"); print ("Lockfile '$mainDir\\$lockFile' is present. Unable to continueΛn"); exit 0;

} else {

$fileLockActive = open( LOCK, ">$lockFile" ) or die "$lockFile: $!"; close LOCK;

$fileLockActive = "$mainDir\\$lockFile";

} }

@dirϋst = ();

{ my $dirlistString = 'dir Ib/adlon ; ©dirList = split Λn/s, $dirlistString;

} foreach $dir (©dirList) { print "Salon: $dir\n"; if (chdir( SmainDir.'W.Sdir.'Wupload')) { my $tempListString = ' dir /b/a-d/on *.f rnr ; my ©tempList = split Λn/s, $tempListString; foreach $frmFile (©tempList) { print "\nProcessing $frmFile\n"; $frmFile =~ mΛ./; my $baseFile = $" ; my ©tmpϋst = glob( "$baseFile.*" ); foreach $file2 ( ©tmpList) { my ($base,$extension) = split Λ./, $file2; $extension = uc $extension; if ($extension eq 'FRM') {} # not processing elsif ($extension eq 'AVI' II $extension eq 'MOV') { #my $result = "$vidToASF -in $base.$extension -out ..\\content\\$base.asf ; my $encoderDir = 'C:\\ecc\V;

$ENV{'ASF_OUT'} = "$mainDir\\$dir\\content\\$base.asf"; $ENV{'VIDEO_IN'} = "$mainDir\\$dir\\upload\\$base.$extension";

$ENV{'ENCODE_ASD'} = $encoderDir.'scaled.asd'; if (! -f($encoderDir.'slides.asd')) { print "$encoderDir\\slides.asd doesn't exist. "; print "Can't continueΛn"; exit 0;

} if (! $ENV{ENCODE_ASD}) { #not enough environment space print "Can't set environment variable ENCODE_ASD\n"; print "to '${encoderDir}scaleable.asd'.\n"; print "possibly not enough environment spaceΛn"; print "\nUnable to continueΛn"; exit 0;

} my $cmd = qq(${encoderDir}ctrlr.exe); print "Command was: $cmd\n"; if (! -f($cmd)) { print "Program file doesn't exist!\n"; exit 0;

} system $cmd; if (! -f("$mainDir\\$dir\\content\\$base.asf")) { print "***Translation failed.\n\n"; my $error = 'type $base.FRM' ; print "Form file is:\n", $error, "\n\n"; exit 0; #DEBUG unlink "$base.$extension"; unlink "$base.FRM";

} else { print "Translation succeeded.\n\n"; handleVidFile( $base, $extension );

}

} elsif ($extension eq 'ASF') { copy $base.$extension ..\\content\\$base.asf ; print "File moved to correct placeΛn"; handleVidFile( $base, $extension );

} else { print "***Unsupported file type '$extension'.\n"; print "***Removing file $base.$extension and $base.FRM.\n"; unlink "$base.$extension"; unlink "$base.FRM";

} }

} } } sub handleVidFile { my $base = shift; my $extension = shift; my ©formData; if (open FORMFILE, "<$base.FRM") { ©formData = <FORMFILE>; close FORMFILE; print "Data from $base.FRM:\n"; my %formHash; foreach $line (©formData) { chop $line;

$line =~ sΛt/ /g; # replace tabs with single spaces $line =~ s/ +/ /g; # replace multi spaces w single $line =~ sΛI/:/g; # we use I as a field separator $line =~ m/=/; # split line on '='... print =$'\n";

$formHash{$^} = $'; #... to put into a hash

} if (enterData( $dir, \%formHash )) { unlink "$base.$extension"; unlink "$base.FRM"; print "Files removedΛn";

}

}

}

sub enterData { my $dir = shift; my $formHash = shift; (print ("\n***Unable to open data fileΛn"), return 0) unless (open DATAFILE, "»$mainDir\\$dir\\content\\data.txt"); my $outLine = "$$formHash{fileName}l$$formHash{Presenter}l".

"$$formHash{Summary}\n"; (print ("\n***Unable to print to data fileΛn"), return 0) unless (print DATAFILE $outLine); print ">$outLine"; close DATAFILE; return 1 ; } GETVID.PL

#!perl package main;

$where = $ENV{'QUERY_STRING'} II "; if ($where eq ") {noParameter();} elsif ($where eq 'test') {$salon=Test';} # we'll leave that name for now elsif ($where eq 'mb') { $where = 'test'; $salon='Bill and Michael';} else {badParameter();} $timeFilename = time(); print "Content-type: text/html\n"; print "Cache-Control: no-cache\n"; print "Pragma: no-cache\n\n";

# copy out all the data down to the BREAK token... untilBreak(); print

"This form will manage the upload of your video file for the '$salon' CyberSalonΛn"; printf( "(The file will be stored as '%08X'.)", $timeFilename ); untilBreak(); printf qq(<INPUT TYPE="hidden" NAME="fileName" VALUE="%08X">\n),

$timeFilename; print qq(<INPUT TYPE="hidden" NAME="directory" VALUE="$where">\n); untilBreak(); exit 0; sub noParameter { print "Content-type: text/plain\n\n"; print "Cannot continue. Identification information not providedΛn"; exit 0; } sub badParameter { print "Content-type: text/plain\n\n"; print "Cannot continue. No valid identification."; exit 0; } sub untilBreak { my $line; while ($line = <DATA>) { return 1 if ($line eq "_BREAK_\n"); # meaning we've hit a _BREAK_ print $line;

} return 0; # meaning we've hit end of data } _END_

<HTML>

<HEAD> <TITLE>File upload form, V2.2</TITLE>

</HEAD>

<BODY BACKGROUND="" BGCOLOR="#00ffff" TEXT="#000000" LINK="#ff0000"

VLINK="#0000ff" ALINK="#8000ff">

<CENTERxB> <FONT SIZE="+2">

Video File Upload<P>

</FONT>

_BREAK_

</Bx/CENTERxP> <FORM ACTION="http://www.knowledgeassembly.net/Scripts/getvid.asp"

METHOD="POST" ENCTYPE="multipart/form-data">

_BREAK_

Presenter's name:<BR>

<INPUT TYPE="text" NAME="Presenter" SIZE="50" MAXLENGTH="80" VALUE=""xBR>

Clip description:<BR>

<INPUT TYPE="text" NAME="Summary" SIZE="50" MAXLENGTH="100"

VALUE=""xP>

Video file name:<BR> <INPUT TYPE="file" NAME="inputFile" SIZE="50" MAXLENGTH="100"

ACCEPT="video/*"xBR>

<INPUT TYPE="submit" NAME="submit" VALUE="Send file"> <INPUT

TYPE="Reset">

</FORM> <P>

<FONT COLOR="#FF0000">

<B>Notice:</B> If file upload is interrupted by an error, please just press the

"Send file" button again. <P>

<B>Warning:</B> When you start the file transfer, it can take a long time to complete. This will depend on the size of the file, and on the speed of your connection. Do <Bχl>not</lx/B> shut down your browser before getting a completion message or an error message, or the time will have been wasted. <P>

</FONT>

Thank you! </BODYx/HTML> HTML.PM package Html;

Stifle = ";

$header = 0; $headerSent = 0;

sub startPage { shift; # package name, not used Stifle = shift;

$header = "Content-type: text/html\n\n<HTMLxHEAD><TITLE>\n"

"$title</TITLEx/HEADxBODY>\n"; return 1 ;

} sub send { my $this = shift; # package name not used, but may be later; if (!$headerSent) { if (!$header) { $this->start("); } print $header;

$headerSent = 1 ; $header = 0;

} print shift(); return 1 ;

} sub endPage { my $this = shift; $this->send("\n</BODYx/HTML>\n"); $headerSent = 0; return 1 ; } sub errorPage { my $this = shift; my $errno = shift; my $msg = shift; if ($headerSent) { print "\n<PxH2>Error $errno:</H2xB>$msg</BxP>\n"; } else {

$header = 0; print "Content-type: text/html\n\n<HTMLxHEAD>",

"<TITLE>Error $errno</TITLEx/HEADxBODY>\n",

"<H2>Error $errno:</H2xB>$msg</Bx/BODYx/HTML>\n";

} return 1 ;

} sub getFormData { my $this = shift; #in case of future use in a class my($hashRef) = shift; my($buffer) = "; if ($ENV{'REQUEST_METHOD'} eq 'GET') { $buffer = $ENV{'QUERY_STRING'};

} elsif (defined($ENV{'REQUEST_METHOD'})) { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

} else { my $line; print "Go:\n"; while ($line = <STDIN>) { chop $line;

$buffer .= $line . '&';

} } foreach (split(/&/, $buffer)) { my($key, $value) = split(/=/, $J; $key = decodeURL($key); $value = decodeURL($value);

$value =~ s/<[ \t]{0,}P[ \t]{0,}>/<P>/gi; $value =~ s/(<P>\s*)+/<P>/g; # compress multiple <P> tags. $value =~ s/</&lt/g; # turn off all HTML tags.

$value =~ s/>/&gt/g; if ($::tagsOn) {

$value =~ s/&ltb&gt <b>/ig; # turn on the bold tag.

$value =~ s!&lt/b&gtk/b>!ig;

$value =~ s/&lti&gt/<b>/ig; # turn on the italic tag.

$value =~ s!&lt/i&gtk/b>!ig; $value =~ s!\cM!!g; # Remove unneeded carriage returns.

$value =~ s!\n\n!<P>!g; # Convert 2 newlines into paragraph.

$value =~ s!\n! !g; # Convert newline into spaces.

} if ($$hashRef{$key}) { # then it already exists my ($ref, ©array); $ref = $$hashRef{$key}; if (ref($ref) eq 'ARRAY') { #then it's already a multiple #so do nothing

} else { push ©array, $$hashRef{$key};

$$hashRef{$key} = \@ array; # convert existing to an array

$ref = $$hashRef{$key};

} push @$ref, $value;

} else { $$hashRef{$key} = $value; } # it's a simple, single value

}

} sub decodeURL { $_ = shift; tr/+/ /; s/%(..)/pack('c', hex($1 ))/eg; return ($_);

}

# Returns a reference to hash of cookie names and values, sub getCookies { shift; # for possible later use as a class my %reply = (); my ©cookieList = split ( /; /, $ENV{HTTP_COOKIE} ); foreach $item (©cookieList) { #won't happen if there are no cookies, my ($key,$value) = split( /=!#/, $item ); $reply{$key} = $value;

} return \%reply; #which will be () if there were no cookies.

} sub cookieDate { shift; # class name my $daysTilExpiration = shift; my ©time = gmtime(time()+($daysTilExpiration*24*3600)); my ©days = (Sun,Mon,Tue,Wed,Thu,Fri,Sat); my ©months = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); my $reply = sprintf ("$days[$time[6]], %02d-$months[$time[4]]-%d". " %02d:7o02d:%02d GMT", $time[3], 1900+$time[5], $time[2j, $time[1 ], $time[0]); return $reply; } sub setCookie { my $class = shift; my $string = shift; my $days = shift; print "Set-cookie: $string; patr ; expires=".

$class->cookieDate($days) . "\n " ; return 1 ;

}

1 ; package main;

GETVID.ASP

<%

Server.ScriptTimeout = 32000

' use the scripting object to save the form inputs

Set PostObject = Server.CreateObject("ActiveFile.Post")

Set DirectoryObject = Server.CreateObjectfActiveFile. Directory") DirectoryObject. Path = "C:\lnetPub\vidFiles"

Set PostObject. Directory = DirectoryObject

PathName = "C:\lnetPub\vidFiles\" & PostObject.Formlnputs("directory").Value

FileName = PathName & "\upload\" & PostObject.Formlnputs("fileName").Value

Set FileObject = CreateObject("Scripting.FileSystemObject")

Set FileHandle = FileObject.CreateTextFile(FileName & ".FRM", TRUE)

For Each Inputltem In PostObject.Formlnputs

FileHandle.Writeline(lnputltem.Name & "=" & Inputltem.Value) Next

FileHandle. Close

' save the data

OrgName = Trim(PostObject.Formlnputs("inputFile"). Value) Set FileData = PostObject.Formlnputs("inputFile").File

SaveName = FileName & ".$$$" OrgLen = Len(OrgName) For i = 0 to OrgLen-1

If Mid(OrgName,OrgLen-i,1 )="." Then FileExtension = Right(OrgName,i)

If FileExtensiono"FRM" Then

SaveName = FileName & "." & FileExtension End If Exit For End If

Next

FileData.Copy(SaveName) FileData.Delete

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML> <HEAD> <TITLE>Upload Complete</TITLE>

</HEAD>

<BODY> </CENTER> <B> Received '<%= PostObject.Formlnputs("fileName").Value %>' file for "<%= PostObject.Formlnputs("directory").Value %>" salon.

<P>

Upload complete.

</B>

</CENTER>

</BODY>

</HTML>

Claims

What is claimed is
1. A computer system for managing an electronically-mediated, asynchronous discussion among knowledge providers, comprising: a) a first connective means from a first computer to a second computer; b) a second computer; c) said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; d) a second connective means allowing said second computer to communicate said appropriately formatted clip to a third computer; e) said third computer; and f) a third connective means allowing said third computer to communicate said appropriately formatted clip to at least one viewer.
2. A computer system as in claim 1 , wherein: g) a knowledge provider serves as a discussion leader and provides additional background information to said knowledge providers through said connective means.
3. A computer system as in claim 2, further comprising: h) a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.
4. A computer system as in claim 2, further comprising: h) a process manager to organize and edit the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.
5. A computer system as in claim 3, wherein: i) said process manager comprises management software residing on said second computer.
6. A computer system as in claim 3, further comprising: i) a fourth connective means to allow viewers to communicate feedback to a feedback manager; j) said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and k) said feedback manager communicating said feedback to said discussion leader.
7. A computer system in claim 6, further comprising:
I) summarizing means for sifting, sorting and summarizing said feedback for said feedback manager to communicate a summary of said feedback to said discussion leader.
8. A computer system for managing an electronically-mediated, asynchronous discussion among knowledge providers, comprising: a) a first connective means from a first computer to a second computer; b) a second computer; c) said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; d) a second connective means allowing said second computer to communicate said appropriately formatted clip at least one viewer; and e) a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.
9. A computer system as in claim 8, further comprising: f) a fourth connective means to allow viewers to communicate feedback to a feedback manager; g) said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and h) said feedback manager communicating said feedback to said discussion leader.
10. A method for managing an electronically-mediated, asynchronous discussion among knowledge providers, comprising the steps of: a) providing a first connective means from a first computer to a second computer; b) providing a second computer; c) providing said first connective means allowing a knowledge provider operating a first computer to capture clip information, encode clip information, and upload an appropriately formatted clip from a first computer to said second computer; d) providing a second connective means allowing said second computer to communicate said appropriately formatted clip to a third computer; e) providing said third computer; and f) providing a third connective means allowing said third computer to communicate said appropriately formatted clip to at least one viewer.
1 1 . A method as in claim 10, further comprising: g) providing a knowledge provider serves as a discussion leader and provides additional background information to said knowledge providers through said connective means.
12. A method as in claim 1 1 , further comprising: h) providing a process manager to organize the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.
13. A method as in claim 1 1 further comprising: h) providing a process manager to organize and edit the clips into discussion form, authorize viewers and knowledge providers, track which clips have been viewed by individual viewers and knowledge providers and transmit clips as requested by individual viewers and knowledge providers.
14. A method as in claim 12, further comprising: i) providing a fourth connective means to allow viewers to communicate feedback to a feedback manager; m) said feedback comprising at least one of the group of emails, telephone calls, multimedia and text responses, survey tools, television set-top box technology input; and n) said feedback manager communicating said feedback to said discussion leader.
15. A method as in claim 14, further comprising: o) providing summarizing means for sifting, sorting and summarizing said feedback for said feedback manager to communicate a summary of said feedback to said discussion leader.
PCT/US1999/023051 1998-10-05 1999-10-04 Asynchronous video forums WO2000020960A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10304298P true 1998-10-05 1998-10-05
US60/103,042 1998-10-05

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU11011/00A AU1101100A (en) 1998-10-05 1999-10-04 Asynchronous video forums

Publications (1)

Publication Number Publication Date
WO2000020960A1 true WO2000020960A1 (en) 2000-04-13

Family

ID=22293051

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/023051 WO2000020960A1 (en) 1998-10-05 1999-10-04 Asynchronous video forums

Country Status (2)

Country Link
AU (1) AU1101100A (en)
WO (1) WO2000020960A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1305096A1 (en) * 2000-05-30 2003-05-02 Racetech L.L.C. Methods and apparatus for parimutuel historical gaming
US7478163B2 (en) * 2003-02-04 2009-01-13 Alda Anthony Arthur J Method and apparatus for presenting multimedia content and for facilitating third party representation of an object
US20130051759A1 (en) * 2007-04-27 2013-02-28 Evan Scheessele Time-shifted Telepresence System And Method
EP2629513A1 (en) * 2012-02-14 2013-08-21 Alcatel Lucent Method and arrangement for generating a composed threaded video
EP2629512A1 (en) * 2012-02-14 2013-08-21 Alcatel Lucent Method and arrangement for generating and updating A composed video conversation
WO2014130559A1 (en) * 2013-02-20 2014-08-28 Sprint Communications Company L.P. Using metadata for video message modifications among wireless communication devices
US9529870B1 (en) 2000-09-14 2016-12-27 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US10225584B2 (en) 1999-08-03 2019-03-05 Videoshare Llc Systems and methods for sharing video with advertisements over a network
US10277654B2 (en) 2000-03-09 2019-04-30 Videoshare, Llc Sharing a streaming video

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109482A (en) * 1989-01-11 1992-04-28 David Bohrman Interactive video control system for displaying user-selectable clips
US5675752A (en) * 1994-09-15 1997-10-07 Sony Corporation Interactive applications generator for an interactive presentation environment
US5706290A (en) * 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US5727156A (en) * 1996-04-10 1998-03-10 Hotoffice Technologies, Inc. Internet-based automatic publishing system
US5966121A (en) * 1995-10-12 1999-10-12 Andersen Consulting Llp Interactive hypervideo editing system and interface
US5999173A (en) * 1992-04-03 1999-12-07 Adobe Systems Incorporated Method and apparatus for video editing with video clip representations displayed along a time line

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109482A (en) * 1989-01-11 1992-04-28 David Bohrman Interactive video control system for displaying user-selectable clips
US5999173A (en) * 1992-04-03 1999-12-07 Adobe Systems Incorporated Method and apparatus for video editing with video clip representations displayed along a time line
US5675752A (en) * 1994-09-15 1997-10-07 Sony Corporation Interactive applications generator for an interactive presentation environment
US5706290A (en) * 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US5966121A (en) * 1995-10-12 1999-10-12 Andersen Consulting Llp Interactive hypervideo editing system and interface
US5727156A (en) * 1996-04-10 1998-03-10 Hotoffice Technologies, Inc. Internet-based automatic publishing system

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225584B2 (en) 1999-08-03 2019-03-05 Videoshare Llc Systems and methods for sharing video with advertisements over a network
US10277654B2 (en) 2000-03-09 2019-04-30 Videoshare, Llc Sharing a streaming video
EP1305096A4 (en) * 2000-05-30 2007-10-24 Racetech L L C Methods and apparatus for parimutuel historical gaming
EP1305096A1 (en) * 2000-05-30 2003-05-02 Racetech L.L.C. Methods and apparatus for parimutuel historical gaming
US10063936B1 (en) 2000-09-14 2018-08-28 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a work identifier
US10205781B1 (en) 2000-09-14 2019-02-12 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US10108642B1 (en) 2000-09-14 2018-10-23 Network-1 Technologies, Inc. System for using extracted feature vectors to perform an action associated with a work identifier
US9529870B1 (en) 2000-09-14 2016-12-27 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US9538216B1 (en) 2000-09-14 2017-01-03 Network-1 Technologies, Inc. System for taking action with respect to a media work
US9536253B1 (en) 2000-09-14 2017-01-03 Network-1 Technologies, Inc. Methods for linking an electronic media work to perform an action
US9544663B1 (en) 2000-09-14 2017-01-10 Network-1 Technologies, Inc. System for taking action with respect to a media work
US9558190B1 (en) 2000-09-14 2017-01-31 Network-1 Technologies, Inc. System and method for taking action with respect to an electronic media work
US9781251B1 (en) 2000-09-14 2017-10-03 Network-1 Technologies, Inc. Methods for using extracted features and annotations associated with an electronic media work to perform an action
US10073862B1 (en) 2000-09-14 2018-09-11 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with selected identified image
US9805066B1 (en) 2000-09-14 2017-10-31 Network-1 Technologies, Inc. Methods for using extracted features and annotations associated with an electronic media work to perform an action
US9824098B1 (en) 2000-09-14 2017-11-21 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with identified action information
US9832266B1 (en) 2000-09-14 2017-11-28 Network-1 Technologies, Inc. Methods for using extracted features to perform an action associated with identified action information
US9883253B1 (en) 2000-09-14 2018-01-30 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a product
US10057408B1 (en) 2000-09-14 2018-08-21 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a work identifier
US10063940B1 (en) 2000-09-14 2018-08-28 Network-1 Technologies, Inc. System for using extracted feature vectors to perform an action associated with a work identifier
US9807472B1 (en) 2000-09-14 2017-10-31 Network-1 Technologies, Inc. Methods for using extracted feature vectors to perform an action associated with a product
US7478163B2 (en) * 2003-02-04 2009-01-13 Alda Anthony Arthur J Method and apparatus for presenting multimedia content and for facilitating third party representation of an object
US20130051759A1 (en) * 2007-04-27 2013-02-28 Evan Scheessele Time-shifted Telepresence System And Method
EP2629512A1 (en) * 2012-02-14 2013-08-21 Alcatel Lucent Method and arrangement for generating and updating A composed video conversation
EP2629513A1 (en) * 2012-02-14 2013-08-21 Alcatel Lucent Method and arrangement for generating a composed threaded video
WO2014130559A1 (en) * 2013-02-20 2014-08-28 Sprint Communications Company L.P. Using metadata for video message modifications among wireless communication devices

Also Published As

Publication number Publication date
AU1101100A (en) 2000-04-26

Similar Documents

Publication Publication Date Title
Pavlik et al. Converging media
US8296811B1 (en) Method and apparatus for automatically converting source video into electronic mail messages
US6968506B2 (en) Method of and system for composing, delivering, viewing and managing audio-visual presentations over a communications network
US7769819B2 (en) Video editing with timeline representations
Resnick et al. PICS: Internet access controls without censorship
US6105055A (en) Method and apparatus for asynchronous multimedia collaboration
CA2420925C (en) Systems and method for interacting with users over a communications network
RU2292660C2 (en) Method for quick authentified switching of channels of audio-visual information, provided through dsl connection, and system for its realization
US7133896B2 (en) Providing a presentation on a network
US7660416B1 (en) System and method for media content collaboration throughout a media production process
US7739327B2 (en) Distributed link processing system for delivering application and multi-media content on the internet
US7809802B2 (en) Browser based video editing
DE60004530T2 (en) Interactive television system with news groups
US8042054B2 (en) System for managing media content
US7802295B2 (en) Authentication method, authentication system, and authentication server
US6816884B1 (en) System and method for creating conversationally-styled summaries from digesting email messages
US6883009B2 (en) Image data management method and system using network
US9508077B2 (en) Podcasting having inserted content distinct from the podcast content
EP1182845B1 (en) Information delivery system and information delivery method
US7203758B2 (en) System and method for selective insertion of content into streaming media
JP4643888B2 (en) Multimedia cooperative activity system, the client / server method, recording medium, and program
US20030028662A1 (en) Method of reconstructing network communications
US20070189708A1 (en) Browser based multi-clip video editing
US7143177B1 (en) Providing a presentation on a network having a plurality of synchronized media types
US7921221B2 (en) Method and apparatus for obtaining digital objects in a communication network

Legal Events

Date Code Title Description
ENP Entry into the national phase in:

Ref country code: AU

Ref document number: 2000 11011

Kind code of ref document: A

Format of ref document f/p: F

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase