@@ -99,6 +99,9 @@ public class RecordVideoActivity extends BaseActivity implements TextureView.Sur
9999 private TextView tvVCache ;
100100 private TextView tvACache ;
101101 private TextView tvVideoWH ;
102+ private volatile long basePts = 0 ;
103+
104+
102105 private final FLVListener flvListener =
103106 data -> {
104107// Log.e(TAG, "===== dataLen:" + data.length);
@@ -799,17 +802,23 @@ public void updateDashboard() {
799802 public void onAudioEncoded (byte [] datas , long pts , long seq ) {
800803 if (executor .isShutdown ()) return ;
801804 executor .submit (() -> {
802- if (flvPacker == null ) flvPacker = new FLVPacker (flvListener , true , true );
803- flvPacker .encodeFlv (datas , FLVPacker .TYPE_AUDIO , pts );
805+ if (flvPacker == null ) {
806+ flvPacker = new FLVPacker (flvListener , true , true );
807+ basePts = pts ;
808+ }
809+ flvPacker .encodeFlv (datas , FLVPacker .TYPE_AUDIO , pts - basePts );
804810 });
805811 }
806812
807813 @ Override
808814 public void onVideoEncoded (byte [] datas , long pts , long seq ) {
809815 if (executor .isShutdown ()) return ;
810816 executor .submit (() -> {
811- if (flvPacker == null ) flvPacker = new FLVPacker (flvListener , true , true );
812- flvPacker .encodeFlv (datas , FLVPacker .TYPE_VIDEO , pts );
817+ if (flvPacker == null ) {
818+ flvPacker = new FLVPacker (flvListener , true , true );
819+ basePts = pts ;
820+ }
821+ flvPacker .encodeFlv (datas , FLVPacker .TYPE_VIDEO , pts - basePts );
813822 });
814823 }
815824
0 commit comments