Virtual File System for Streaming Video

26
Virtual File System for Streaming Video • Developers: Uri Goldenberg 039078191 [email protected] Henry Abravanel 310739693 [email protected] • Academic Advisor: Prop. Michael Elhadad, Senior Lecturer at the Department of Computer Science, Ben-Gurion University of the Negev. • Professional Advisor: Barak Bar-Orion, Team Leader at Gefen Dekel Technologies LTD, Dalet

description

Virtual File System for Streaming Video. Developers: Uri Goldenberg 039078191 [email protected] Henry Abravanel 310739693 [email protected] Academic Advisor: Prop. Michael Elhadad , Senior Lecturer at the Department of Computer Science, Ben-Gurion University of the Negev. - PowerPoint PPT Presentation

Transcript of Virtual File System for Streaming Video

Page 1: Virtual File System for Streaming Video

Virtual File System forStreaming Video

• Developers:– Uri Goldenberg 039078191 [email protected]– Henry Abravanel 310739693

[email protected]• Academic Advisor:– Prop. Michael Elhadad, Senior Lecturer at the

Department of Computer Science, Ben-Gurion University of the Negev.

• Professional Advisor:– Barak Bar-Orion, Team Leader at Gefen Dekel

Technologies LTD, Dalet

Page 2: Virtual File System for Streaming Video

Problem Definition• Various video editing or manipulation software

systems require a certain combination of container + codec.

• When a customer wants to mix several applications on the same video material, we must store video in multiple formats.

• A trivial solution is to convert the source video essence to multiple formats.

• Another, less trivial, solution is to force all programs to use the same container + codec combination.

Page 3: Virtual File System for Streaming Video

Our Solution• Creating a VFS that given an input of target

containers and source non-interleaved video files, it would list this source video files as if they existed in the target containers file format.

• Upon request of such a non existing file, the VFS would wrap the source files on-the-fly and serve them.

Page 4: Virtual File System for Streaming Video

Software context • Our system will consist of 2 parts: – Virtual file system over Linux file system – a file

system that will allow to simulate file existence. This system will also allow to monitor and configure our application in terms of caching, quality control etc...

– A transcoder - a module that will wrap\unwrap from each format to each format.

Page 5: Virtual File System for Streaming Video

2. Functional requirements• 2.1 Virtual File System – The VFS should list virtual video files according to

pre-configured rules. – The VFS should serve virtual video files as if the they

existed. Upon request to read such a file, the Transcoding module should wrap the source non-interleaved video files, and then the VFS should serve it.

– The VFS should allow write operations on interleaved files. Upon such a request, the VFS should pass the video file to the Transcoding module for unwrapping and writing of non-interleaved files.

Page 6: Virtual File System for Streaming Video

2. Functional requirements• 2.2 Transcoder – Transcoder should wrap/unwrap

non-interleaved/interleaved video files. Scope of target file formats (containers) are: MPEG4, MXF, MOV (Quicktime) ordered by priority. Scope of supporting codecs are: H264, DV, MPEG2

ordered by priority .

Page 7: Virtual File System for Streaming Video

2. Functional requirements• 2.3 Configuring – The system should allow configuration of these

parameters: • Source files directory • Target files naming convention and container formats

Page 8: Virtual File System for Streaming Video

3 .Non-Functional Requirements • 3.1 Performance constraints – Speed - The system must be able to serve several

streams in real time. The least is 1 stream at a specific bit rate with standard hardware.

– Capacity - The VFS should convert for many clients at the same time.

– Security - The assumption is that the environment is already in a secured. Hence there is no security constraints.

– Portability - The application must not be portable. The system is designed to work over Linux and will not be tested on other operating systems.

Page 9: Virtual File System for Streaming Video

3 .Non-Functional Requirements • 3.1 Performance constraints – Reliability - It is essential that the system will work

without errors and will not require reload especially assuming that it should work all the time.

– Availability - The system should be available all the time.– Usability - Due to the fact that the system is essentially a

VFS, its interface is as any other file system. Hence there is no usability considerations on this interface. The monitoring interface should be easy to understand and well documented. Moreover, the configuration file should be written in a <property,value> format that is easily editable.

Page 10: Virtual File System for Streaming Video

3 .Non-Functional Requirements • 3.2 Platform constraints – 3.2.1 Operating System• The system will only work under Linux with kernel

version of 2.6.X. – 3.2.2 Extra Dependencies• ffmpeg• Fuse

Page 11: Virtual File System for Streaming Video

4 Usage Scenarios

• 4.1 User Profiles - The Actors– Reader - the reader is any entity that sends a

request for reading a virtual file. For example: Adobe Flash Media Server or an editing software such as Avid video editor. The reader can also ask for meta-data and status on the file.

–Writer - the writer is an entity that requests from the VFS to write a video file (interleaved). All interleaved files should be store in elementary non-interleaved file format.

Page 12: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.1 Mount VFS system• Main Actor: Admin • Short description: Mount a Linux directory in which all media files are going to be

available there • Pre-Conditions: The configuration file is filled with at least the minimum required

