- <title>Epost inn som arkivformat i Riksarkivarens forskrift?</title>
- <link>http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html</guid>
- <pubDate>Thu, 27 Apr 2017 11:30:00 +0200</pubDate>
- <description><p>I disse dager, med frist 1. mai, har Riksarkivaren ute en høring på
-sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
-som går ut på søndag. Denne forskriften er det som lister opp hvilke
-formater det er greit å arkivere i
-<a href="http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-5">Noark
-5-løsninger</a> i Norge.</p>
-
-<p>Jeg fant høringsdokumentene hos
-<a href="https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">Norsk
-Arkivråd</a> etter å ha blitt tipset på epostlisten til
-<a href="https://github.com/hiOA-ABI/nikita-noark5-core">fri
-programvareprosjektet Nikita Noark5-Core</a>, som lager et Noark 5
-Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
-være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
-god del Noark 5-relaterte dokumenter, og til min overraskelse oppdaget
-at standard epost ikke er på listen over godkjente formater som kan
-arkiveres. Høringen med frist søndag er en glimrende mulighet til å
-forsøke å gjøre noe med det. Jeg holder på med
-<a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex">egen
-høringsuttalelse</a>, og lurer på om andre er interessert i å støtte
-forslaget om å tillate arkivering av epost som epost i arkivet.</p>
-
-<p>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
-kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
-ikke det trengs så mye. Her et kort forslag til tekst:</p>
-
-<p><blockquote>
-
- <p>Viser til høring sendt ut 2017-02-17 (Riksarkivarens referanse
- 2016/9840 HELHJO), og tillater oss å sende inn noen innspill om
- revisjon av Forskrift om utfyllende tekniske og arkivfaglige
- bestemmelser om behandling av offentlige arkiver (Riksarkivarens
- forskrift).</p>
-
- <p>Svært mye av vår kommuikasjon foregår i dag på e-post. Vi
- foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
- RFC 5322,
- <a href="https://tools.ietf.org/html/rfc5322">https://tools.ietf.org/html/rfc5322</a>. bør
- inn som godkjent dokumentformat. Vi foreslår at forskriftens
- oversikt over godkjente dokumentformater ved innlevering i § 5-16
- endres til å ta med Internett-e-post.</p>
-
-</blockquote></p>
-
-<p>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
-epost kan lagres i en Noark 5-struktur, og holder på å skrive et
-forslag om hvordan dette kan gjøres som vil bli sendt over til
-arkivverket så snart det er ferdig. De som er interesserte kan
-<a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md">følge
-fremdriften på web</a>.</p>
-
-<p>Oppdatering 2017-04-28: I dag ble høringuttalelsen jeg skrev
- <a href="https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml">sendt
- inn av foreningen NUUG</a>.</p>
+ <title>Simple streaming the Linux desktop to Kodi using GStreamer and RTP</title>
+ <link>http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html</guid>
+ <pubDate>Thu, 12 Jul 2018 17:55:00 +0200</pubDate>
+ <description><p>Last night, I wrote
+<a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">a
+recipe to stream a Linux desktop using VLC to a instance of Kodi</a>.
+During the day I received valuable feedback, and thanks to the
+suggestions I have been able to rewrite the recipe into a much simpler
+approach requiring no setup at all. It is a single script that take
+care of it all.</p>
+
+<p>This new script uses GStreamer instead of VLC to capture the
+desktop and stream it to Kodi. This fixed the video quality issue I
+saw initially. It further removes the need to add a m3u file on the
+Kodi machine, as it instead connects to
+<a href="https://kodi.wiki/view/JSON-RPC_API/v8">the JSON-RPC API in
+Kodi</a> and simply ask Kodi to play from the stream created using
+GStreamer. Streaming the desktop to Kodi now become trivial. Copy
+the script below, run it with the DNS name or IP address of the kodi
+server to stream to as the only argument, and watch your screen show
+up on the Kodi screen. Note, it depend on multicast on the local
+network, so if you need to stream outside the local network, the
+script must be modified. Also note, I have no idea if audio work, as
+I only care about the picture part.</p>
+
+<blockquote><pre>
+#!/bin/sh
+#
+# Stream the Linux desktop view to Kodi. See
+# http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html
+# for backgorund information.
+
+# Make sure the stream is stopped in Kodi and the gstreamer process is
+# killed if something go wrong (for example if curl is unable to find the
+# kodi server). Do the same when interrupting this script.
+kodicmd() {
+ host="$1"
+ cmd="$2"
+ params="$3"
+ curl --silent --header 'Content-Type: application/json' \
+ --data-binary "{ \"id\": 1, \"jsonrpc\": \"2.0\", \"method\": \"$cmd\", \"params\": $params }" \
+ "http://$host/jsonrpc"
+}
+cleanup() {
+ if [ -n "$kodihost" ] ; then
+ # Stop the playing when we end
+ playerid=$(kodicmd "$kodihost" Player.GetActivePlayers "{}" |
+ jq .result[].playerid)
+ kodicmd "$kodihost" Player.Stop "{ \"playerid\" : $playerid }" > /dev/null
+ fi
+ if [ "$gstpid" ] && kill -0 "$gstpid" >/dev/null 2>&1; then
+ kill "$gstpid"
+ fi
+}
+trap cleanup EXIT INT
+
+if [ -n "$1" ]; then
+ kodihost=$1
+ shift
+else
+ kodihost=kodi.local
+fi
+
+mcast=239.255.0.1
+mcastport=1234
+mcastttl=1
+
+pasrc=$(pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | \
+ cut -d" " -f2|head -1)
+gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
+ videoconvert ! queue2 ! \
+ x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
+ key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
+ mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
+ udpsink host=$mcast port=$mcastport ttl-mc=$mcastttl auto-multicast=1 sync=0 \
+ pulsesrc device=$pasrc ! audioconvert ! queue2 ! avenc_aac ! queue2 ! mux. \
+ > /dev/null 2>&1 &
+gstpid=$!
+
+# Give stream a second to get going
+sleep 1
+
+# Ask kodi to start streaming using its JSON-RPC API
+kodicmd "$kodihost" Player.Open \
+ "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null
+
+# wait for gst to end
+wait "$gstpid"
+</pre></blockquote>
+
+<p>I hope you find the approach useful. I know I do.</p>
+
+<p>As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>