While merging the .mpg files, we are getting the below mentioned error.
Is mp4parser supports merging mpg format files? Please correct my below logic to support the mpg files.
Exception in thread "main" java.lang.RuntimeException: A cast to int has gone wrong. Please contact the mp4parser discussion group (3652969073)
at com.googlecode.mp4parser.util.CastUtils.l2i(CastUtils.java:30)
at com.googlecode.mp4parser.AbstractBox.parse(AbstractBox.java:110)
at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:107)
at com.googlecode.mp4parser.BasicContainer.next(BasicContainer.java:185)
at com.googlecode.mp4parser.BasicContainer.hasNext(BasicContainer.java:161)
at com.googlecode.mp4parser.util.LazyList$1.hasNext(LazyList.java:55)
at com.coremedia.iso.IsoFile.getMovieBox(IsoFile.java:102)
at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:51)
at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:38)
at merge.Test.main(Test.java:23)
Movie[] inMovies = new Movie[]{
MovieCreator.build(video1),
MovieCreator.build(video2),
};
List
for (Movie m : inMovies) {
for (Track t : m.getTracks()) {
if (t.getHandler().equals("vide")) {
vedioTracks.add(t);
}
if (t.getHandler().equals("soun")) {
audioTracks.add(t);
}
}
}
Movie result = new Movie();
if (vedioTracks.size() > 0) {
result.addTrack(new AppendTrack(vedioTracks.toArray(new Track[vedioTracks.size()])));
}
if (audioTracks.size() > 0) {
result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()])));
}
Container out = new DefaultMp4Builder().build(result);
out.writeContainer(new FileOutputStream(outputVideo).getChannel());
Please suggest a solution to my problem. I need to merge MPG files. The above program is throwing an at MovieCreator.build(video1), ?Whereas the same logic is working fine for mp4 files. we are getting a problem with mpg files.
While merging the .mpg files, we are getting the below mentioned error.
Is mp4parser supports merging mpg format files? Please correct my below logic to support the mpg files.
Exception in thread "main" java.lang.RuntimeException: A cast to int has gone wrong. Please contact the mp4parser discussion group (3652969073) at com.googlecode.mp4parser.util.CastUtils.l2i(CastUtils.java:30) at com.googlecode.mp4parser.AbstractBox.parse(AbstractBox.java:110) at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:107) at com.googlecode.mp4parser.BasicContainer.next(BasicContainer.java:185) at com.googlecode.mp4parser.BasicContainer.hasNext(BasicContainer.java:161) at com.googlecode.mp4parser.util.LazyList$1.hasNext(LazyList.java:55) at com.coremedia.iso.IsoFile.getMovieBox(IsoFile.java:102) at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:51) at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:38) at merge.Test.main(Test.java:23)
Code
String video1 = "D:\v\" + "DELTA.mpg"; String video2 = "D:\v\" + "FORM.mpg"; String outputVideo = "D:\v\" + "output.mpg";
Movie[] inMovies = new Movie[]{ MovieCreator.build(video1), MovieCreator.build(video2), };
List
for (Movie m : inMovies) { for (Track t : m.getTracks()) { if (t.getHandler().equals("vide")) { vedioTracks.add(t); } if (t.getHandler().equals("soun")) { audioTracks.add(t); } } }
Movie result = new Movie(); if (vedioTracks.size() > 0) { result.addTrack(new AppendTrack(vedioTracks.toArray(new Track[vedioTracks.size()]))); } if (audioTracks.size() > 0) { result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()]))); }
Container out = new DefaultMp4Builder().build(result); out.writeContainer(new FileOutputStream(outputVideo).getChannel());
Please suggest a solution to my problem. I need to merge MPG files. The above program is throwing an at MovieCreator.build(video1), ?Whereas the same logic is working fine for mp4 files. we are getting a problem with mpg files.
Please provide sample program to merge mp4 files.