mp4parser icon indicating copy to clipboard operation
mp4parser copied to clipboard

how can i merge aac and a mp4?

Open aliudurim opened this issue 8 years ago • 3 comments

Hi, Sannies

This is the issus.I 'm trying to merge acc with mp4, but i have a exception.

My code:

String videoF = Environment.getExternalStorageDirectory() + "/mp4parser/video.mp4"; String audioF = Environment.getExternalStorageDirectory() + "/mp4parser/audio.aac"; String autputVideo =Environment.getExternalStorageDirectory() + "/mp4parser/output.mp4";

Movie m = MovieCreator.build(videoF); AACTrackImpl aac1 = new AACTrackImpl(new FileDataSourceImpl(audioF)); m.addTrack(aac1);

Container out = new DefaultMp4Builder().build(m); FileChannel fc = new FileOutputStream(new File(autputVideo)).getChannel(); out.writeContainer(fc); fc.close();

Exception:

java.io.IOException: Expected Start Word 0xfff 01-19 16:21:34.050 10891-10891/com.aliudurim.sandbox W/System.err: at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.readADTSHeader(AACTrackImpl.java:293) 01-19 16:21:34.050 10891-10891/com.aliudurim.sandbox W/System.err: at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.readSamples(AACTrackImpl.java:325) 01-19 16:21:34.050 10891-10891/com.aliudurim.sandbox W/System.err: at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.(AACTrackImpl.java:142) 01-19 16:21:34.050 10891-10891/com.aliudurim.sandbox W/System.err: at com.googlecode.mp4parser.authoring.tracks.AACTrackImpl.(AACTrackImpl.java:135)

aliudurim avatar Jan 19 '16 15:01 aliudurim

@aliudurim did you solve it? thanks

saiday avatar Sep 20 '16 13:09 saiday

Did this code solve your issue/ query?

sachinharne avatar Jan 04 '20 11:01 sachinharne

@saiday did you solve it? thanks @sachinharne Did this code solve your issue/ query?

Yes, I did and you can find a simple solution to the code below.

    Movie countVideo = MovieCreator.build(video);
    Movie countAudioEnglish = MovieCreator.build(audio);

    Track audioTrackEnglish = countAudioEnglish.getTracks().get(0);

    countVideo.addTrack(audioTrackEnglish);

    Container out = new DefaultMp4Builder().build(countVideo);
    FileOutputStream fos = new FileOutputStream(new File(outputVideo));
    out.writeContainer(fos.getChannel());
    fos.close();

aliudurim avatar Jan 07 '20 09:01 aliudurim