Windows 10 Desktop App to Extract Data from MP4 Video and MP3 Audio Files

Job ID: 38077845

Budget: $25 – $100 USD

I would like a stand-alone Windows 10 executable file that extracts and saves the following data from MP4 video and/or MP3 audio files:

1. number of frames in the file
2. amplitude (how loud) for any frame based on frame number
3. frequency (pitch in hertz) for any frame based on frame number
4. size (in bytes) of the jpeg for any frame based on frame number
5. jpeg for any frame based on frame number

It works as follow:

1. The user browses to a TXT file.
2. Each line in the TXT file lists the:
a. location of an MP4 video or MP3 audio file [B below]
b. data to be extracted from the file [D,E,F below]
c. location where the extracted data is to be saved [C below]
3. As each file is processed, a line is displayed indicating the line and file, data saved and errors that occurred.

FORMAT OF THE TXT FILE

The TXT file is divided into lines delimited by a sequence of 2 characters: ascii characters 13 carriage return and 10 line feed.
Each line is divided into 6 fields delimited by ascii character 9 horizontal tab.
The fields and : example values are:
A. Line number integer: 123
B. Path to MP4 video or MP3 audio file: C:\personal\vids\vacation.mp4
C. Directory to store the extracted data in: C:\app\save\pers
D. Whether or not (Y or N) to save the number of frames in the file: Y
E. Whether or not (Y or N) to save the amplitude, frequency and size of the jpeg of every frame: N
F. A list of frame numbers separated by commas from which to retrieve their jpeg, or just the letter N: 1,2,1249,1250

Each line in the TXT file is processed and does the following using the example values above and assuming the file contains exactly 1250 frames:

If D="Y" we create in C a file name ("N" concatenated with line number dot txt) containing string (number of frames):

C:\app\save\pers\N123.txt = "1250" [number of frames]

If E="Y" we create in C a file name ("A" concatenated with line number dot txt) containing string (amplitude of frame 1):(frequency of frame 1):(size of jpeg 1),(amplitude of frame 2):(frequency of frame 2):(size of jpeg 2) etc. for all frames. So if frame 1 has amplitude 11, frequency 22 and jpeg size 33, and frame 2 has amplitude 44, frequency 55 and jpeg size 66 then we create:

C:\app\save\pers\A123.txt = "11:22:33,44:55:66, . . ." [amplitudes, frequencies and jpeg sizes]

If F does not = "N": for each frame number x in F we create in C a jpeg file with its name composed of the following strings concatenated "F" + line number + "n" + frame number + ".jpg":

C:\app\save\pers\F123n1.jpg = Frame # 1
C:\app\save\pers\F123n2.jpg = Frame # 2
C:\app\save\pers\F123n1249.jpg = Frame # 1249
C:\app\save\pers\F123n1250.jpg = Frame # 1250

That's it!

To apply, first answer these questions as best you can to prove you're not a spam bot and that you know how to implement this:

1. Any improvements that you can suggest in these specifications and what the trade-offs are.
2. How you would implement this app, in particular, how you would extract the 5 values.
3. Any questions that you have at this point.

Answer any of these and then I would be glad to talk and discuss how we can make this happen.

Thanks.

Charlie