Find Jobs
Hire Freelancers

Android MP4 Muxer (MPEG-4 Encoder)

$500-5000 USD

Cancelled
Posted over 13 years ago

$500-5000 USD

Paid on delivery
Given are raw H.264 video and AAC audio files, which have to muxed (encoded) into a new valid MP4 (MPEG-4 container) file. This is not a project for Android beginners! Only expert Android/Java programmers will be able to handle it. We provide several example files at the beginning and during the project, which have to converted to valid MP4 files that will play with the standard Android MediaPlayer class. ## Deliverables Given are raw H.264 video and AAC audio files, which have to muxed (encoded) into a new valid MP4 (MPEG-4 container) file. This is not a project for Android beginners! Only expert Android/Java programmers will be able to handle it. We provide several example files at the beginning and during the project, which have to converted to valid MP4 files that will play with the standard Android MediaPlayer class. The program should be developed in Java. The transformation must be very performant, e.g. no garbage collection may be triggered while muxing(processing) very large files! Minimal CPU consumption. Stream-based processing (low memory consumption). The programm will receive multiple raw video&audio files as streams. Video and audio must be in-sync at all times in the resulting MP4 file. After the processing has started, more files may be added that will have muxed to the same MP4 file. In other words, the muxer must start processing data before all data/files are available. The muxer must start writing to the output stream as soon as sufficient data is available. The basic interface we need looks like this (first draft, maybe it will make sense to adjust the interface during the project if you and us find better solutions): interface Mp4Muxer { /** Sets the duration of the MP4 (as seen in media players). */ void setDuration(int/float/double/... durationOfMp4); /** Adds a raw video and a correspending raw audio file to the processing queue. */ /** Further files may be added after startMuxing has been called (processing already started). */ void addRawFiles(InputStream videoFile, InputStream audioFile); /** Starts processing of the queue, does generate output to the stream immediately. */ void startMuxing(OutputStream out); /** Marks the end of processing, no further files will be added. Any pending data must be flushed into the stream */ void stopMuxing(); } Source Code will be reviewed by senior Java developers and feedback will be given that must be considered. Basic coding guidelines must be followed: * Clean object-oriented design * No duplicate code * Line length: 120 * 4 spaces indention * Classes and variable should be exactly named after what they do or stand for (speaking names, no abbreviations) * Classes should not grow over 800 lines, methods not over 30 lines (reconsider design if limit is reached) This is a commercial project and open source code may only be used if the license is OK (no GPL etc.) and we agree to it. The result (including source code and libraries) may not be reused for other projects/clients; it must be exclusive to us. NDA is required. If everything goes well, there are good chances that we will cooperate with you in future projects.
Project ID: 3623280

About the project

3 proposals
Remote project
Active 14 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
3 freelancers are bidding on average $817 USD for this job
User Avatar
See private message.
$752.25 USD in 10 days
2.7 (15 reviews)
4.6
4.6
User Avatar
See private message.
$850 USD in 10 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$850 USD in 10 days
0.0 (3 reviews)
2.5
2.5

About the client

Flag of GERMANY
Germany
0.0
0
Member since Aug 4, 2010

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.