public int getTrackCount() { return getBoxes(TrackBox.class).size(); }
public static void main(String[] args) throws IOException { String filename = GetDuration.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-video.mp4"; IsoFile isoFile = new IsoFile(filename); double lengthInSeconds = (double) isoFile.getMovieBox().getMovieHeaderBox().getDuration() / isoFile.getMovieBox().getMovieHeaderBox().getTimescale(); System.err.println(lengthInSeconds); }
log.debug("moov children: {}", moov.getBoxes().size()); MP4Reader.dumpBox(moov); MovieHeaderBox mvhd = moov.getMovieHeaderBox(); log.debug("Seconds {}", lengthInSeconds); log.debug("Tracks: {}", moov.getTrackCount()); List<TrackBox> tracks = moov.getBoxes(TrackBox.class); // trak for (TrackBox trak : tracks) { if (log.isDebugEnabled()) {
long sizeBefore = moov.getSize(); long offset = 0; for (Box box : isoFile.getBoxes()) { if ((userDataBox = Path.getPath(moov, "udta")) == null) { userDataBox = new UserDataBox(); moov.addBox(userDataBox); ilst.addBox(nam); long sizeAfter = moov.getSize(); long diff = sizeAfter - sizeBefore; sizeAfter = moov.getSize(); diff = sizeAfter - sizeBefore; moov.getBox(Channels.newChannel(baos)); isoFile.close(); FileChannel fc;
IsoFile isoFile = new IsoFile(readableByteChannel); Movie m = new Movie(); List<TrackBox> trackBoxes = isoFile.getMovieBox().getBoxes(TrackBox.class); for (TrackBox trackBox : trackBoxes) { SchemeTypeBox schm = Path.getPath(trackBox, "mdia[0]/minf[0]/stbl[0]/stsd[0]/enc.[0]/sinf[0]/schm[0]"); m.setMatrix(isoFile.getMovieBox().getMovieHeaderBox().getMatrix()); return m;
private UserDataBox getUserDataBox() { if (userDataBox == null) { userDataBox = new UserDataBox(); isoFile.getMovieBox().addBox(userDataBox); } return userDataBox; }
log.debug("moov children: {}", moov.getBoxes().size()); MP4Reader.dumpBox(moov); MovieHeaderBox mvhd = moov.getMovieHeaderBox(); log.debug("Seconds {}", lengthInSeconds); log.debug("Tracks: {}", moov.getTrackCount()); List<TrackBox> tracks = moov.getBoxes(TrackBox.class); // trak for (TrackBox trak : tracks) { if (log.isDebugEnabled()) {
long sizeBefore = moov.getSize(); long offset = 0; for (Box box : isoFile.getBoxes()) { if ((userDataBox = Path.getPath(moov, "udta")) == null) { userDataBox = new UserDataBox(); moov.addBox(userDataBox); ilst.addBox(day); long sizeAfter = moov.getSize(); long diff = sizeAfter - sizeBefore; sizeAfter = moov.getSize(); diff = sizeAfter - sizeBefore; moov.getBox(Channels.newChannel(baos)); isoFile.close(); FileChannel fc;
IsoFile isoFile = new IsoFile(readableByteChannel); Movie m = new Movie(); List<TrackBox> trackBoxes = isoFile.getMovieBox().getBoxes(TrackBox.class); for (TrackBox trackBox : trackBoxes) { SchemeTypeBox schm = Path.getPath(trackBox, "mdia[0]/minf[0]/stbl[0]/stsd[0]/enc.[0]/sinf[0]/schm[0]"); m.setMatrix(isoFile.getMovieBox().getMovieHeaderBox().getMatrix()); return m;
log.debug("moov children: {}", moov.getBoxes().size()); dumpBox(moov); MovieHeaderBox mvhd = moov.getMovieHeaderBox(); log.debug("Seconds {}", lengthInSeconds); log.debug("Tracks: {}", moov.getTrackCount()); List<TrackBox> tracks = moov.getBoxes(TrackBox.class); // trak for (TrackBox trak : tracks) { if (log.isDebugEnabled()) { MovieExtendsBox mvex = moov.getBoxes(MovieExtendsBox.class).get(0); // mvex dumpBox(mvex); List<TrackExtendsBox> trexs = mvex.getBoxes(TrackExtendsBox.class);
long sizeBefore = moov.getSize(); long offset = 0; for (Box box : isoFile.getBoxes()) { if ((userDataBox = Path.getPath(moov, "udta")) == null) { userDataBox = new UserDataBox(); moov.addBox(userDataBox); long sizeAfter = moov.getSize(); long diff = sizeAfter - sizeBefore; sizeAfter = moov.getSize(); diff = sizeAfter - sizeBefore; moov.getBox(Channels.newChannel(baos)); isoFile.close(); FileChannel fc;
/** * Returns the track numbers associated with this <code>MovieBox</code>. * * @return the tracknumbers (IDs) of the tracks in their order of appearance in the file */ public long[] getTrackNumbers() { List<TrackBox> trackBoxes = this.getBoxes(TrackBox.class); long[] trackNumbers = new long[trackBoxes.size()]; for (int trackCounter = 0; trackCounter < trackBoxes.size(); trackCounter++) { trackNumbers[trackCounter] = trackBoxes.get(trackCounter).getTrackHeaderBox().getTrackId(); } return trackNumbers; }
/** * Creates a fully populated 'moov' box with all child boxes. Child boxes are: * <ul> * <li>{@link #createMvhd(Movie) mvhd}</li> * <li>{@link #createMvex(Movie) mvex}</li> * <li>a {@link #createTrak(Track, Movie) trak} for every track</li> * </ul> * * @param movie the concerned movie * @return fully populated 'moov' */ protected ParsableBox 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; }
log.debug("moov children: {}", moov.getBoxes().size()); dumpBox(moov); MovieHeaderBox mvhd = moov.getMovieHeaderBox(); log.debug("Seconds {}", lengthInSeconds); log.debug("Tracks: {}", moov.getTrackCount()); List<TrackBox> tracks = moov.getBoxes(TrackBox.class); // trak for (TrackBox trak : tracks) { if (log.isDebugEnabled()) { MovieExtendsBox mvex = moov.getBoxes(MovieExtendsBox.class).get(0); // mvex dumpBox(mvex); List<TrackExtendsBox> trexs = mvex.getBoxes(TrackExtendsBox.class);
public DefaultMp4SampleList(long track, Container topLevel, RandomAccessSource randomAccessFile) { this.randomAccess = randomAccessFile; MovieBox movieBox = topLevel.getBoxes(MovieBox.class).get(0); List<TrackBox> trackBoxes = movieBox.getBoxes(TrackBox.class);
public int getTrackCount() { return getBoxes(TrackBox.class).size(); }
protected Box createMoov() { MovieBox movieBox = new MovieBox(); movieBox.addBox(createMvhd()); movieBox.addBox(createTrak(theTrack)); movieBox.addBox(createMvex()); if (psshs != null) { for (ProtectionSystemSpecificHeaderBox pssh : psshs) { movieBox.addBox(pssh); } } // metadata here return movieBox; }