當前位置: 首頁>>代碼示例>>Java>>正文


Java Container.writeContainer方法代碼示例

本文整理匯總了Java中org.mp4parser.Container.writeContainer方法的典型用法代碼示例。如果您正苦於以下問題:Java Container.writeContainer方法的具體用法?Java Container.writeContainer怎麽用?Java Container.writeContainer使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.mp4parser.Container的用法示例。


在下文中一共展示了Container.writeContainer方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: writeMp4

import org.mp4parser.Container; //導入方法依賴的package包/類
private void writeMp4(List<Track> tracks) throws IOException {
    Movie m = new Movie();
    m.setTracks(tracks);

    Mp4Builder mp4Builder = getFileBuilder(m);
    Container isoFile = mp4Builder.build(m);

    System.out.print("Writing t ");
    WritableByteChannel wbc = new FileOutputStream(outputFile).getChannel();
    try {
        isoFile.writeContainer(wbc);

    } finally {
        wbc.close();
    }
    System.out.println("Done.");
}
 
開發者ID:castlabs,項目名稱:dashencrypt,代碼行數:18,代碼來源:MuxMp4.java

示例2: testSimpleMuxing

import org.mp4parser.Container; //導入方法依賴的package包/類
@Test
public void testSimpleMuxing() throws Exception {
    Movie m = new Movie();
    Movie v = MovieCreator.build(FragmentedMp4BuilderTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/BBB_qpfile_10sec/BBB_fixedres_B_180x320_80.mp4");
    Movie a = MovieCreator.build(FragmentedMp4BuilderTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/BBB_qpfile_10sec/output_audio-2ch-20s.mp4");

    m.addTrack(v.getTracks().get(0));
    m.addTrack(a.getTracks().get(0));

    FragmentedMp4Builder fragmentedMp4Builder = new FragmentedMp4Builder();
    fragmentedMp4Builder.setFragmenter(new DefaultFragmenterImpl(5));

    Container c = fragmentedMp4Builder.build(m);
    c.writeContainer(Channels.newChannel(new ByteArrayOutputStream()));

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:17,代碼來源:FragmentedMp4BuilderTest.java

示例3: checkOutputIsStable

import org.mp4parser.Container; //導入方法依賴的package包/類
@Test
public void checkOutputIsStable() throws Exception {
    Movie m = new Movie();
    DTSTrackImpl dts = new DTSTrackImpl(new FileDataSourceImpl(DTSTrackImplTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/org/mp4parser/muxer/tracks/dts-sample.dtshd"));
    m.addTrack(dts);
    Fragmenter fif = new StaticFragmentIntersectionFinderImpl(Collections.singletonMap((Track) dts, new long[]{1}));
    DefaultMp4Builder mp4Builder = new DefaultMp4Builder();
    mp4Builder.setFragmenter(fif);
    Container c = mp4Builder.build(m);

    // c.writeContainer(new FileOutputStream("C:\\dev\\mp4parser\\isoparser\\src\\test\\resources\\com\\googlecode\\mp4parser\\authoring\\tracks\\dts-sample.mp4").getChannel());
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    c.writeContainer(Channels.newChannel(baos));
    IsoFile ref = new IsoFile(
            new FileInputStream(DTSTrackImplTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/org/mp4parser/muxer/tracks/dts-sample.mp4").getChannel());
    BoxComparator.check(ref, c, "moov[0]/mvhd[0]", "moov[0]/trak[0]/tkhd[0]", "moov[0]/trak[0]/mdia[0]/mdhd[0]");


}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:20,代碼來源:DTSTrackImplTest.java

示例4: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    String basePath = GetDuration.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/dash/";

    Movie m = new Movie();
    IsoFile baseIsoFile = new IsoFile(basePath + "redbull_100kbit_dash.mp4");
    List<IsoFile> fragments = new LinkedList<IsoFile>();
    for (int i = 1; i < 9; i++) {
        fragments.add(new IsoFile(basePath + "redbull_10sec" + i + ".m4s"));
    }

    m.addTrack(new Mp4TrackImpl(1, new IsoFile("redbull_100kbit_dash.mp4"), new FileRandomAccessSourceImpl(new RandomAccessFile("redbull_100kbit_dash.mp4", "r")), "test"));


    DefaultMp4Builder builder = new DefaultMp4Builder();
    Container stdMp4 = builder.build(m);
    FileOutputStream fos = new FileOutputStream("out.mp4");
    stdMp4.writeContainer(fos.getChannel());
    fos.close();
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:20,代碼來源:MostSimpleDashExample.java

示例5: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    Movie movieIn = MovieCreator.build(GetDuration.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/1365070268951.mp4");
    Movie movieOut = new Movie();
    for (Track track : movieIn.getTracks()) {
        if ("vide".equals(track.getHandler())) {
            movieOut.addTrack(new WrappingTrack(track) {
                @Override
                public long[] getSampleDurations() {
                    long[] l = super.getSampleDurations();
                    l[0] *= 10;
                    l[l.length-1] *= 10;
                    return l;
                }
            });
        } else {
            movieOut.addTrack(track);
        }
    }
    DefaultMp4Builder defaultMp4Builder = new DefaultMp4Builder();
    Container mOut = defaultMp4Builder.build(movieOut);
    mOut.writeContainer(new FileOutputStream("default.mp4").getChannel());

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:24,代碼來源:MakeTrackLonger.java

示例6: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    DataSource video_file = new FileDataSourceImpl("c:/dev/mp4parser2/source_video.h264");
    DataSource audio_file = new FileDataSourceImpl("c:/dev/mp4parser2/source_audio.aac");
    int duration = 30472;
    H264TrackImpl h264Track = new H264TrackImpl(video_file, "eng", 15000, 1001); //supplied duration for the attached file was
    AACTrackImpl aacTrack = new AACTrackImpl(audio_file);
    Movie movie = new Movie();
    movie.addTrack(h264Track);
    //movie.addTrack(aacTrack);

    Container out = new DefaultMp4Builder().build(movie);
    FileOutputStream fos = new FileOutputStream(new File("c:/dev/mp4parser2/checkme.mp4"));
    out.writeContainer(fos.getChannel());
    fos.close();

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:17,代碼來源:BillH264Example.java

示例7: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    H264TrackImpl h264Track = new H264TrackImpl(new FileDataSourceImpl("C:\\dev\\mp4parser\\isoparser\\src\\test\\resources\\count.h264"));
    //AACTrackImpl aacTrack = new AACTrackImpl(new FileInputStream("/home/sannies2/Downloads/lv.aac").getChannel());
    Movie m = new Movie();
    m.addTrack(h264Track);

    //m.addTrack(aacTrack);

    {
        Container out = new DefaultMp4Builder().build(m);
        FileOutputStream fos = new FileOutputStream(new File("h264_output.mp4"));
        FileChannel fc = fos.getChannel();
        out.writeContainer(fc);
        fos.close();
    }
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:17,代碼來源:H264Example.java

示例8: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    Movie m = MovieCreator.build("c:\\content\\ffmpeg.mp4");
    DefaultMp4Builder defaultMp4Builder = new DefaultMp4Builder();


    Container c = defaultMp4Builder.build(m);
    FileOutputStream fos = new FileOutputStream("C:\\content\\out.mp4");
    WritableByteChannel wbc = Channels.newChannel(fos);
    c.writeContainer(wbc);
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:11,代碼來源:Repair.java

示例9: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    Track track = new H265TrackImpl(new FileDataSourceImpl("c:\\content\\test-UHD-HEVC_01_FMV_Med_track1.hvc"));
    Movie movie = new Movie();
    movie.addTrack(track);
    DefaultMp4Builder mp4Builder = new DefaultMp4Builder();
    Container c = mp4Builder.build(movie);
    c.writeContainer(new FileOutputStream("output.mp4").getChannel());

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:10,代碼來源:H265TrackImpl.java

示例10: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    H264TrackImpl h264Track = new H264TrackImpl(new FileDataSourceImpl("C:\\dev\\mp4parser\\streaming\\src\\test\\resources\\org\\mp4parser\\streaming\\input\\h264\\tos.h264"));
    Movie m = new Movie();
    m.addTrack(h264Track);
    DefaultMp4Builder builder = new DefaultMp4Builder();
    Container c = builder.build(m);
    c.writeContainer(new FileOutputStream("output-old.mp4").getChannel());
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:9,代碼來源:MuxMe.java

示例11: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException, XPathExpressionException, SAXException, ParserConfigurationException, URISyntaxException {
    Movie v = new Movie(); // = MovieCreator.build("C:\\dev\\DRMTODAY-872\\31245689abb7c52a3d0721447bddd6cd_Tears_Of_Steel_600000.mp4");
    Track audio = new H264TrackImpl(new FileDataSourceImpl("C:\\Users\\sannies\\Downloads\\test.h264"));
    v.addTrack(audio);

    Mp4Builder defaultMp4Builder = new DefaultMp4Builder();
    Container c = defaultMp4Builder.build(v);
    c.writeContainer(new FileOutputStream("output.mp4").getChannel());

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:11,代碼來源:Mux.java

示例12: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    String videoFile = MuxVideoWithAmf0.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/example-sans-amf0.mp4";

    Movie video = MovieCreator.build(videoFile);

    Properties props = new Properties();
    props.load(MuxVideoWithAmf0.class.getResourceAsStream("/amf0track.properties"));
    HashMap<Long, byte[]> samples = new HashMap<Long, byte[]>();
    for (String key : props.stringPropertyNames()) {
        samples.put(Long.parseLong(key), Base64.decodeBase64(props.getProperty(key)));
    }
    Track amf0Track = new Amf0Track(samples);
    amf0Track.getTrackMetaData();
    video.addTrack(amf0Track);

    FragmentedMp4Builder fragmentedMp4Builder = new FragmentedMp4Builder();
    fragmentedMp4Builder.setFragmenter(new DefaultFragmenterImpl(2));

    Container out = fragmentedMp4Builder.build(video);
    FileOutputStream fos = new FileOutputStream(new File(String.format("output.mp4")));

    FileChannel fc = fos.getChannel();
    out.writeContainer(fc);

    fos.close();

}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:28,代碼來源:MuxVideoWithAmf0.java

示例13: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    String audioEnglish = RemoveSomeSamplesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-english-audio.mp4";
    Movie originalMovie = MovieCreator.build(audioEnglish);

    Track audio = originalMovie.getTracks().get(0);

    Movie nuMovie = new Movie();
    nuMovie.addTrack(new AppendTrack(new ClippedTrack(audio, 0, 10), new ClippedTrack(audio, 100, audio.getSamples().size())));

    Container out = new DefaultMp4Builder().build(nuMovie);
    FileOutputStream fos = new FileOutputStream(new File("output.mp4"));
    out.writeContainer(fos.getChannel());
    fos.close();
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:15,代碼來源:RemoveSomeSamplesExample.java

示例14: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
    Movie mWithVideo = MovieCreator.build("C:\\dev\\mp4parser\\examples\\src\\main\\resources\\davidappend\\v1.mp4");
    Movie mWOutVideo = new Movie();
    for (Track track : mWithVideo.getTracks()) {
        if (track.getHandler().equals("soun")) {
            mWOutVideo.addTrack(track);
        }
    }
    DefaultMp4Builder b = new DefaultMp4Builder();
    Container c = b.build(mWOutVideo);
    c.writeContainer(new FileOutputStream("output.mp4").getChannel());
}
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:13,代碼來源:RemoveVideo.java

示例15: main

import org.mp4parser.Container; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {

        List<Movie> movies = new LinkedList<Movie>();
        movies.add(MovieCreator.build(DavidAppend.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/davidappend/v1.mp4"));
        movies.add(MovieCreator.build(DavidAppend.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/davidappend/v2.mp4"));
        movies.add(MovieCreator.build(DavidAppend.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/davidappend/v2.mp4"));


        List<Track> videoTracks = new LinkedList<Track>();
        List<Track> audioTracks = new LinkedList<Track>();


        for (Movie m : movies) {
            for (Track track : m.getTracks()) {
                if (track.getHandler().equals("vide")) {
                    videoTracks.add(track);
                }
                if (track.getHandler().equals("soun")) {
                    audioTracks.add(track);
                }
            }
        }

        Movie concatMovie = new Movie();

        concatMovie.addTrack(new AppendTrack(videoTracks.toArray(new Track[videoTracks.size()])));
        concatMovie.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()])));


        Container out2 = new DefaultMp4Builder().build(concatMovie);
        FileChannel fc = new RandomAccessFile(String.format("output.mp4"), "rw").getChannel();
        fc.position(0);
        out2.writeContainer(fc);
        fc.close();


    }
 
開發者ID:sannies,項目名稱:mp4parser,代碼行數:38,代碼來源:DavidAppend.java


注:本文中的org.mp4parser.Container.writeContainer方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。