[go: up one dir, main page]

WO2001052263A1 - Client-server video streaming technology - Google Patents

Client-server video streaming technology Download PDF

Info

Publication number
WO2001052263A1
WO2001052263A1 PCT/AU2001/000037 AU0100037W WO0152263A1 WO 2001052263 A1 WO2001052263 A1 WO 2001052263A1 AU 0100037 W AU0100037 W AU 0100037W WO 0152263 A1 WO0152263 A1 WO 0152263A1
Authority
WO
WIPO (PCT)
Prior art keywords
segment
digital video
file
segments
video file
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/AU2001/000037
Other languages
French (fr)
Inventor
Mark Thorn
Grant Maxwell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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
Application filed by Individual filed Critical Individual
Priority to AU2001226551A priority Critical patent/AU2001226551A1/en
Publication of WO2001052263A1 publication Critical patent/WO2001052263A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware

Definitions

  • the invention pertains to the transmission and reception of video streams over a network and more particularly to software, methods and apparatus for requesting, delivering and viewing segments of a digital video file.
  • Video streaming refers to the delivery of a continuous flow of data which is reconstituted by a user, as it is received (usually in conjunction with a buffer memory), for the purpose of simulating the real time transmission of a video image and soundtrack.
  • a user such as a PC user
  • Video streaming could only view a pre-determined segment of the video steam by requesting the entirety of that video stream.
  • DISCLOSURE OF THE INVENTION It is an object of the invention to provide methods, apparatus and software for the request, assembly, delivery, reception and display of segments of a digital video file or stream.
  • a method for the production of a segment from a first digital video file having a header comprising the steps of: identifying or storing the header of the first digital video file; identifying from within the file, a portion; copying the portion from the first file; and appending a copy of the header to the copied portion to produce the segment.
  • a method of serving digital video files comprising the steps of: storing on a server, a database which functions as an index to a first digital video file; the database comprising entries which relate to specific segments of the first digital video file; the entries identifying segment data such as: text data, segment duration, start time and end time; providing to a client application or allowing a client application to access segment data; accepting requests based on segment data from the client application and in reply, serving a segment of the first digital video file to a user of the client.
  • a method of using a computer to view digital video files comprising the steps of: running on an operating system of the computer, software for the display and use of a video browser; the video browser being a graphical user interface having a visual display which can be toggled, by a user, to display either an index of text data relating to segments of a digital video file, or segments of the same file; the browser adapted to request and display video files or streaming video selected by a user from the text data.
  • software is provided for a browser which toggles between a display of index information and a display of a segment of a digital video stream or file.
  • Fig. 1 is a flowchart illustrating the steps carried out by the client program
  • Fig. 2 is a flowchart illustrating the steps carried out by the server program;
  • Fig. 3 is a screen image of a requested video segment;
  • Fig. 4 is a screen display of a text index.
  • each sub-division may be expressed as a number in a database which is constructed as an index. This number can relate to either a number of bits, microseconds or seconds of data that have elapsed from the beginning of the file.
  • each number may be associated with a separate entry in the form of a text string.
  • Each of the aforementioned numbers corresponds to a start point and each start point is preferably associated with a text string and an end point. This gives the capability to conveniently sub-divide the MPEG1 video file and as will be explained, provides a capability for a user to play these individually defined segments.
  • the individually defined segments as defined by their start point and an end point are referred to as "sections”.
  • the sections may also be sub-divided into a number of sub-section layers each having an individual start point and end point, which regions are re- defined as subjects, topics, etc.
  • the user client program automates the process of requesting an MPEG1 video segment.
  • the end user whether by PC or by set top box will generally authenticate himself to the server by entering the appropriate user ID and password.
  • the user client program allows the user to prepare a request for a segment 20.
  • the client program displays to the user an index or list of topics or segments which may be searchable or directly selected by the user 21. It is from this display that the user makes selections which form the basis of the request that the client program makes to the server program 22.
  • the client program includes a graphical interface which can be toggled between a display of the requested video segment (as shown in Fig. 3) and a display of the text index 32 (as shown in Fig. 4) at the command of the user.
  • a graphical button 101 displayed in the frame of the video browser 100 allows the user to switch between index and video segment displays.
  • the text index or text data 102 displayed in the text view may be obtained from the server which serves the video segment or stores the related database.
  • the video browser may incorporate other display controls as well.
  • the server program software includes features for both serving the segments requested by the user and for protecting the stored video files from unauthorised use or manipulation.
  • the server program software includes features for authenticating a user 50 by comparing database entries to a particular user's ID and password.
  • a user's request for a segment 60 is accomplished by searching for and finding the requested MPEG1 video file 61 , finding the search index which corresponds to that file 62, then determining the start point and end point within the file which corresponds to the user's request 63.
  • the server program software must then prepare the segment for transmission 70.
  • the previously identified file segment is appended by copying the header of the full MPEG1 video file at the beginning of the requested segment 71. This allows the requested segment to be recognised as a video file by the operating system.
  • This new file comprising the segment and the header (“the clip") is then given a random file name 72. The randomly named file is then served over the network 80.
  • the transmission is ended 90.
  • this involves an update of the user's session details 91 and also preferably includes the deletion of the requested and randomly named clip file from the temporary video cache of the server after a specific period of time has elapsed 92. Deletion of the clip from the server after a short period of time makes the clip inaccessible once it has been served.
  • segment preparation entails that a software program is used to read the first 3 to 6 bytes of the header of the digital video file (e.g. MPEG1). This results in the identification of a number. Each frame of the video file begins with this number. The software then scans the entire digital video file for the next occurrence of this number. This identifies the beginning of the first frame of the video image. Everything before this point in the file is treated as the header. When a segment is identified for copying, the segmentising software looks again for the first occurrence of this number and removes all of the bytes before it. This removes any partial frames from the segment before the header is attached or appended.
  • a software program is used to read the first 3 to 6 bytes of the header of the digital video file (e.g. MPEG1). This results in the identification of a number. Each frame of the video file begins with this number. The software then scans the entire digital video file for the next occurrence of this number. This identifies the beginning of the first frame of the video image. Everything before this point in the file
  • the server protocols are set to make original MPEG1 video streams inaccessible to a client. Accordingly, segments are only served in small portions. Further, each portion is given a randomly-generated name prior to being served. Lastly, each clip is deleted shortly after it has been served.
  • the client program software creates a cache through which the requested clip is played. The client program deletes the cached clip file once it has been played.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The invention provides methods (50, 60, 70, 80, 90) for serving segments of a digital video file or stream. Segments are constituted from a larger file by appending the header from the larger file to a portion of the file (71). Methods are also provided for creating a database which serves as an index to the digital video file. A video browser (100) is also disclosed. The video browser toggles (101) between a display of index data and a display of a segment.

Description

CLIENT-SERVER VIDEO STREAMING TECHNOLOGY TECHNICAL FIELD
The invention pertains to the transmission and reception of video streams over a network and more particularly to software, methods and apparatus for requesting, delivering and viewing segments of a digital video file. BACKGROUND ART
Video streaming refers to the delivery of a continuous flow of data which is reconstituted by a user, as it is received (usually in conjunction with a buffer memory), for the purpose of simulating the real time transmission of a video image and soundtrack. In the past, a user (such as a PC user) could only view a pre-determined segment of the video steam by requesting the entirety of that video stream.
It would be commercially advantageous to allow a user to access only requested segments of a video stream without having to deliver the entire stream to that user.
It would also be advantageous to allow a user to request segments of a video stream according to any one of diverse parameters such as by subject, key word, elapsed time or by other information which can be expressed as an entry in a database or index.
It would also be advantageous to provide a user with means by which to access portions of a video stream without compromising the copyright associated with the video stream. DISCLOSURE OF THE INVENTION It is an object of the invention to provide methods, apparatus and software for the request, assembly, delivery, reception and display of segments of a digital video file or stream. In a preferred form of the invention there is provided a method for the production of a segment from a first digital video file having a header, the method comprising the steps of: identifying or storing the header of the first digital video file; identifying from within the file, a portion; copying the portion from the first file; and appending a copy of the header to the copied portion to produce the segment.
In another form of the invention there is provided a method of serving digital video files, comprising the steps of: storing on a server, a database which functions as an index to a first digital video file; the database comprising entries which relate to specific segments of the first digital video file; the entries identifying segment data such as: text data, segment duration, start time and end time; providing to a client application or allowing a client application to access segment data; accepting requests based on segment data from the client application and in reply, serving a segment of the first digital video file to a user of the client.
In yet another form of the invention there is provided a method of using a computer to view digital video files comprising the steps of: running on an operating system of the computer, software for the display and use of a video browser; the video browser being a graphical user interface having a visual display which can be toggled, by a user, to display either an index of text data relating to segments of a digital video file, or segments of the same file; the browser adapted to request and display video files or streaming video selected by a user from the text data. In another aspect of the invention, software is provided for a browser which toggles between a display of index information and a display of a segment of a digital video stream or file. BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a flowchart illustrating the steps carried out by the client program;
Fig. 2 is a flowchart illustrating the steps carried out by the server program; Fig. 3 is a screen image of a requested video segment; Fig. 4 is a screen display of a text index. BEST MODE FOR CARRYING OUT THE INVENTION
While the present description is made with reference to MPEG1 video, it will be understood that the technology is adaptable to other file formats that may share the characteristic that the file header may be appended to a segment of the file and where the segment with appended header can be played, viewed or otherwise put to use by an end user.
For MPEG1 files to be served in segments, it is first required to create an index of the MPEG1 file. This is done by creating an index of segments or sub-divisions of the MPEG1 file. Each sub-division may be expressed as a number in a database which is constructed as an index. This number can relate to either a number of bits, microseconds or seconds of data that have elapsed from the beginning of the file. In the aforementioned database, each number may be associated with a separate entry in the form of a text string. Each of the aforementioned numbers corresponds to a start point and each start point is preferably associated with a text string and an end point. This gives the capability to conveniently sub-divide the MPEG1 video file and as will be explained, provides a capability for a user to play these individually defined segments.
In some embodiments of the invention, the individually defined segments as defined by their start point and an end point are referred to as "sections". The sections may also be sub-divided into a number of sub-section layers each having an individual start point and end point, which regions are re- defined as subjects, topics, etc.
By expressing the list of sections and subjects as an index and by linking each entry in the list with a start and a finish number, there is provided a method of searching through lengthy MPEG1 video files by reference to text or key words without having to physically view the video and make selections based on the display of images.
In order to facilitate the utility of these features to the end user, the user client program automates the process of requesting an MPEG1 video segment. As shown in Fig. 1 , the end user, whether by PC or by set top box will generally authenticate himself to the server by entering the appropriate user ID and password. Once the end user has been authenticated, the user client program allows the user to prepare a request for a segment 20. Importantly, the client program displays to the user an index or list of topics or segments which may be searchable or directly selected by the user 21. It is from this display that the user makes selections which form the basis of the request that the client program makes to the server program 22.
When the segment or segments which are requested 22 are eventually delivered over the network to the client program, the client will receive and display the segment 30. The usefulness of the system is greatly enhanced by display features of the client program. The client program includes a graphical interface which can be toggled between a display of the requested video segment (as shown in Fig. 3) and a display of the text index 32 (as shown in Fig. 4) at the command of the user. A graphical button 101 displayed in the frame of the video browser 100 allows the user to switch between index and video segment displays. The text index or text data 102 displayed in the text view may be obtained from the server which serves the video segment or stores the related database. The video browser may incorporate other display controls as well.
As shown in Fig. 2, the server program software includes features for both serving the segments requested by the user and for protecting the stored video files from unauthorised use or manipulation.
The server program software includes features for authenticating a user 50 by comparing database entries to a particular user's ID and password. A user's request for a segment 60 is accomplished by searching for and finding the requested MPEG1 video file 61 , finding the search index which corresponds to that file 62, then determining the start point and end point within the file which corresponds to the user's request 63. The server program software must then prepare the segment for transmission 70. The previously identified file segment is appended by copying the header of the full MPEG1 video file at the beginning of the requested segment 71. This allows the requested segment to be recognised as a video file by the operating system. This new file comprising the segment and the header ("the clip") is then given a random file name 72. The randomly named file is then served over the network 80. After the clip is served, the transmission is ended 90. Typically, this involves an update of the user's session details 91 and also preferably includes the deletion of the requested and randomly named clip file from the temporary video cache of the server after a specific period of time has elapsed 92. Deletion of the clip from the server after a short period of time makes the clip inaccessible once it has been served.
In particular segment preparation entails that a software program is used to read the first 3 to 6 bytes of the header of the digital video file (e.g. MPEG1). This results in the identification of a number. Each frame of the video file begins with this number. The software then scans the entire digital video file for the next occurrence of this number. This identifies the beginning of the first frame of the video image. Everything before this point in the file is treated as the header. When a segment is identified for copying, the segmentising software looks again for the first occurrence of this number and removes all of the bytes before it. This removes any partial frames from the segment before the header is attached or appended.
The security of the system is enhanced in a number of ways. First, the server protocols are set to make original MPEG1 video streams inaccessible to a client. Accordingly, segments are only served in small portions. Further, each portion is given a randomly-generated name prior to being served. Lastly, each clip is deleted shortly after it has been served. In line with the security protocols established in the server software, the client program software creates a cache through which the requested clip is played. The client program deletes the cached clip file once it has been played.

Claims

1 . A method for the production of a segment from a first digital video file having a header, the method comprising the steps of: identifying or storing the header of the first digital video file; identifying from within the file, a portion; copying the portion from the first file; and appending a copy of the header to the copied portion to produce the segment.
2. The method of claim 1 , wherein: the first digital video file is an MPEG1 file.
3. The method of claim 1 , wherein the method further comprises: identifying then separating one or more additional portions from the first file; and appending a copy of the header to each additional portion to produce one or more additional segments.
4. The method of claim 1 , further comprising the steps of: constituting a database which functions as an index of one or more segments; identifying one or more segments by unique entries in the database; and relating, in the database, a text string to each of the unique entries which identify a segment.
5. A method of serving digital video files, comprising the steps of: storing on a server a database which functions as an index to a first digital video file; the database comprising entries which relate to specific segments of the first digital video file; the entries identifying segment data such as: text data, segment duration, start time and end time; providing to a client application or allowing a client application to access segment data; accepting requests based on segment data from the client application and in reply, serving a segment of the first digital video file to a user of the client.
6. The method of claim 5, wherein: the segments are MPEG 1 files.
7. The method of claim 5, wherein: prior to serving a segment, a user is authenticated.
8. The method of claim 5, wherein serving a segment comprises: identifying a portion of the first digital video file based on a request from the client application, constituting a second digital video file comprising a copy of the portion, appended with a copy of a header of the first digital video file, then serving the second digital video file.
9. The method of claim 5, wherein: the segment is assigned a random name by the server.
1 0. The method of claim 5, wherein: after a segment is served, the segment is deleted from a temporary video cache of the server to twart unauthorised copying.
1 1 . The method of claim 5, wherein: the server has a protocol which prohibits providing the first digital video file to a client or user.
1 2. The method of claim 5, wherein: the segment is served as a streaming file.
1 3. The method of claim 5, wherein: the server specifically serves text data from the database for use by a client application in identifying segments.
14. A method of using a computer to view digital video files comprising the steps of: running on an operating system of the computer, software for the display and use of a video browser; the video browser being a graphical user interface having a visual display which can be toggled, by a user, to display either an index of text data relating to segments of a digital video file, or segments of the same file; the browser adapted to request and display video files or streaming video selected by a user from the text data.
5. The method of claim 1 4, wherein: the browser, when toggled to display the index of text data, does so by obtaining the text data from entries in a database on a server, the database comprising an index to the digital video file organised according to its segments.
6. The method of claim 1 4, wherein: selection by a user of text data in the display of the index results in the display comprising a segment which corresponds to the text data.
7. Software for performing the methods of any of claims 1 4 to 1 6.
8. A computer, when running the software of claim 1 7.
9. A server for, or when performing, the methods of any of claims 1 to 3.
PCT/AU2001/000037 2000-01-14 2001-01-15 Client-server video streaming technology Ceased WO2001052263A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001226551A AU2001226551A1 (en) 2000-01-14 2001-01-15 Client-server video streaming technology

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AUPQ5252A AUPQ525200A0 (en) 2000-01-14 2000-01-14 Client-server video streaming technology
AUPQ5252 2000-01-14

Publications (1)

Publication Number Publication Date
WO2001052263A1 true WO2001052263A1 (en) 2001-07-19

Family

ID=3819378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2001/000037 Ceased WO2001052263A1 (en) 2000-01-14 2001-01-15 Client-server video streaming technology

Country Status (2)

Country Link
AU (1) AUPQ525200A0 (en)
WO (1) WO2001052263A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675511A (en) * 1995-12-21 1997-10-07 Intel Corporation Apparatus and method for event tagging for multiple audio, video, and data streams
US5765164A (en) * 1995-12-21 1998-06-09 Intel Corporation Apparatus and method for management of discontinuous segments of multiple audio, video, and data streams
WO2000007374A1 (en) * 1998-07-27 2000-02-10 V-Bits, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675511A (en) * 1995-12-21 1997-10-07 Intel Corporation Apparatus and method for event tagging for multiple audio, video, and data streams
US5765164A (en) * 1995-12-21 1998-06-09 Intel Corporation Apparatus and method for management of discontinuous segments of multiple audio, video, and data streams
WO2000007374A1 (en) * 1998-07-27 2000-02-10 V-Bits, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit

Also Published As

Publication number Publication date
AUPQ525200A0 (en) 2000-02-17

Similar Documents

Publication Publication Date Title
US6173406B1 (en) Authentication systems, methods, and computer program products
US7986867B2 (en) Video downloading and scrubbing system and method
US20090316894A1 (en) Method and apparatus for checking consistency between digital contents
CN100419720C (en) Information delivery system, method and server, content delivery server and client terminal
US9813471B2 (en) System, apparatus, method and program for processing information
US6182072B1 (en) Method and apparatus for generating a tour of world wide web sites
KR101722673B1 (en) Method and system for providing time machine function in live broadcast
US20020152262A1 (en) Method and system for preventing the infringement of intellectual property rights
US20090094230A1 (en) Related information providing apparatus and providing method
EP1973304A1 (en) Music file editing system
US20090077170A1 (en) System, Architecture and Method for Real-Time Collaborative Viewing and Modifying of Multimedia
WO2004084008A3 (en) Remote access authorization of local content
WO2017071512A1 (en) Cloud storage and cloud download methods for multimedia data and related devices
DE60133008D1 (en) NETWORK BASED METHOD AND SYSTEM FOR TRANSMITTING DIGITAL DATA TO THE USER COMPUTER AND CHARGING DATA USED WITH THE USER COMPUTER USERS
US7434057B2 (en) System and method for watermarking in accessed data in a storage system
WO2001017228A1 (en) Image distributing method and system, image data, and recorded medium
JP2007142750A (en) Video browsing system, computer terminal and program
JP2001268523A (en) Service system
JPWO2003034727A1 (en) CONTENT DISTRIBUTION SERVER AND CONTENT DISTRIBUTION SYSTEM HAVING THE SAME
WO2001052263A1 (en) Client-server video streaming technology
US20060023752A1 (en) Method for providing multimedia data via communication network
JP2008112158A (en) System for distributing synchronized lyrics file, music file management terminal, music-synchronized lyrics reproduction terminal and system for distributing synchronized lyrics
JP2007034895A (en) Information management apparatus, information management method, and information management system
JP4731111B2 (en) Multimedia content playback apparatus and playback method, and recording medium storing data used therefor
KR20040038456A (en) A drm apparatus and method for sharing the digital contents in the home server

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ 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 MZ 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 TR 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
NENP Non-entry into the national phase

Ref country code: JP