/** * Creates a fully populated 'moov' box with all child boxes. Child boxes are: * <ul> * <li>{@link #createMvhd(com.googlecode.mp4parser.authoring.Movie) mvhd}</li> * <li>{@link #createMvex(com.googlecode.mp4parser.authoring.Movie) mvex}</li> * <li>a {@link #createTrak(com.googlecode.mp4parser.authoring.Track, com.googlecode.mp4parser.authoring.Movie) trak} for every track</li> * </ul> * * @param movie the concerned movie * @return fully populated 'moov' */ protected Box createMoov(Movie movie) { MovieBox movieBox = new MovieBox(); movieBox.addBox(createMvhd(movie)); movieBox.addBox(createMvex(movie)); for (Track track : movie.getTracks()) { movieBox.addBox(createTrak(track, movie)); } // metadata here return movieBox; }
/** * Creates a fully populated 'moov' box with all child boxes. Child boxes are: * <ul> * <li>{@link #createMvhd(com.googlecode.mp4parser.authoring.Movie) mvhd}</li> * <li>{@link #createMvex(com.googlecode.mp4parser.authoring.Movie) mvex}</li> * <li>a {@link #createTrak(com.googlecode.mp4parser.authoring.Track, com.googlecode.mp4parser.authoring.Movie) trak} for every track</li> * </ul> * * @param movie the concerned movie * @return fully populated 'moov' */ protected Box createMoov(Movie movie) { MovieBox movieBox = new MovieBox(); movieBox.addBox(createMvhd(movie)); movieBox.addBox(createMvex(movie)); for (Track track : movie.getTracks()) { movieBox.addBox(createTrak(track, movie)); } // metadata here return movieBox; }
/** * Creates a fully populated 'moov' box with all child boxes. Child boxes are: * <ul> * <li>{@link #createMvhd(com.googlecode.mp4parser.authoring.Movie) mvhd}</li> * <li>{@link #createMvex(com.googlecode.mp4parser.authoring.Movie) mvex}</li> * <li>a {@link #createTrak(com.googlecode.mp4parser.authoring.Track, com.googlecode.mp4parser.authoring.Movie) trak} for every track</li> * </ul> * * @param movie the concerned movie * @return fully populated 'moov' */ protected Box createMoov(Movie movie) { MovieBox movieBox = new MovieBox(); movieBox.addBox(createMvhd(movie)); for (Track track : movie.getTracks()) { movieBox.addBox(createTrak(track, movie)); } movieBox.addBox(createMvex(movie)); // metadata here return movieBox; }
protected MovieBox createMovieBox(Mp4Movie movie) { MovieBox movieBox = new MovieBox(); MovieHeaderBox mvhd = new MovieHeaderBox(); mvhd.setCreationTime(new Date()); mvhd.setModificationTime(new Date()); mvhd.setMatrix(Matrix.ROTATE_0); long movieTimeScale = getTimescale(movie); long duration = 0; for (Track track : movie.getTracks()) { long tracksDuration = track.getDuration() * movieTimeScale / track.getTimeScale(); if (tracksDuration > duration) { duration = tracksDuration; } } mvhd.setDuration(duration); mvhd.setTimescale(movieTimeScale); mvhd.setNextTrackId(movie.getTracks().size() + 1); movieBox.addBox(mvhd); for (Track track : movie.getTracks()) { movieBox.addBox(createTrackBox(track, movie)); } return movieBox; }
protected MovieBox createMovieBox(Mp4Movie movie) { MovieBox movieBox = new MovieBox(); MovieHeaderBox mvhd = new MovieHeaderBox(); mvhd.setCreationTime(new Date()); mvhd.setModificationTime(new Date()); mvhd.setMatrix(Matrix.ROTATE_0); long movieTimeScale = getTimescale(movie); long duration = 0; for (Track track : movie.getTracks()) { long tracksDuration = track.getDuration() * movieTimeScale / track.getTimeScale(); if (tracksDuration > duration) { duration = tracksDuration; } } mvhd.setDuration(duration); mvhd.setTimescale(movieTimeScale); mvhd.setNextTrackId(movie.getTracks().size() + 1); movieBox.addBox(mvhd); for (Track track : movie.getTracks()) { movieBox.addBox(createTrackBox(track, movie)); } return movieBox; }
protected MovieBox createMovieBox(Mp4Movie movie) { MovieBox movieBox = new MovieBox(); MovieHeaderBox mvhd = new MovieHeaderBox(); mvhd.setCreationTime(new Date()); mvhd.setModificationTime(new Date()); mvhd.setMatrix(Matrix.ROTATE_0); long movieTimeScale = getTimescale(movie); long duration = 0; for (Track track : movie.getTracks()) { long tracksDuration = track.getDuration() * movieTimeScale / track.getTimeScale(); if (tracksDuration > duration) { duration = tracksDuration; } } mvhd.setDuration(duration); mvhd.setTimescale(movieTimeScale); mvhd.setNextTrackId(movie.getTracks().size() + 1); movieBox.addBox(mvhd); for (Track track : movie.getTracks()) { movieBox.addBox(createTrackBox(track, movie)); } return movieBox; }
mBox.addBox(userDataBox); MetaBox metaBox = new MetaBox(); userDataBox.addBox(metaBox);