tweaked
This commit is contained in:
parent
e413d301f6
commit
b1552fe3de
1 changed files with 13 additions and 4 deletions
|
|
@ -199,16 +199,25 @@ in
|
||||||
streamCfg.bitrateKbps * 2
|
streamCfg.bitrateKbps * 2
|
||||||
else
|
else
|
||||||
null;
|
null;
|
||||||
rateControlArgs =
|
x264RateControlArgs =
|
||||||
if streamCfg.bitrateKbps != null then
|
if streamCfg.bitrateKbps != null then
|
||||||
"-b:v ${toString streamCfg.bitrateKbps}k -maxrate ${toString maxrateKbps}k -bufsize ${toString bufsizeKbps}k"
|
"-b:v ${toString streamCfg.bitrateKbps}k -maxrate ${toString maxrateKbps}k -bufsize ${toString bufsizeKbps}k"
|
||||||
else
|
else
|
||||||
"";
|
"";
|
||||||
|
vaapiRateControlArgs =
|
||||||
|
if streamCfg.bitrateKbps != null then
|
||||||
|
"-rc_mode VBR -b:v ${toString streamCfg.bitrateKbps}k -maxrate ${toString maxrateKbps}k -bufsize ${toString bufsizeKbps}k"
|
||||||
|
else
|
||||||
|
"-rc_mode CQP -qp ${toString streamCfg.vaapiQp}";
|
||||||
videoCodecArgs =
|
videoCodecArgs =
|
||||||
if streamCfg.useVaapi then
|
if streamCfg.useVaapi then
|
||||||
"-vaapi_device ${streamCfg.vaapiDevice} -vf format=nv12,hwupload -c:v h264_vaapi -qp ${toString streamCfg.vaapiQp}"
|
"-vaapi_device ${streamCfg.vaapiDevice} -vf format=nv12,hwupload -c:v h264_vaapi ${vaapiRateControlArgs} -g ${
|
||||||
|
toString (streamCfg.framerate * 2)
|
||||||
|
} -bf 0"
|
||||||
else
|
else
|
||||||
"-vcodec libx264 -tune zerolatency -preset ${streamCfg.preset}";
|
"-vcodec libx264 -tune zerolatency -preset ${streamCfg.preset} ${x264RateControlArgs} -g ${
|
||||||
|
toString (streamCfg.framerate * 2)
|
||||||
|
} -bf 0";
|
||||||
in
|
in
|
||||||
nameValuePair "webcam-rtsp-publisher-${sanitizeName streamName}" {
|
nameValuePair "webcam-rtsp-publisher-${sanitizeName streamName}" {
|
||||||
description = "Publish webcam stream '${streamName}' to MediaMTX over RTSP";
|
description = "Publish webcam stream '${streamName}' to MediaMTX over RTSP";
|
||||||
|
|
@ -221,7 +230,7 @@ in
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
RestartSec = "2";
|
RestartSec = "2";
|
||||||
Environment = optional (streamCfg.vaapiDriver != null) "LIBVA_DRIVER_NAME=${streamCfg.vaapiDriver}";
|
Environment = optional (streamCfg.vaapiDriver != null) "LIBVA_DRIVER_NAME=${streamCfg.vaapiDriver}";
|
||||||
ExecStart = "${pkgs.ffmpeg}/bin/ffmpeg -hide_banner -loglevel warning -f v4l2 -framerate ${toString streamCfg.framerate} -video_size ${streamCfg.videoSize} -i ${streamCfg.device} ${videoCodecArgs} ${rateControlArgs} -f rtsp ${streamCfg.rtspUrl}";
|
ExecStart = "${pkgs.ffmpeg}/bin/ffmpeg -hide_banner -loglevel warning -f v4l2 -framerate ${toString streamCfg.framerate} -video_size ${streamCfg.videoSize} -i ${streamCfg.device} ${videoCodecArgs} -f rtsp ${streamCfg.rtspUrl}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
) effectiveStreams;
|
) effectiveStreams;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue