Skip to content

Commit d527d3c

Browse files
committed
增加 MJPEG(Motion JPEG)格式图像流
1 parent 1cb5881 commit d527d3c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

app/src/main/java/com/tencent/iotvideo/link/CameraRecorder.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static com.tencent.iotvideo.link.util.UtilsKt.getBitRateIntervalByPixel;
44

55
import android.app.Activity;
6+
import android.graphics.Rect;
7+
import android.graphics.YuvImage;
68
import android.hardware.Camera;
79
import android.media.AudioFormat;
810
import android.media.MediaCodecInfo;
@@ -26,6 +28,7 @@
2628
import com.tencent.iotvideo.link.util.QualitySetting;
2729
import com.tencent.iotvideo.link.util.UtilsKt;
2830

31+
import java.io.ByteArrayOutputStream;
2932
import java.io.File;
3033
import java.io.FileOutputStream;
3134
import java.io.IOException;
@@ -277,10 +280,27 @@ public void onVideoEncoded(byte[] datas, long pts, long seq, boolean isKeyFrame)
277280
}
278281
}
279282

283+
ByteArrayOutputStream out = new ByteArrayOutputStream();
284+
280285
@Override
281286
public void onPreviewFrame(byte[] data, Camera camera) {
282287
if (!mIsRecording || mVideoEncoder == null) return;
283288
mVideoEncoder.encoderH264(data, cameraId == Camera.CameraInfo.CAMERA_FACING_FRONT);
289+
290+
/**
291+
Camera.Parameters parameters = camera.getParameters();
292+
Camera.Size size = parameters.getPreviewSize();
293+
294+
// 转换YUV数据为JPEG
295+
YuvImage image = new YuvImage(data, parameters.getPreviewFormat(), size.width, size.height, null);
296+
out.reset();
297+
if (image.compressToJpeg(new Rect(0, 0, size.width, size.height), 100, out)){
298+
// 得到JPEG数据
299+
byte[] jpegData = out.toByteArray();
300+
// 发送或处理 JPEG 数据,例如通过网络发送
301+
// sendMjpegFrame(jpegData);
302+
}
303+
*/
284304
}
285305

286306
private void startBitRateAdapter(int visitor, int channel, int res_type) {

0 commit comments

Comments
 (0)