You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

45 lines
1.2 KiB

package com.inspect.tcpserver.sip.gb28181;
import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
public class Gb28181PsMuxer {
private boolean headerSent = false;
public byte[] muxH264(byte[] annexB, long pts90k) {
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
if (!headerSent) {
out.write(PsHeader.packHeader());
out.write(PsHeader.systemHeader());
out.write(PsHeader.psmHeader());
headerSent = true;
}
out.write(PesPacket.buildH264Pes(annexB, pts90k));
return out.toByteArray();
} catch (Exception e) {
return null;
}
}
public byte[] muxOneFrame(byte[] h264, long pts90k) {
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
// ⚠️ 每一帧都必须有
out.write(PsHeader.packHeader());
out.write(PsHeader.systemHeader());
out.write(PsHeader.psmHeader());
out.write(PesPacket.buildH264Pes(h264, pts90k));
return out.toByteArray();
} catch (Exception e) {
return null;
}
}
}