X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-end;h=e5770d48647187929627419eecbeabd9928638e0;hb=d67edcdca8795a4bca116aa532d02dda246a6f53;hp=16fc7a5b0afbcfe6e46291c24ce4edbf3a1e744d;hpb=a9e3d60b4254cd5c6216c4b3e7f8cd5cc5107fad;p=distro-setup diff --git a/distro-end b/distro-end index 16fc7a5..e5770d4 100755 --- a/distro-end +++ b/distro-end @@ -176,11 +176,13 @@ EOF fi done if $doupdate; then - cd $(mktemp -d) + tmpdir=$(mktemp -d) + cd $tmpdir p download debian-archive-keyring s dpkg -i debian-archive-keyring p update cd - + rm -rf $tmpdir fi if [[ ! -e /usr/share/debootstrap/scripts/bookworm ]]; then @@ -756,6 +758,35 @@ esac case $distro in trisquel|ubuntu) + + ## one time setup thing I did + # c /a/opt/obs-cmd/ + # cargo build --release + # cp target/release/obs-cmd ../bin + # + ## in obs, tools -> websocket server settings -> generate/copy password + # + # note: obs-studio on gnu does not support webrtc, it seems mainly because + # libdatachannel is not packaged. If it was, it would just need to do + # apt source obs-studio, obs-studio-30.1.1/debian/rules set -DENABLE_WEBRTC=ON + # + # I did manage to build libdatachannel following its instructions, then make install, + # then obs failed due to nvidia. found those options to disable with + # rg 'option\(ENABLE' | gr nv, then build obs like so: + # + # cmake -DLINUX_PORTABLE=ON -DCMAKE_INSTALL_PREFIX="${HOME}/obs-studio-portable" -DENABLE_BROWSER=OFF -DENABLE_AJA=OFF -DENABLE_NEW_MPEGTS_OUTPUT=OFF -DENABLE_WEBRTC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DENABLE_NVVFX=OFF -DENABLE_NVAFX=OFF -DENABLE_NATIVE_NVENC=OFF .. + # + # + # + # however, I didn't end up trying it out. + # + # note, in terminal source, i setup a transform so it would show the + # bottom 1080p section of the terminal instead of the top if the + # screen was bigger. click like 2 times in the preview so the red + # lines show up, right click, edit transform (or ctrl-e). bounding + # box type: scale to width of bounds. alignment in bounding box: + # bottom left. bounding box size 1920 x 1080. + # ppa:obsproject/obs-studio if [[ ! -s /etc/apt/sources.list.d/obs.list ]]; then # https://blog.zackad.dev/en/2017/08/17/add-ppa-simple-way.html @@ -767,6 +798,7 @@ EOF p update fi ;; + esac case $codename_compat in @@ -2015,9 +2047,39 @@ esac # `mpv --cache=no` had about 2.5 sec latency vs 4 seconds. # Then I discovered this command which had about .5 sec latency: #ffplay -f live_flv -fast -x 1280 -y 720 -fflags nobuffer -flags low_delay -strict experimental -vf "setpts=N/60/TB" -af "asetpts=N/60/TB" -noframedrop -i rtmp://url_here +## a lot of those args arent needed, here is what I ended up with: +# #ffplay -f live_flv -fflags nobuffer -flags low_delay -i rtmp://localhost/live # -pi nginx libnginx-mod-rtmp - +# A problem with rtmp is that it doesn't support vp8/vp9, requiring the partly patent encumbered h264. +# Looking at alternative protocols: dash & hls are both high latency, I tested dash with the nginx-rtmp +# module and got about 5 seconds of latency, web results imply that is normal. +# +# Webrtc is what jitsi & bbb use, but an annoying thing is that +# generally requires a web browser with javascript, or some special +# client, and afaik, it has a smaller limit on number of clients. +# +# Another option is to try rtp/rtsp, there are some servers here: +# https://en.wikipedia.org/wiki/Real-Time_Streaming_Protocol + + +## reference for setting up rtmp +# pi nginx libnginx-mod-rtmp +# cat >/etc/nginx/modules-enabled/rtmp.conf <<'EOF' +## based on https://opensource.com/article/19/1/basic-live-video-streaming-server#comments +## and https://github.com/arut/nginx-rtmp-module/wiki/Directives + +# rtmp { +# allow publish 127.0.0.1; +# deny publish all; +# server { +# listen 1935; +# application live { +# live on; +# record off; +# } +# } +# } +# EOF ### end live streaming ### @@ -2091,6 +2153,13 @@ m /a/bin/buildscripts/tor-browser s ln -sf /a/opt/tor-browser/Browser/start-tor-browser /usr/local/bin +case $HOSTNAME in + kd) + web-conf -p 4500 -f 4533 -e ian@iankelling.org apache2 b8.nz + sgo navidrome + ;; +esac + # nfs server pi-nostart nfs-kernel-server