This project is dedicated to the design of a program that will deal with mass conversions of videos from a complex directory hierarchy. Although some of them are already very robust, it remains a fact that most video converters do not have the capability to convert videos and put them on a different directory but while preserving the relative directory hierarchy.
For example, I am converting videos from a folder with a complex hierarchy of sub folders. I want those videos from the sub folder of my folder to also be converted but their final location should be relative their parent path. In this example, consider I'll be converting all of the videos from my C:\Videos\Vacation folder to avi. But I want the same directory structure to be preserved at its destination directory.
Source Directory:
C:\Videos\Vacation
Files and subdirectory Videos:
C:\Videos\Vacation\Cagayan Valley\restaurant.avi
C:\Videos\Vacation\Cagayan Valley\goalkeeper.avi
C:\Videos\Vacation\Cagayan Valley\hundredths.avi
C:\Videos\Vacation\Cagayan Valley\roadtrip\soundtrip.avi
C:\Videos\Vacation\Cagayan Valley\roadtrip\lone.avi
C:\Videos\Vacation\Cagayan Valley\roadtrip\cascade.avi
C:\Videos\Vacation\Tawi-tawi\island\soundtrip.avi
C:\Videos\Vacation\Tawi-tawi\mainlang\lone.avi
C:\Videos\Vacation\Tawi-tawi\house\cascade.avi
C:\Videos\Vacation\Tawi-tawi\house\rain.avi
C:\Videos\Vacation\Tawi-tawi\house\garden.avi
Destination Directory
E:\Videos\Converts\Vacation
Files and subdirectory destinations:
E:\Videos\Converts\Vacation\Cagayan Valley\restaurant.mp4
E:\Videos\Converts\Vacation\Cagayan Valley\goalkeeper.mp4
E:\Videos\Converts\Vacation\Cagayan Valley\hundredths.mp4
E:\Videos\Converts\Vacation\Cagayan Valley\roadtrip\soundtrip.mp4
E:\Videos\Converts\Vacation\Cagayan Valley\roadtrip\lone.mp4
E:\Videos\Converts\Vacation\Cagayan Valley\roadtrip\cascade.mp4
E:\Videos\Converts\Vacation\Tawi-tawi\island\soundtrip.mp4
E:\Videos\Converts\Vacation\Tawi-tawi\mainlang\lone.mp4
E:\Videos\Converts\Vacation\Tawi-tawi\house\cascade.mp4
E:\Videos\Converts\Vacation\Tawi-tawi\house\rain.mp4
E:\Videos\Converts\Vacation\Tawi-tawi\house\garden.mp4
Instead of actually assigning the destination and conversion parameters for each video. The program should only ask for the source folder. It will then scour all of its sub folders for videos. It will also ask for the conversion parameter that will be applied for all the videos and the destination folder. Then depending on which file extensions were enabled by the user, the program can immediately create a batch job which will convert the videos to their respective destinations.
In order to do this I have to take in to account the changes for each file to convert. Because much of the actual conversion algorithm will be taken care by ffmpeg, the organization of the process is what's unique with this project. Since we're using ffmpeg, most of the CLI parameters are taken from the WinFF release of the Windows GUI version of ffmpeg. For the moment you are required to install the WInFF.
In order to use the prototype for this project, you can download it from the attached files below. The release.zip contains the binary executables. The source.zip contains the source code. You'll need Visual Studio 2008 with Visual Basic.Net in order to open the code. And for the moment, in order to use the program, you are required to download and install WinFF at your drive C:\Program Files folder. The future release of this project will hopefully get rid of these limitations.