@Override public void outputAudioPacket(Packet audioPkt, AudioCodecMeta audioCodecMeta) throws IOException { if (!outputFormat.isAudio()) return; if (audioOutputTrack == null) { audioOutputTrack = muxer.addAudioTrack(outputAudioCodec, audioCodecMeta); } audioOutputTrack.addFrame(audioPkt); framesOutput = true; }
@Override public void outputVideoPacket(Packet packet, VideoCodecMeta codecMeta) throws IOException { if (!outputFormat.isVideo()) return; if (videoOutputTrack == null) { videoOutputTrack = muxer.addVideoTrack(outputVideoCodec, codecMeta); } videoOutputTrack.addFrame(packet); framesOutput = true; }
public void encodeImage(File png) throws IOException { if (size == null) { BufferedImage read = ImageIO.read(png); size = new Size(read.getWidth(), read.getHeight()); // Add video track to muxer outTrack = muxer.addVideoTrack(Codec.PNG, VideoCodecMeta.createSimpleVideoCodecMeta(size, ColorSpace.RGB)); } // Add packet to video track outTrack.addFrame(MP4Packet.createMP4Packet(NIOUtils.fetchFromFile(png), frameNo, 25, 1, frameNo, FrameType.KEY, null, frameNo, frameNo, 0)); frameNo++; }
long firstPts = pkt.getPts(); for (int i = 0; pkt != null && i < 150; i++) { videoTrack.addFrame(MP4Packet.createMP4Packet(pkt.getData(), pkt.getPts() - firstPts, pkt.getTimescale(), pkt .getDuration(), pkt.getFrameNo(), pkt.getFrameType(), pkt.getTapeTimecode(), 0, pkt.getPts() - firstPts, 0)); pkt = video.nextFrame();