diff --git a/common/pom.xml b/common/pom.xml index 7d33544e..5537b685 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -71,16 +71,6 @@ junit test - - org.mp4parser - isoparser - 1.9.41 - - - org.mp4parser - muxer - 1.9.41 - javax.xml.bind jaxb-api diff --git a/common/src/main/java/ctbrec/recorder/download/dash/MergerMuxer.java b/common/src/main/java/ctbrec/recorder/download/dash/MergerMuxer.java deleted file mode 100644 index af01cb35..00000000 --- a/common/src/main/java/ctbrec/recorder/download/dash/MergerMuxer.java +++ /dev/null @@ -1,66 +0,0 @@ -package ctbrec.recorder.download.dash; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.util.Arrays; - -import org.mp4parser.Container; -import org.mp4parser.muxer.Movie; -import org.mp4parser.muxer.Track; -import org.mp4parser.muxer.builder.DefaultMp4Builder; -import org.mp4parser.muxer.container.mp4.MovieCreator; - -public class MergerMuxer { - File segmentDir; - - public MergerMuxer(File segmentDir) throws IOException { - this.segmentDir = segmentDir; - String[] videoSegments = segmentDir.list((dir, name) -> name.startsWith("video_")); - Arrays.sort(videoSegments); - String[] audioSegments = segmentDir.list((dir, name) -> name.startsWith("audio_")); - Arrays.sort(audioSegments); - - File mp4VideoTrack = new File(segmentDir, "video.mp4"); - mergeSegments(videoSegments, mp4VideoTrack); - File mp4AudioTrack = new File(segmentDir, "audio.mp4"); - mergeSegments(audioSegments, mp4AudioTrack); - - mergeTracks(mp4VideoTrack, mp4AudioTrack, new File(segmentDir, "merged.mp4")); - Files.delete(mp4VideoTrack.toPath()); - Files.delete(mp4AudioTrack.toPath()); - } - - private void mergeSegments(String[] segments, File toFile) throws IOException { - try (FileOutputStream out = new FileOutputStream(toFile)) { - for (String segment : segments) { - try (FileInputStream in = new FileInputStream(new File(segmentDir, segment))) { - byte[] buffer = new byte[1024]; - int len = -1; - while ((len = in.read(buffer)) >= 0) { - out.write(buffer, 0, len); - } - } - } - } - } - - private void mergeTracks(File mp4VideoTrack, File mp4AudioTrack, File output) throws IOException { - Movie videoMovie = MovieCreator.build(mp4VideoTrack.getCanonicalPath()); - Track videoTrack = videoMovie.getTracks().get(0); - Movie audioMovie = MovieCreator.build(mp4AudioTrack.getCanonicalPath()); - Track audioTrack = audioMovie.getTracks().get(0); - - Movie merged = new Movie(); - merged.addTrack(videoTrack); - merged.addTrack(audioTrack); - - try (FileOutputStream out = new FileOutputStream(output)) { - DefaultMp4Builder builder = new DefaultMp4Builder(); - Container stdMp4 = builder.build(merged); - stdMp4.writeContainer(out.getChannel()); - } - } -}