package com.googlecode.mp4parser;
import com.coremedia.iso.IsoFile;
import com.googlecode.mp4parser.authoring.Movie;
import com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder;
import com.googlecode.mp4parser.authoring.container.mp4.MovieCreator;
import com.googlecode.mp4parser.authoring.tracks.TextTrackImpl;
import com.googlecode.mp4parser.srt.SrtParser;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Adds subtitles.
*/
public class SubTitleExample {
public static void main(String[] args) throws IOException {
String audioEnglish = RemoveSomeSamplesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-video.mp4";
Movie countVideo = MovieCreator.build(new FileInputStream(audioEnglish).getChannel());
TextTrackImpl subTitleEng = new TextTrackImpl();
subTitleEng.getTrackMetaData().setLanguage("eng");
subTitleEng.getSubs().add(new TextTrackImpl.Line(5000, 6000, "Five"));
subTitleEng.getSubs().add(new TextTrackImpl.Line(8000, 9000, "Four"));
subTitleEng.getSubs().add(new TextTrackImpl.Line(12000, 13000, "Three"));
subTitleEng.getSubs().add(new TextTrackImpl.Line(16000, 17000, "Two"));
subTitleEng.getSubs().add(new TextTrackImpl.Line(20000, 21000, "one"));
countVideo.addTrack(subTitleEng);
TextTrackImpl subTitleDeu = SrtParser.parse(SubTitleExample.class.getResourceAsStream("/count-subs-deutsch.srt"));
subTitleDeu.getTrackMetaData().setLanguage("deu");
countVideo.addTrack(subTitleDeu);
IsoFile out = new DefaultMp4Builder().build(countVideo);
FileOutputStream fos = new FileOutputStream(new File("output.mp4"));
out.getBox(fos.getChannel());
fos.close();
}
}
|