Compare commits
No commits in common. "a555876a7e73d1eca98f08c2a5c1325e8b3ad4ed" and "c2f1a0db1c833829a3e0229728897a6b3e414cf9" have entirely different histories.
a555876a7e
...
c2f1a0db1c
@ -88,6 +88,6 @@ linfi:
|
|||||||
enabled: true
|
enabled: true
|
||||||
zfs_dataset: zmass/unencrypted/vm/linfi
|
zfs_dataset: zmass/unencrypted/vm/linfi
|
||||||
zfs_mountpoint: /vm/linfi
|
zfs_mountpoint: /vm/linfi
|
||||||
driver_blocklist: "ath if_ath if_ath_pci ath_hal if_iwm if_iwlwifi"
|
driver_blocklist: "ath if_ath if_ath_pci ath_hal"
|
||||||
pci_blocklist: "6/0/0"
|
pci_blocklist: "6/0/0"
|
||||||
amd: false
|
amd: false
|
||||||
|
@ -17,9 +17,3 @@ add include $devfsrules_hide_all
|
|||||||
add include $devfsrules_unhide_basic
|
add include $devfsrules_unhide_basic
|
||||||
add include $devfsrules_unhide_login
|
add include $devfsrules_unhide_login
|
||||||
add path 'bpf*' unhide
|
add path 'bpf*' unhide
|
||||||
|
|
||||||
[tajailrand=15]
|
|
||||||
add include $devfsrules_hide_all
|
|
||||||
add include $devfsrules_unhide_basic
|
|
||||||
add include $devfsrules_unhide_login
|
|
||||||
add path urandom unhide
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
(require 'common-lsp)
|
|
||||||
(require 'util-tree-sitter)
|
|
||||||
|
|
||||||
(use-package nix-mode
|
|
||||||
:mode (("\\.nix\\'" . nix-mode)
|
|
||||||
)
|
|
||||||
:commands nix-mode
|
|
||||||
:hook (
|
|
||||||
(nix-mode . (lambda ()
|
|
||||||
;; (eglot-ensure)
|
|
||||||
;; (defclass my/eglot-nix (eglot-lsp-server) ()
|
|
||||||
;; :documentation
|
|
||||||
;; "Own eglot server class.")
|
|
||||||
|
|
||||||
;; (add-to-list 'eglot-server-programs
|
|
||||||
;; '(nix-mode . (my/eglot-nix "nixd")))
|
|
||||||
;; (add-hook 'before-save-hook 'eglot-format-buffer nil 'local)
|
|
||||||
))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
(provide 'lang-nix)
|
|
@ -36,6 +36,4 @@
|
|||||||
|
|
||||||
(require 'lang-xml)
|
(require 'lang-xml)
|
||||||
|
|
||||||
(require 'lang-nix)
|
|
||||||
|
|
||||||
(load-directory autoload-directory)
|
(load-directory autoload-directory)
|
||||||
|
@ -7,5 +7,3 @@ dependencies:
|
|||||||
when: 'emacs_flavor == "full"'
|
when: 'emacs_flavor == "full"'
|
||||||
- role: terraform
|
- role: terraform
|
||||||
when: 'emacs_flavor == "full"'
|
when: 'emacs_flavor == "full"'
|
||||||
- role: nix
|
|
||||||
when: 'emacs_flavor == "full"'
|
|
||||||
|
@ -28,7 +28,7 @@ firefox_config:
|
|||||||
# Disable that websites can get notifications if you copy, paste, or cut something from a web page, and it lets them know which part of the page had been selected.
|
# Disable that websites can get notifications if you copy, paste, or cut something from a web page, and it lets them know which part of the page had been selected.
|
||||||
#
|
#
|
||||||
# This breaks copying from BigQuery https://github.com/microsoft/monaco-editor/issues/1540
|
# This breaks copying from BigQuery https://github.com/microsoft/monaco-editor/issues/1540
|
||||||
# dom.event.clipboardevents.enabled: false
|
dom.event.clipboardevents.enabled: false
|
||||||
# Isolates all browser identifier sources (e.g. cookies) to the first party domain, with the goal of preventing tracking across different domains.
|
# Isolates all browser identifier sources (e.g. cookies) to the first party domain, with the goal of preventing tracking across different domains.
|
||||||
privacy.firstparty.isolate: true
|
privacy.firstparty.isolate: true
|
||||||
# Do not preload URLs that auto-complete in the address bar.
|
# Do not preload URLs that auto-complete in the address bar.
|
||||||
|
@ -42,10 +42,6 @@ nat pass on restricted_nat proto {tcp, udp} from 10.215.1.217/32 to 10.215.2.2 p
|
|||||||
rdr pass on $ext_if inet proto {tcp, udp} from $not_restricted_nat_v4 to any port 8082 -> 10.215.2.2 port 8082
|
rdr pass on $ext_if inet proto {tcp, udp} from $not_restricted_nat_v4 to any port 8082 -> 10.215.2.2 port 8082
|
||||||
nat pass on restricted_nat proto {tcp, udp} from any to 10.215.2.2 port 8082 -> 10.215.2.1
|
nat pass on restricted_nat proto {tcp, udp} from any to 10.215.2.2 port 8082 -> 10.215.2.1
|
||||||
|
|
||||||
# cloak -> dagger old
|
|
||||||
rdr pass on $ext_if inet proto {tcp, udp} from $not_restricted_nat_v4 to any port 8083 -> 10.215.2.2 port 8083
|
|
||||||
nat pass on restricted_nat proto {tcp, udp} from any to 10.215.2.2 port 8083 -> 10.215.2.1
|
|
||||||
|
|
||||||
# -> sftp
|
# -> sftp
|
||||||
# TODO: Limit bandwidth for sftp
|
# TODO: Limit bandwidth for sftp
|
||||||
rdr pass on $ext_if inet proto {tcp, udp} from $not_jail_nat_v4 to any port 8022 -> 10.215.1.216 port 22
|
rdr pass on $ext_if inet proto {tcp, udp} from $not_jail_nat_v4 to any port 8022 -> 10.215.1.216 port 22
|
||||||
|
@ -96,5 +96,4 @@
|
|||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- fw-ectool-git
|
- fw-ectool-git
|
||||||
- wireless-regdb
|
|
||||||
state: present
|
state: present
|
||||||
|
@ -6,8 +6,6 @@ dagger {
|
|||||||
exec.prestart += "/usr/local/bin/jail_netgraph_bridge start cloak ${name} 192.168.1.0/24";
|
exec.prestart += "/usr/local/bin/jail_netgraph_bridge start cloak ${name} 192.168.1.0/24";
|
||||||
exec.poststop += "sleep 10; /usr/local/bin/jail_netgraph_bridge stop cloak ${name}";
|
exec.poststop += "sleep 10; /usr/local/bin/jail_netgraph_bridge stop cloak ${name}";
|
||||||
|
|
||||||
devfs_ruleset = 15;
|
|
||||||
mount.devfs;
|
|
||||||
mount.fstab = "/etc/fstab.${name}";
|
mount.fstab = "/etc/fstab.${name}";
|
||||||
|
|
||||||
exec.start += "/bin/sh /etc/rc";
|
exec.start += "/bin/sh /etc/rc";
|
||||||
|
@ -4,23 +4,7 @@ set -euo pipefail
|
|||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
: ${VIDEO_BITRATE:="1M"} # Only for encoding modes targeting bitrate
|
|
||||||
: ${AUDIO_BITRATE:="192k"}
|
|
||||||
|
|
||||||
############## Setup #########################
|
|
||||||
|
|
||||||
function die {
|
|
||||||
local status_code="$1"
|
|
||||||
shift
|
|
||||||
(>&2 echo "${@}")
|
|
||||||
exit "$status_code"
|
|
||||||
}
|
|
||||||
|
|
||||||
function log {
|
|
||||||
(>&2 echo "${@}")
|
|
||||||
}
|
|
||||||
|
|
||||||
############## Program #########################
|
|
||||||
|
|
||||||
function main {
|
function main {
|
||||||
local cmd
|
local cmd
|
||||||
@ -28,10 +12,28 @@ function main {
|
|||||||
shift
|
shift
|
||||||
if [ "$cmd" = "copy" ]; then
|
if [ "$cmd" = "copy" ]; then
|
||||||
copy "${@}"
|
copy "${@}"
|
||||||
elif [ "$cmd" = "convert" ]; then
|
elif [ "$cmd" = "av1" ]; then
|
||||||
convert "${@}"
|
av1 "${@}"
|
||||||
elif [ "$cmd" = "stream" ]; then
|
elif [ "$cmd" = "stream_software_h264" ]; then
|
||||||
stream "${@}"
|
stream_software_h264 "${@}"
|
||||||
|
elif [ "$cmd" = "stream_hardware_h264" ]; then
|
||||||
|
stream_hardware_h264 "${@}"
|
||||||
|
elif [ "$cmd" = "preprocess_software_h264" ]; then
|
||||||
|
preprocess_software_h264 "${@}"
|
||||||
|
elif [ "$cmd" = "preprocess_hardware_h264" ]; then
|
||||||
|
preprocess_hardware_h264 "${@}"
|
||||||
|
elif [ "$cmd" = "vp9" ]; then
|
||||||
|
vp9 "${@}"
|
||||||
|
elif [ "$cmd" = "preprocess_hardware_vp9" ]; then
|
||||||
|
preprocess_hardware_vp9 "${@}"
|
||||||
|
elif [ "$cmd" = "vp8" ]; then
|
||||||
|
vp8 "${@}"
|
||||||
|
elif [ "$cmd" = "software_vp8" ]; then
|
||||||
|
software_vp8 "${@}"
|
||||||
|
elif [ "$cmd" = "preprocess_h264" ]; then
|
||||||
|
preprocess_h264 "${@}"
|
||||||
|
elif [ "$cmd" = "preprocess_vp8" ]; then
|
||||||
|
preprocess_vp8 "${@}"
|
||||||
elif [ "$cmd" = "webcam" ]; then
|
elif [ "$cmd" = "webcam" ]; then
|
||||||
webcam "${@}"
|
webcam "${@}"
|
||||||
elif [ "$cmd" = "encode_webcam" ]; then
|
elif [ "$cmd" = "encode_webcam" ]; then
|
||||||
@ -62,106 +64,286 @@ function copy {
|
|||||||
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
||||||
}
|
}
|
||||||
|
|
||||||
function convert {
|
|
||||||
|
|
||||||
|
function av1 {
|
||||||
|
# local additional_flags=()
|
||||||
|
# additional_flags+=(--profile "$PROFILE")
|
||||||
|
# (cd "$DIR/../" && cargo build --no-default-features "${additional_flags[@]}")
|
||||||
|
|
||||||
|
local destination_type="$1" # "stream" or "preprocess"
|
||||||
|
local acceleration_type="$2" # "software" or "hardware"
|
||||||
|
# shift 2
|
||||||
|
|
||||||
local args=()
|
local args=()
|
||||||
local acceleration_type="$1" # "software" or "hardware"
|
|
||||||
local codec="$2" # "h264" or "av1"
|
|
||||||
local file_to_cast="$3"
|
|
||||||
local file_to_save="$4"
|
|
||||||
|
|
||||||
|
if [ "$destination_type" == "stream" ]; then
|
||||||
|
args+=(-re -stream_loop -1)
|
||||||
# Verify parameters
|
elif [ "$destination_type" == "preproces" ]; then
|
||||||
|
|
||||||
|
|
||||||
if [ "$acceleration_type" == "software" ]; then
|
|
||||||
true
|
|
||||||
elif [ "$acceleration_type" == "hardware" ]; then
|
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
die 1 "Unknown acceleration type: $acceleration_type"
|
(>&2 echo "Unknown destination type: $destination_type")
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$codec" == "h264" ]; then
|
|
||||||
true
|
|
||||||
elif [ "$codec" == "av1" ]; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
die 1 "Unknown codec: $codec"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Build command
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$acceleration_type" == "software" ]; then
|
if [ "$acceleration_type" == "software" ]; then
|
||||||
true
|
true
|
||||||
elif [ "$acceleration_type" == "hardware" ]; then
|
elif [ "$acceleration_type" == "hardware" ]; then
|
||||||
args+=(-vaapi_device /dev/dri/renderD128)
|
args+=(-vaapi_device /dev/dri/renderD128)
|
||||||
|
else
|
||||||
|
(>&2 echo "Unknown acceleration type: $acceleration_type")
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
args+=(-i "$file_to_cast")
|
args+=(-i "$file_to_cast")
|
||||||
|
|
||||||
if [ "$codec" == "h264" ]; then
|
if [ "$acceleration_type" == "software" ]; then
|
||||||
if [ "$acceleration_type" == "software" ]; then
|
args+=(-c:v h264)
|
||||||
args+=(-c:v h264)
|
elif [ "$acceleration_type" == "hardware" ]; then
|
||||||
args+=(-profile:v high)
|
args+=(-vf 'format=nv12|vaapi,hwupload')
|
||||||
args+=(-b:v "$VIDEO_BITRATE")
|
args+=(-c:v h264_vaapi)
|
||||||
elif [ "$acceleration_type" == "hardware" ]; then
|
else
|
||||||
args+=(-vf 'format=nv12|vaapi,hwupload')
|
(>&2 echo "Unknown acceleration type: $acceleration_type")
|
||||||
args+=(-c:v h264_vaapi)
|
exit 1
|
||||||
args+=(-profile:v high)
|
|
||||||
args+=(-b:v "$VIDEO_BITRATE")
|
|
||||||
fi
|
|
||||||
elif [ "$codec" == "av1" ]; then
|
|
||||||
if [ "$acceleration_type" == "software" ]; then
|
|
||||||
args+=(-c:v libsvtav1)
|
|
||||||
args+=(-preset 4) # [0-13] default 10, lower = higher quality / slower encode
|
|
||||||
args+=(-crf 20) # [0-63] default 35, lower = higher quality / larger file
|
|
||||||
# Parameters: https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Parameters.md
|
|
||||||
# fast-decode [0-2] default 0 (off), higher = faster decode
|
|
||||||
# tune [0-2] default 1, Specifies whether to use PSNR or VQ as the tuning metric [0 = VQ, 1 = PSNR, 2 = SSIM]
|
|
||||||
# film-grain-denoise, setting to 0 uses the original frames instead of denoising the film grain
|
|
||||||
args+=(-svtav1-params "fast-decode=1:film-grain-denoise=0")
|
|
||||||
elif [ "$acceleration_type" == "hardware" ]; then
|
|
||||||
# -c:v av1_amf -quality quality
|
|
||||||
args+=(-vf 'format=nv12|vaapi,hwupload')
|
|
||||||
args+=(-c:v av1_vaapi)
|
|
||||||
args+=(-b:v "$VIDEO_BITRATE")
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
args+=(-b:v 2M)
|
||||||
|
args+=(-profile:v high)
|
||||||
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
|
||||||
args+=(-bf 0)
|
args+=(-bf 0)
|
||||||
args+=(-strict -2)
|
args+=(-strict -2)
|
||||||
args+=(-c:a opus)
|
args+=(-c:a opus)
|
||||||
args+=(-ac 2)
|
args+=(-ac 2)
|
||||||
args+=(-b:a "$AUDIO_BITRATE")
|
args+=(-b:a 320k)
|
||||||
args+=(-ar 48000)
|
args+=(-ar 48000)
|
||||||
args+=("$file_to_save")
|
|
||||||
set -x
|
if [ "$destination_type" == "stream" ]; then
|
||||||
</dev/null exec ffmpeg "${args[@]}"
|
args+=(-f rtsp)
|
||||||
|
args+=(-rtsp_transport tcp)
|
||||||
|
args+=("rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch")
|
||||||
|
elif [ "$destination_type" == "preproces" ]; then
|
||||||
|
args+=("$file_to_save")
|
||||||
|
else
|
||||||
|
(>&2 echo "Unknown destination type: $destination_type")
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function stream {
|
function stream_software_h264 {
|
||||||
local args=()
|
local file_to_cast
|
||||||
local acceleration_type="$1" # "software" or "hardware"
|
file_to_cast="$3"
|
||||||
local codec="$2" # "h264" or "av1"
|
|
||||||
|
|
||||||
local USERNAME="$3"
|
local USERNAME PASSWORD
|
||||||
local PASSWORD="$4"
|
USERNAME="$1"
|
||||||
local file_to_cast="$5"
|
PASSWORD="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
args+=(-re -stream_loop -1)
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-re \
|
||||||
|
-stream_loop -1 \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-c:v h264 \
|
||||||
|
-b:v 2M \
|
||||||
|
-profile:v high \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-ac 2 \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
-f rtsp \
|
||||||
|
-rtsp_transport tcp \
|
||||||
|
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
||||||
|
}
|
||||||
|
|
||||||
args+=(-f rtsp)
|
function stream_hardware_h264 {
|
||||||
args+=(-rtsp_transport tcp)
|
local file_to_cast
|
||||||
args+=("rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch")
|
file_to_cast="$3"
|
||||||
|
|
||||||
|
local USERNAME PASSWORD
|
||||||
|
USERNAME="$1"
|
||||||
|
PASSWORD="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-re \
|
||||||
|
-stream_loop -1 \
|
||||||
|
-vaapi_device /dev/dri/renderD128 \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-vf 'format=nv12|vaapi,hwupload' \
|
||||||
|
-c:v h264_vaapi \
|
||||||
|
-b:v 2M \
|
||||||
|
-profile:v high \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-ac 2 \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
-f rtsp \
|
||||||
|
-rtsp_transport tcp \
|
||||||
|
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
||||||
|
}
|
||||||
|
|
||||||
|
function preprocess_software_h264 {
|
||||||
|
local file_to_cast file_to_save
|
||||||
|
file_to_cast="$1"
|
||||||
|
file_to_save="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-c:v h264 \
|
||||||
|
-b:v 2M \
|
||||||
|
-profile:v high \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-ac 2 \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
"$file_to_save"
|
||||||
|
}
|
||||||
|
|
||||||
|
function preprocess_hardware_h264 {
|
||||||
|
local file_to_cast file_to_save
|
||||||
|
file_to_cast="$1"
|
||||||
|
file_to_save="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-vaapi_device /dev/dri/renderD128 \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-vf 'format=nv12,hwupload' \
|
||||||
|
-c:v h264_vaapi \
|
||||||
|
-b:v 2M \
|
||||||
|
-profile:v high \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-ac 2 \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
"$file_to_save"
|
||||||
|
}
|
||||||
|
|
||||||
|
function vp9 {
|
||||||
|
local file_to_cast
|
||||||
|
file_to_cast="$3"
|
||||||
|
|
||||||
|
local USERNAME PASSWORD
|
||||||
|
USERNAME="$1"
|
||||||
|
PASSWORD="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-re \
|
||||||
|
-stream_loop -1 \
|
||||||
|
-init_hw_device vaapi=foo:/dev/dri/renderD128 \
|
||||||
|
-hwaccel vaapi \
|
||||||
|
-hwaccel_output_format vaapi \
|
||||||
|
-hwaccel_device foo \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-filter_hw_device foo \
|
||||||
|
-vf 'format=nv12|vaapi,hwupload' \
|
||||||
|
-c:v vp9_vaapi \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
-f rtsp \
|
||||||
|
-rtsp_transport tcp \
|
||||||
|
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
||||||
|
}
|
||||||
|
|
||||||
|
function preprocess_hardware_vp9 {
|
||||||
|
local file_to_cast file_to_save
|
||||||
|
file_to_cast="$1"
|
||||||
|
file_to_save="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-init_hw_device vaapi=foo:/dev/dri/renderD128 \
|
||||||
|
-hwaccel vaapi \
|
||||||
|
-hwaccel_output_format vaapi \
|
||||||
|
-hwaccel_device foo \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-filter_hw_device foo \
|
||||||
|
-vf 'format=nv12|vaapi,hwupload' \
|
||||||
|
-c:v vp9_vaapi \
|
||||||
|
-bf 0 \
|
||||||
|
-strict -2 \
|
||||||
|
-c:a opus \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
"$file_to_save"
|
||||||
|
}
|
||||||
|
|
||||||
|
function software_vp8 {
|
||||||
|
local USERNAME PASSWORD
|
||||||
|
USERNAME="$1"
|
||||||
|
PASSWORD="$2"
|
||||||
|
|
||||||
|
local file_to_cast
|
||||||
|
file_to_cast="$3"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
# -strict -2 :: Enable support for experimental codecs like opus.
|
||||||
|
# -b:v 2M :: Target 2 megabit/s
|
||||||
|
# -crf 10 :: Target a quality level and adjust bitrate accordingly. This should be preferred, but ideally both should be used.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-re \
|
||||||
|
-stream_loop -1 \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-c:v vp8 \
|
||||||
|
-b:v 2M \
|
||||||
|
-crf 10 \
|
||||||
|
-bf 0 \
|
||||||
|
-c:a opus \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
-strict -2 \
|
||||||
|
-f rtsp \
|
||||||
|
-rtsp_transport tcp \
|
||||||
|
"rtsp://$USERNAME:$PASSWORD@172.16.16.251:8554/fetch"
|
||||||
|
}
|
||||||
|
|
||||||
|
function preprocess_vp8 {
|
||||||
|
local file_to_cast file_to_save
|
||||||
|
file_to_cast="$1"
|
||||||
|
file_to_save="$2"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# -bf 0 :: Disable b-frames because webrtc doesn't support h264 streams with b-frames.
|
||||||
|
# -strict -2 :: Enable support for experimental codecs like opus.
|
||||||
|
# -b:v 2M :: Target 2 megabit/s
|
||||||
|
# -crf 10 :: Target a quality level and adjust bitrate accordingly. This should be preferred, but ideally both should be used.
|
||||||
|
</dev/null exec ffmpeg \
|
||||||
|
-i "$file_to_cast" \
|
||||||
|
-c:v vp8 \
|
||||||
|
-b:v 2M \
|
||||||
|
-crf 10 \
|
||||||
|
-bf 0 \
|
||||||
|
-c:a opus \
|
||||||
|
-b:a 320k \
|
||||||
|
-ar 48000 \
|
||||||
|
-strict -2 \
|
||||||
|
"$file_to_save"
|
||||||
}
|
}
|
||||||
|
|
||||||
function webcam {
|
function webcam {
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Maybe install https://github.com/alexheretic/ab-av1 to find good crf values for encoding
|
|
||||||
|
|
||||||
- name: Build aur packages
|
- name: Build aur packages
|
||||||
register: buildaur
|
register: buildaur
|
||||||
become_user: "{{ build_user.name }}"
|
become_user: "{{ build_user.name }}"
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
[General]
|
[General]
|
||||||
EnableNetworkConfiguration=true
|
EnableNetworkConfiguration=true
|
||||||
# AddressRandomization=network
|
# AddressRandomization=network
|
||||||
|
|
||||||
# Needed for Qualcomm WCN785x
|
|
||||||
ControlPortOverNL80211=false
|
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
# - name: Create directories
|
|
||||||
# file:
|
|
||||||
# name: "{{ item }}"
|
|
||||||
# state: directory
|
|
||||||
# mode: 0755
|
|
||||||
# owner: root
|
|
||||||
# group: wheel
|
|
||||||
# loop:
|
|
||||||
# - /foo/bar
|
|
||||||
|
|
||||||
# - name: Install scripts
|
|
||||||
# copy:
|
|
||||||
# src: "files/{{ item.src }}"
|
|
||||||
# dest: "{{ item.dest }}"
|
|
||||||
# mode: 0755
|
|
||||||
# owner: root
|
|
||||||
# group: wheel
|
|
||||||
# loop:
|
|
||||||
# - src: foo.bash
|
|
||||||
# dest: /usr/local/bin/foo
|
|
||||||
|
|
||||||
# - name: Install Configuration
|
|
||||||
# copy:
|
|
||||||
# src: "files/{{ item.src }}"
|
|
||||||
# dest: "{{ item.dest }}"
|
|
||||||
# mode: 0600
|
|
||||||
# owner: root
|
|
||||||
# group: wheel
|
|
||||||
# loop:
|
|
||||||
# - src: foo.conf
|
|
||||||
# dest: /usr/local/etc/foo.conf
|
|
||||||
|
|
||||||
# - name: Clone Source
|
|
||||||
# git:
|
|
||||||
# repo: "https://foo.bar/baz.git"
|
|
||||||
# dest: /foo/bar
|
|
||||||
# version: "v1.0.2"
|
|
||||||
# force: true
|
|
||||||
# diff: false
|
|
||||||
|
|
||||||
- import_tasks: tasks/freebsd.yaml
|
|
||||||
when: 'os_flavor == "freebsd"'
|
|
||||||
|
|
||||||
- import_tasks: tasks/linux.yaml
|
|
||||||
when: 'os_flavor == "linux"'
|
|
||||||
|
|
||||||
- include_tasks:
|
|
||||||
file: tasks/peruser.yaml
|
|
||||||
apply:
|
|
||||||
become: yes
|
|
||||||
become_user: "{{ initialize_user }}"
|
|
||||||
when: users is defined
|
|
||||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
|
||||||
loop_control:
|
|
||||||
loop_var: initialize_user
|
|
@ -1,5 +0,0 @@
|
|||||||
# - name: Install packages
|
|
||||||
# package:
|
|
||||||
# name:
|
|
||||||
# - foo
|
|
||||||
# state: present
|
|
@ -1,21 +0,0 @@
|
|||||||
# - name: Build aur packages
|
|
||||||
# register: buildaur
|
|
||||||
# become_user: "{{ build_user.name }}"
|
|
||||||
# command: "aurutils-sync --no-view {{ item }}"
|
|
||||||
# args:
|
|
||||||
# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
|
||||||
# loop:
|
|
||||||
# - nixd
|
|
||||||
|
|
||||||
# - name: Update cache
|
|
||||||
# when: buildaur.changed
|
|
||||||
# pacman:
|
|
||||||
# name: []
|
|
||||||
# state: present
|
|
||||||
# update_cache: true
|
|
||||||
|
|
||||||
# - name: Install packages
|
|
||||||
# package:
|
|
||||||
# name:
|
|
||||||
# - nixd
|
|
||||||
# state: present
|
|
@ -1,2 +0,0 @@
|
|||||||
- import_tasks: tasks/common.yaml
|
|
||||||
# when: foo is defined
|
|
@ -1,29 +0,0 @@
|
|||||||
- include_role:
|
|
||||||
name: per_user
|
|
||||||
|
|
||||||
# - name: Create directories
|
|
||||||
# file:
|
|
||||||
# name: "{{ account_homedir.stdout }}/{{ item }}"
|
|
||||||
# state: directory
|
|
||||||
# mode: 0700
|
|
||||||
# owner: "{{ account_name.stdout }}"
|
|
||||||
# group: "{{ group_name.stdout }}"
|
|
||||||
# loop:
|
|
||||||
# - ".config/foo"
|
|
||||||
|
|
||||||
# - name: Copy files
|
|
||||||
# copy:
|
|
||||||
# src: "files/{{ item.src }}"
|
|
||||||
# dest: "{{ account_homedir.stdout }}/{{ item.dest }}"
|
|
||||||
# mode: 0600
|
|
||||||
# owner: "{{ account_name.stdout }}"
|
|
||||||
# group: "{{ group_name.stdout }}"
|
|
||||||
# loop:
|
|
||||||
# - src: foo.conf
|
|
||||||
# dest: .config/foo/foo.conf
|
|
||||||
|
|
||||||
- import_tasks: tasks/peruser_freebsd.yaml
|
|
||||||
when: 'os_flavor == "freebsd"'
|
|
||||||
|
|
||||||
- import_tasks: tasks/peruser_linux.yaml
|
|
||||||
when: 'os_flavor == "linux"'
|
|
@ -33,7 +33,6 @@ OPTIONS_SET+=STATIC LTO
|
|||||||
|
|
||||||
.if ${.CURDIR:M*/editors/emacs*}
|
.if ${.CURDIR:M*/editors/emacs*}
|
||||||
OPTIONS_SET+=NATIVECOMP PGTK
|
OPTIONS_SET+=NATIVECOMP PGTK
|
||||||
OPTIONS_UNSET+=XPM
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${.CURDIR:M*/www/firefox*}
|
.if ${.CURDIR:M*/www/firefox*}
|
||||||
|
@ -8,7 +8,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||||||
SLEEP_INTERVAL=${SLEEP_INTERVAL:-30}
|
SLEEP_INTERVAL=${SLEEP_INTERVAL:-30}
|
||||||
|
|
||||||
# ◓◒●◌◎
|
# ◓◒●◌◎
|
||||||
# 🔴🔵🟠🟡🟢🟣🟤
|
# 🟠🟡🟢🟣🟤
|
||||||
# 🟥🟦🟧🟨🟩🟪🟫
|
# 🟥🟦🟧🟨🟩🟪🟫
|
||||||
# ☀☯⭐🌝🌞⏾
|
# ☀☯⭐🌝🌞⏾
|
||||||
# 🌑🌓🌗🌕
|
# 🌑🌓🌗🌕
|
||||||
@ -42,7 +42,7 @@ function main {
|
|||||||
local night_mode_icon night_mode_text night_mode_class
|
local night_mode_icon night_mode_text night_mode_class
|
||||||
night_mode_mode="auto"
|
night_mode_mode="auto"
|
||||||
night_mode_class=""
|
night_mode_class=""
|
||||||
wlsunset -S 07:00 -s 22:00 &
|
wlsunset -l 40.7 -L -74.0 &
|
||||||
wlsunset_pid=$!
|
wlsunset_pid=$!
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
- name: Install packages
|
- name: Install packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
# - linux-lts-headers
|
- linux-lts-headers
|
||||||
- linux-headers
|
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Check trusted gpg keys
|
- name: Check trusted gpg keys
|
||||||
@ -27,7 +26,7 @@
|
|||||||
args:
|
args:
|
||||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||||
loop:
|
loop:
|
||||||
- zfs-dkms-git
|
- zfs-dkms
|
||||||
- zfs-utils
|
- zfs-utils
|
||||||
|
|
||||||
- name: Update cache
|
- name: Update cache
|
||||||
@ -40,7 +39,7 @@
|
|||||||
- name: Install packages
|
- name: Install packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- zfs-dkms-git
|
- zfs-dkms
|
||||||
- zfs-utils
|
- zfs-utils
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user