diff --git a/applications/gui/src/media_panel.cpp b/applications/gui/src/media_panel.cpp
index 2801e2dc896d0861aa0b890cffa2e11405ef3e44..4677cb7e06e1482fd9a21f656ae50f5df25add10 100644
--- a/applications/gui/src/media_panel.cpp
+++ b/applications/gui/src/media_panel.cpp
@@ -42,7 +42,7 @@ MediaPanel::MediaPanel(ftl::gui::Screen *screen, ftl::gui::SourceWindow *sourceW
 	auto recordpopup = recordbutton_->popup();
 	recordpopup->setLayout(new GroupLayout());
 	recordpopup->setTheme(screen->toolbuttheme);
-	recordpopup->setAnchorHeight(150);
+	recordpopup->setAnchorHeight(180);
 	auto itembutton = new Button(recordpopup, "2D snapshot (.png)");
 	itembutton->setCallback([this]() {
 		_startRecording(RecordMode::Snapshot2D);
@@ -227,6 +227,7 @@ void MediaPanel::_startRecording(MediaPanel::RecordMode mode) {
 		record_mode_ = mode;
 		screen_->activeCamera()->startVideoRecording(filename, "");
 	} else if (mode == RecordMode::Live2D) {
+		record_mode_ = mode;
 		screen_->activeCamera()->startVideoRecording("", "ftl://live.utu.fi");
 	}
 }
diff --git a/components/codecs/src/nvpipe_encoder.cpp b/components/codecs/src/nvpipe_encoder.cpp
index 98d2c47a7f2bcf0a69533388909dc57bdc0fe36e..c9f662183cd1d007914e7ada1baeb5c913aef763 100644
--- a/components/codecs/src/nvpipe_encoder.cpp
+++ b/components/codecs/src/nvpipe_encoder.cpp
@@ -88,7 +88,7 @@ static uint64_t calculateBitrate(definition_t def, float ratescale) {
 	}
 
 	bitrate *= 1000.0f*1000.0f;
-	float minrate = 0.25f * bitrate;
+	float minrate = 0.05f * bitrate;
 	return uint64_t((bitrate - minrate)*ratescale + minrate);
 }
 
@@ -167,13 +167,14 @@ bool NvPipeEncoder::encode(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt)
 
 	if (!_createEncoder(pkt, fmt)) return false;
 
-	if (isLossy(pkt.codec) && pkt.bitrate != last_bitrate_) {
+	// Doesn't seem to work
+	/*if (isLossy(pkt.codec) && pkt.bitrate != last_bitrate_) {
 		uint64_t bitrate = calculateBitrate(pkt.definition, float(pkt.bitrate)/255.0f) * pkt.frame_count;
 		const int fps = 1000/ftl::timer::getInterval();
 		LOG(INFO) << "Changing bitrate: " << bitrate;
 		NvPipe_SetBitrate(nvenc_, bitrate, fps);
 		last_bitrate_ = pkt.bitrate;
-	}
+	}*/
 
 	//LOG(INFO) << "NvPipe Encode: " << int(definition) << " " << in.cols;
 
@@ -262,7 +263,7 @@ static NvPipe_Format selectFormat(const Packet &pkt, format_t fmt) {
 bool NvPipeEncoder::_encoderMatch(const ftl::codecs::Packet &pkt, format_t fmt) {
 	return	compression_ == selectCompression(pkt, fmt) &&
 			format_ == selectFormat(pkt, fmt) &&
-			codec_ == selectCodec(pkt);
+			codec_ == selectCodec(pkt) && last_bitrate_ == pkt.bitrate;
 }
 
 bool NvPipeEncoder::_createEncoder(const ftl::codecs::Packet &pkt, format_t fmt) {
diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp
index 8277a73d96ab07a1b84fe9d418557ca86f38dcd6..6f4cb32891b45606c45493b4f94dcf3034bfdb0f 100644
--- a/components/streams/src/sender.cpp
+++ b/components/streams/src/sender.cpp
@@ -349,6 +349,8 @@ void Sender::_encodeChannel(ftl::rgbd::FrameSet &fs, Channel c, bool reset) {
 
 				FTL_Profile("Encoder",0.02);
 
+				LOG(INFO) << "Enocode bitrate: " << (int)pkt.bitrate;
+
 				if (enc->encode(sroi, pkt)) {
 					stream_->post(spkt, pkt);