public void write(AVStream av, AVPacket frame) throws IOException {
    tryWriteHeader(av);

    Format vf = frame.getFormat();
    if (Constants.H264.equalsIgnoreCase(vf.getEncoding())) {
      writeH264WithStartCode(frame);
      return;
    } else if (Constants.AAC.equalsIgnoreCase(vf.getEncoding())) {
      writeAAC(frame);
      return;
    }

    logger.warn("unsupported format {}", frame.getFormat());
  }