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
|
||||
else
|
||||
null;
|
||||
rateControlArgs =
|
||||
x264RateControlArgs =
|
||||
if streamCfg.bitrateKbps != null then
|
||||
"-b:v ${toString streamCfg.bitrateKbps}k -maxrate ${toString maxrateKbps}k -bufsize ${toString bufsizeKbps}k"
|
||||
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 =
|
||||
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
|
||||
"-vcodec libx264 -tune zerolatency -preset ${streamCfg.preset}";
|
||||
"-vcodec libx264 -tune zerolatency -preset ${streamCfg.preset} ${x264RateControlArgs} -g ${
|
||||
toString (streamCfg.framerate * 2)
|
||||
} -bf 0";
|
||||
in
|
||||
nameValuePair "webcam-rtsp-publisher-${sanitizeName streamName}" {
|
||||
description = "Publish webcam stream '${streamName}' to MediaMTX over RTSP";
|
||||
|
|
@ -221,7 +230,7 @@ in
|
|||
Restart = "always";
|
||||
RestartSec = "2";
|
||||
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue