示例#1
0
  private static void mux(FramesMP4MuxerTrack track, File f) throws IOException {
    MappedH264ES es = new MappedH264ES(NIOUtils.map(f));

    ArrayList<ByteBuffer> spsList = new ArrayList<ByteBuffer>();
    ArrayList<ByteBuffer> ppsList = new ArrayList<ByteBuffer>();
    Packet frame = null;
    while ((frame = es.nextFrame()) != null) {
      ByteBuffer data = frame.getData();
      H264Utils.wipePS(data, spsList, ppsList);
      H264Utils.encodeMOVPacket(data);
      MP4Packet pkt = new MP4Packet(new Packet(frame, data), frame.getPts(), 0);
      System.out.println(pkt.getFrameNo());
      track.addFrame(pkt);
    }
    addSampleEntry(track, es.getSps(), es.getPps());
  }