package com.googlecode.mp4parser; import org.apache.commons.codec.binary.Base64; import org.mp4parser.Container; import org.mp4parser.muxer.Movie; import org.mp4parser.muxer.Track; import org.mp4parser.muxer.builder.DefaultFragmenterImpl; import org.mp4parser.muxer.builder.FragmentedMp4Builder; import org.mp4parser.muxer.container.mp4.MovieCreator; import org.mp4parser.muxer.tracks.Amf0Track; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; import java.util.HashMap; import java.util.Properties; /** * Shows a simple use of the AMF0Track */ public class MuxVideoWithAmf0 { public static void main(String[] args) throws IOException { String videoFile = MuxVideoWithAmf0.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/example-sans-amf0.mp4"; Movie video = MovieCreator.build(videoFile); Properties props = new Properties(); props.load(MuxVideoWithAmf0.class.getResourceAsStream("/amf0track.properties")); HashMap<Long, byte[]> samples = new HashMap<Long, byte[]>(); for (String key : props.stringPropertyNames()) { samples.put(Long.parseLong(key), Base64.decodeBase64(props.getProperty(key))); } Track amf0Track = new Amf0Track(samples); amf0Track.getTrackMetaData(); video.addTrack(amf0Track); FragmentedMp4Builder fragmentedMp4Builder = new FragmentedMp4Builder(); fragmentedMp4Builder.setFragmenter(new DefaultFragmenterImpl(2)); Container out = fragmentedMp4Builder.build(video); FileOutputStream fos = new FileOutputStream(new File(String.format("output.mp4"))); FileChannel fc = fos.getChannel(); out.writeContainer(fc); fos.close(); } }