protected void extractLanguage(List<Document> ttmls) { String firstLang = null; for (Document ttml : ttmls) { String lang = getLanguage(ttml); if (firstLang == null) { firstLang = lang; trackMetaData.setLanguage(Locale.forLanguageTag(lang).getISO3Language()); } else if (!firstLang.equals(lang)) { throw new RuntimeException("Within one Track all sample documents need to have the same language"); } } }
public AC3TrackImpl(DataSource dataSource, String lang) throws IOException { super(dataSource.toString()); this.dataSource = dataSource; this.trackMetaData.setLanguage(lang); samples = readSamples(); audioSampleEntry = createAudioSampleEntry(); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(audioSampleEntry.getSampleRate()); // Audio tracks always use samplerate as timescale trackMetaData.setVolume(1); }
/** * Creates a new AMF0 track from * * @param rawSamples raw samples of the track */ public Amf0Track(Map<Long, byte[]> rawSamples) { super("amf0"); this.rawSamples = new TreeMap<>(rawSamples); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setTimescale(1000); // Text tracks use millieseconds trackMetaData.setLanguage("eng"); amf0 = new ActionMessageFormat0SampleEntryBox(); amf0.setDataReferenceIndex(1); }
public static void main(String[] args) throws IOException { String audioDeutsch = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-deutsch-audio.mp4"; String audioEnglish = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-english-audio.mp4"; String video = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-video.mp4"; Movie countVideo = MovieCreator.build(video); Movie countAudioDeutsch = MovieCreator.build(audioDeutsch); Movie countAudioEnglish = MovieCreator.build(audioEnglish); Track audioTrackDeutsch = countAudioDeutsch.getTracks().get(0); audioTrackDeutsch.getTrackMetaData().setLanguage("deu"); Track audioTrackEnglish = countAudioEnglish.getTracks().get(0); audioTrackEnglish.getTrackMetaData().setLanguage("eng"); countVideo.addTrack(audioTrackDeutsch); countVideo.addTrack(audioTrackEnglish); { Container out = new DefaultMp4Builder().build(countVideo); FileOutputStream fos = new FileOutputStream(new File("output.mp4")); out.writeContainer(fos.getChannel()); fos.close(); } { FragmentedMp4Builder fragmentedMp4Builder = new FragmentedMp4Builder(); fragmentedMp4Builder.setFragmenter(new SyncSampleIntersectFinderImpl(countVideo, null, -1)); Container out = fragmentedMp4Builder.build(countVideo); FileOutputStream fos = new FileOutputStream(new File("output-frag.mp4")); out.writeContainer(fos.getChannel()); fos.close(); } }
public WebVttTrack(InputStream is, String trackName, Locale locale) throws IOException { super(trackName); trackMetaData.setTimescale(1000); trackMetaData.setLanguage(locale.getISO3Language()); long mediaTimestampUs = 0;
private void parse() throws IOException { if (!readVariables()) { throw new IOException(); } audioSampleEntry = new AudioSampleEntry(type); audioSampleEntry.setChannelCount(channelCount); audioSampleEntry.setSampleRate(samplerate); audioSampleEntry.setDataReferenceIndex(1); audioSampleEntry.setSampleSize(16); audioSampleEntry.addBox(ddts); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(samplerate); // Audio tracks always use samplerate as timescale }
trackMetaData.setLanguage(lang); trackMetaData.setVolume(1);
trackMetaData.setLanguage(lang); trackMetaData.setVolume(1);
trackMetaData.setLanguage(lang); trackMetaData.setTimescale(timescale); trackMetaData.setWidth(width);
trackMetaData.setLanguage(mdhd.getLanguage());
protected void extractLanguage(List<Document> ttmls) { String firstLang = null; for (Document ttml : ttmls) { String lang = getLanguage(ttml); if (firstLang == null) { firstLang = lang; trackMetaData.setLanguage(Locale.forLanguageTag(lang).getISO3Language()); } else if (!firstLang.equals(lang)) { throw new RuntimeException("Within one Track all sample documents need to have the same language"); } } }
public AC3TrackImpl(DataSource dataSource, String lang) throws IOException { super(dataSource.toString()); this.dataSource = dataSource; this.trackMetaData.setLanguage(lang); samples = readSamples(); audioSampleEntry = createAudioSampleEntry(); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(audioSampleEntry.getSampleRate()); // Audio tracks always use samplerate as timescale trackMetaData.setVolume(1); }
/** * Creates a new AMF0 track from * * @param rawSamples raw samples of the track */ public Amf0Track(Map<Long, byte[]> rawSamples) { super("amf0"); this.rawSamples = new TreeMap<>(rawSamples); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setTimescale(1000); // Text tracks use millieseconds trackMetaData.setLanguage("eng"); amf0 = new ActionMessageFormat0SampleEntryBox(); amf0.setDataReferenceIndex(1); }
public WebVttTrack(InputStream is, String trackName, Locale locale) throws IOException { super(trackName); trackMetaData.setTimescale(1000); trackMetaData.setLanguage(locale.getISO3Language()); long mediaTimestampUs = 0;
if (inputFile.getName().endsWith(".aac")) { Track track = new AACTrackImpl(new FileDataSourceImpl(inputFile)); track.getTrackMetaData().setLanguage(getFilesLanguage(inputFile).getISO3Language()); tracks.add(track); } else if (inputFile.getName().endsWith(".ac3")) { Track track = new AC3TrackImpl(new FileDataSourceImpl(inputFile)); track.getTrackMetaData().setLanguage(getFilesLanguage(inputFile).getISO3Language()); tracks.add(track); } else if (inputFile.getName().endsWith(".h264")) { } else if (inputFile.getName().endsWith(".ec3")) { Track track = new EC3TrackImpl(new FileDataSourceImpl(inputFile)); track.getTrackMetaData().setLanguage(getFilesLanguage(inputFile).getISO3Language()); tracks.add(track); } else if (inputFile.getName().endsWith(".dtshd")) { Track track = new DTSTrackImpl(new FileDataSourceImpl(inputFile)); track.getTrackMetaData().setLanguage(getFilesLanguage(inputFile).getISO3Language()); tracks.add(track); } else {
private void parse() throws IOException { if (!readVariables()) { throw new IOException(); } audioSampleEntry = new AudioSampleEntry(type); audioSampleEntry.setChannelCount(channelCount); audioSampleEntry.setSampleRate(samplerate); audioSampleEntry.setDataReferenceIndex(1); audioSampleEntry.setSampleSize(16); audioSampleEntry.addBox(ddts); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(samplerate); // Audio tracks always use samplerate as timescale }
trackMetaData.setLanguage(lang); trackMetaData.setVolume(1);
if (outOptions.containsKey("lang")) { locale = Locale.forLanguageTag(outOptions.remove("lang")); t.getTrackMetaData().setLanguage(locale.getISO3Language()); } else { locale = Locale.forLanguageTag(t.getTrackMetaData().getLanguage());
trackMetaData.setLanguage(lang); trackMetaData.setVolume(1);
trackMetaData.setLanguage(lang); trackMetaData.setTimescale(timescale); trackMetaData.setWidth(width);