recording was fucked up. FIX!

mainly in RecordingFrame
This commit is contained in:
2026-01-29 17:02:04 +01:00
parent d775a33107
commit 8239b910fe
3 changed files with 12 additions and 7 deletions

View File

@@ -147,8 +147,8 @@ public class RecordingFrame extends JInternalFrame {
sample.getWidth(), sample.getWidth(),
sample.getHeight(), sample.getHeight(),
20, // Frame Rate 20, // Frame Rate
25, // CRF (Quality) 18, // CRF (Quality)
"ultrafast" "superfast"
); );
// 2. Initialize the HA Recorder // 2. Initialize the HA Recorder

View File

@@ -15,13 +15,14 @@ public class FrameProccessor {
reuseImg = new BufferedImage( reuseImg = new BufferedImage(
rawImg.getWidth(), rawImg.getWidth(),
rawImg.getHeight(), rawImg.getHeight(),
BufferedImage.TYPE_3BYTE_BGR // default java BufferedImage Type BufferedImage.TYPE_3BYTE_BGR
); );
var g = reuseImg.createGraphics();
g.drawImage(rawImg, 0, 0, null);
g.dispose();
} }
var g = reuseImg.createGraphics();
g.drawImage(rawImg, 0, 0, null);
g.dispose();
return converter.getFrame(reuseImg); return converter.getFrame(reuseImg);
} }

View File

@@ -20,9 +20,13 @@ public class MediaSink {
recorder.setFormat("mp4"); recorder.setFormat("mp4");
recorder.setPixelFormat(avutil.AV_PIX_FMT_BGR24); recorder.setPixelFormat(avutil.AV_PIX_FMT_BGR24);
recorder.setFrameRate(config.fps()); recorder.setFrameRate(config.fps());
/* this is essentially just building FFmpeg? Would've used ProccessBuilder for this lol */
recorder.setVideoOption("pixel_format", "yuv420p"); recorder.setVideoOption("pixel_format", "yuv420p");
recorder.setVideoOption("preset", config.preset()); recorder.setVideoOption("preset", config.preset());
recorder.setVideoOption("crf", String.valueOf(config.crf())); recorder.setVideoOption("crf", String.valueOf(config.crf()));
recorder.setVideoOption("tune", "zerolatency");
recorder.setVideoOption("x264opts", "keyint=40:min-keyint=20");
recorder.setVideoBitrate(0); // 0 tells the recorder to respect CRF strictly
recorder.setGopSize(config.fps() * 2); recorder.setGopSize(config.fps() * 2);
recorder.start(); recorder.start();