parameters: Source video files directory, Target mount directory, Wrapping rules• Post-Conditions: VFS is mounted at the specified mount directory, ready for I/O

operations• Normal course of events:

– 1.Admin: requests to mount the system– 2.The system: validates parameters from configuration. – 3.The system: tries to mount onto the defined directory

• Alternative course 1:Invalid parameters where found:– The system prints an "Invalid parameters" message with the corresponding invalid

parameter(s) and exits.• Alternative course 2:Unable to mount on the specified directory:

– The system prints an "Unable to mount on the specified directory" message and exits

Page 13: Virtual File System for Streaming Video

4.2 Use-Cases

Page 14: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.2 Unmount VFS system• Main Actor: Admin • Short description: Unmount the VFS from a specified directory• Pre-Conditions: There is a mounted VFS on the specified directory ,

No files are currently read or written in the mounted directory• Post-Conditions: The VFS is no longer available at the configured

mount directory• Normal course of events:

– Admin: requests to unmount the system – The system: sends a shut down signal to Dalet Server– The system: tries to unmount from the defined directory

• Alternative course 1:Cannot umount directory:The system prints a "Cannot unmount directory because files: <list of files> are opened" message. Directory remains mounted.

Page 15: Virtual File System for Streaming Video

4.2 Use-Cases

Page 16: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.3 Directory Listing• Main Actor: Reader • Short description: The reader requests to list all available

files for reading (virtual interleaved files) from the VFS• Pre-Conditions: The VFS is mounted• Post-Conditions: None• Normal course of events:

– Reader: requests to list the files in the virtual directory– The system: calculated on-the-fly any available files for reading– The system: returns the listing to the upper FS layer

Page 17: Virtual File System for Streaming Video

4.2 Use-Cases

Page 18: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.4 Open File• Main Actor: Reader/Writer• Short description: A file was asked to be opened from the VFS• Pre-Conditions: The VFS is mounted.

For reading: Virtual file exists and can be wrapped. For writing: Interleaved file can be unwrapped.

• Post-Conditions: File is opened• Normal course of events:

– Reader: requests to open file X – The system: "open it" and return.

• Alternative course 1:The virtual file does not exists:– return to the upper FS layer a "FILE_DOES_NOT_EXISTS_ERROR"

• Alternative course 2:The file is locked for reading (because of real or virtual file system):

return to the upper FS layer a "FILE_IS_CURRENTLY_LOCKED_ERROR" • Alternative course 3:Unknown file format:

cannot wrap/unwrap to the required format.return to the upper FS layer a "WRAP_UNWRAP_ERROR"

Page 19: Virtual File System for Streaming Video

4.2 Use-Cases

Page 20: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.5 Read File • Main Actor: Reader • Short description: A file was asked to be read from offset OFFSET and for a buffer length of N• Pre-Conditions:

– The file is open – Valid OFFSET – The Transcoder can wrap the requested video data

• Post-Conditions: The Transcoder converts the requested video file to the correct format and returns to the VFS which in turn returns to the upper layer FS a buffer from offset OFFSET and a buffer length of at most N bytes.

• Normal course of events:– 1. Reader: requests to read data from a previously opened file.– 2. The system: wraps the required video file and returns a buffer of at most N bytes from offset OFFSET.

• Alternative course 1:Illegal offset:Illegal offset error will return from command.

• Alternative course 2:File not open:An file not open error will return.

• Alternative course 3:Wrapping error:cannot wrap buffer (input is corrupted). returns cannot convert data error.

Page 21: Virtual File System for Streaming Video

4.2 Use-Cases

Page 22: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.6 Write file• Main Actor: Writer • Short description: A file was asked to be written from offset OFFSET and for a buffer

length of N• Pre-Conditions:

– The file is open. – Buffer contains interleaved video data – The Transcoder can unwrap the video data

• Post-Conditions: The file is written in Dalet's storage in elementary files format.• Normal course of events:

– 1. Writer: requests to write data to a previously opened file.– 2. The system: unwraps the given video file and stores it in the storage unit

• Alternative course 1:The file is locked(because of real or virtual file system):return to the upper FS layer a "FILE_IS_CURRENTLY_LOCKED_ERROR"

• Alternative course 2:File not open:An file not open error will return.

• Alternative course 3:Unwrapping error:cannot unwrap buffer (input is corrupted). returns cannot convert data error.

Page 23: Virtual File System for Streaming Video

4.2 Use-Cases

Page 24: Virtual File System for Streaming Video

4.2 Use-Cases• Name of used case: 4.2.7 Monitor system• Main Actor: Admin• Short description: An admin is asking to view to system

state of resources. Including RAM,CPU, bit rate. The VFS is asking hardware for information. and return it to query asked.

• Pre-Conditions: The system is mounted and running. • Post-Conditions: None. • Normal course of events:

– 1. Admin: requests VFS state information. – 2. The system: VFS returns an answer to to monitor about it's

state.

Page 25: Virtual File System for Streaming Video

4.2 Use-Cases

Page 26: Virtual File System for Streaming Video

THE END