]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index 2bdeeec8079bbef6801e895662ed49c244d82ab3..7b40c314fe82ddac8e452467ece482ea31e78d45 100644 (file)
 
 
     
+    <div class="entry">
+      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">Simple streaming the Linux desktop to Kodi using GStreamer and RTP</a></div>
+      <div class="date">12th July 2018</div>
+      <div class="body"><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.  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>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title"><a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">Streaming the Linux desktop to Kodi using VLC and RTSP</a></div>
       <div class="date">12th July 2018</div>
@@ -650,70 +756,6 @@ one taken by any Free World.</p>
     </div>
     <div class="padding"></div>
     
-    <div class="entry">
-      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Facebooks_ability_to_sell_your_personal_information_is_the_real_Cambridge_Analytica_scandal.html">Facebooks ability to sell your personal information is the real Cambridge Analytica scandal</a></div>
-      <div class="date">21st March 2018</div>
-      <div class="body"><p>So, Cambridge Analytica is getting some well deserved criticism for
-(mis)using information it got from Facebook about 50 million people,
-mostly in the USA.  What I find a bit surprising, is how little
-criticism Facebook is getting for handing the information over to
-Cambridge Analytica and others in the first place.  And what about the
-people handing their private and personal information to Facebook?
-And last, but not least, what about the government offices who are
-handing information about the visitors of their web pages to Facebook?
-No-one who looked at the terms of use of Facebook should be surprised
-that information about peoples interests, political views, personal
-lifes and whereabouts would be sold by Facebook.</p>
-
-<p>What I find to be the real scandal is the fact that Facebook is
-selling your personal information, not that one of the buyers used it
-in a way Facebook did not approve when exposed.  It is well known that
-Facebook is selling out their users privacy, but a scandal
-nevertheless.  Of course the information provided to them by Facebook
-would be misused by one of the parties given access to personal
-information about the millions of Facebook users.  Collected
-information will be misused sooner or later.  The only way to avoid
-such misuse, is to not collect the information in the first place.  If
-you do not want Facebook to hand out information about yourself for
-the use and misuse of its customers, do not give Facebook the
-information.</p>
-
-<p>Personally, I would recommend to completely remove your Facebook
-account, and take back some control of your personal information.
-<a href="https://www.theguardian.com/technology/2018/mar/19/how-to-protect-your-facebook-privacy-or-delete-yourself-completely">According
-to The Guardian</a>, it is a bit hard to find out how to request
-account removal (and not just 'disabling').  You need to
-<a href="https://www.facebook.com/help/224562897555674?helpref=faq_content">visit
-a specific Facebook page</a> and click on 'let us know' on that page
-to get to <a href="https://www.facebook.com/help/delete_account">the
-real account deletion screen</a>.  Perhaps something to consider?  I
-would not trust the information to really be deleted (who knows,
-perhaps NSA, GCHQ and FRA already got a copy), but it might reduce the
-exposure a bit.</p>
-
-<p>If you want to learn more about the capabilities of Cambridge
-Analytica, I recommend to see the video recording of the one hour talk
-Paul-Olivier Dehaye gave to <a href="">NUUG</a> last april about
-<a href="https://www.nuug.no/aktiviteter/20170404-big-data-psychometric/">
-Data collection, psychometric profiling and their impact on
-politics</a>.</p>
-
-<p>And if you want to communicate with your friends and loved ones,
-use some end-to-end encrypted method like
-<a href="https://www.signal.org/">Signal</a> or
-<a href="https://ring.cx/">Ring</a>, and stop sharing your private
-messages with strangers like Facebook and Google.</p>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>. 
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
     <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
     <div id="sidebar">
       
@@ -735,7 +777,7 @@ messages with strangers like Facebook and Google.</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
 
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (3)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (4)</a></li>
 
 </ul></li>
 
@@ -1030,7 +1072,7 @@ messages with strangers like Facebook and Google.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (159)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (160)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
 
@@ -1044,7 +1086,7 @@ messages with strangers like Facebook and Google.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (377)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (378)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
 
@@ -1130,7 +1172,7 @@ messages with strangers like Facebook and Google.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (11)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (65)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (66)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>