I will not be given in details how I matured before writing such a system, I’ll just say that I started about 8-9 months ago. At the moment we are not talking about any finished version of the product, but to show and even more to tell :) nevertheless there is something.
System features1. The system has 5 types of files: video, audio, image files, text files and all others that are not included in the 4th previous ones. A little more about each type of file:
1.1 Video files - the system allows you to use the following file formats as source files: mpeg, avi, mkv, flv, mov, 3gp, mp4 and convert any of these formats to the following: mpeg, avi, flv, mov, 3gp, mp4 for PSP and iPod / iPhone. At the same time, the system allows you to customize the conversion parameters, such as: resolution, audio and video bit rates. So, for this type of files, a functionality has been implemented for cutting screenshots, previews and thumbnails;
1.2 Audio files - the system allows you to convert files between the 3rd popular formats mp3, ogg and wav, while you can specify the bitrate. Also for this type of files the preview generation functionality is implemented;
1.3 Image files - the system allows you to convert files between formats: jpg, gif, bmp, png, while you can specify the resolution, there is also a functionality for generating tumbneils;
1.4 Text files - the system allows using the following formats as source files: txt, html and fb2 and convert them to formats: txt, html, fb2 and pdf. Currently working with two encodings has been tested: utf-8 and windows-1251;
1.5 Other files - this includes files of all types that are not included in the previous 4th. The system allows only archiving of such files.
2. All actions for converting files are consolidated into a single conversion process, actions in which are broken down into tasks. The process as a whole and each task separately is logged both in the database for status display and in text files for the possibility of more detailed monitoring of the conversion process.
')
3. Any of the conversion processes can be launched both in several threads and on several servers simultaneously, thus achieving distributed processing;
4. Implemented the ability to store all types of files on different servers, return from different servers while in development. Currently files are uploaded to the server only via FTP;
5. Implemented the ability to create a theoretically unlimited number of sites on one admin panel. For each site it is possible to create a theoretically unlimited number of designs. Smarty is used as a template engine in the system;
6. The system is implemented multilingual. All code and database tables in utf-8;
7. The ability to edit descriptive information for each file in the system is implemented. You can specify a name and description for the file in different languages, there is also the ability to add keywords;
8. Implemented the ability to publish a file on the site, i.e. the file does not reach all sites automatically, you can choose on which sites to publish it, and on which not;
Plans for the near future1. Introduction of payment systems;
2. Distribution of files from different servers and support for CDN.
Software RequirementsCurrently the requirements are as follows:
1. Linux OS, tested on Ubuntu;
2. Apache + mod_rewrite;
3. MySQL 5.0 or higher;
4. PHP 5.2 or higher + mbstring, gd 2.0, curl, CLI SAPI.
To convert video and audio files in the system have all the necessary binary files.
In general, that's all, if you are suddenly interested in someone, I can show the front end, but I want to warn you right away that he is still at work and on my computer, i.e. available online not 24 hours a day.
Admin screensForm for selecting conversion parameters:

Page to edit the descriptive information of the video file:


Server Encoder Settings Page:

Page for working with the file tree:

Page for publishing files on sites:

Page for setting up servers for storing files:

Page to display information about the conversion process:
Screenshots of the siteHome page of the site:

Search page:

Video Watch Page:

