]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
index 85727ea8ef4f2aaee5b5be5da605e19f5922afea..1fe5942b59093ba050447f7ee0c3cc1477baea02 100644 (file)
@@ -6,6 +6,106 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
                 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
        
+       <item>
+               <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>&lt;p&gt;Last night, I wrote
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html&quot;&gt;a
+recipe to stream a Linux desktop using VLC to a instance of Kodi&lt;/a&gt;.
+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.&lt;/p&gt;
+
+&lt;p&gt;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
+&lt;a href=&quot;https://kodi.wiki/view/JSON-RPC_API/v8&quot;&gt;the JSON-RPC API in
+Kodi&lt;/a&gt; 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.&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+#!/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=&quot;$1&quot;
+    cmd=&quot;$2&quot;
+    params=&quot;$3&quot;
+    curl --silent --header &#39;Content-Type: application/json&#39; \
+        --data-binary &quot;{ \&quot;id\&quot;: 1, \&quot;jsonrpc\&quot;: \&quot;2.0\&quot;, \&quot;method\&quot;: \&quot;$cmd\&quot;, \&quot;params\&quot;: $params }&quot; \
+        &quot;http://$host/jsonrpc&quot;
+}
+cleanup() {
+    if [ -n &quot;$kodihost&quot; ] ; then
+       # Stop the playing when we end
+       playerid=$(kodicmd &quot;$kodihost&quot; Player.GetActivePlayers &quot;{}&quot; |
+                           jq .result[].playerid)
+       kodicmd &quot;$kodihost&quot; Player.Stop &quot;{ \&quot;playerid\&quot; : $playerid }&quot; &gt; /dev/null
+    fi
+    if [ &quot;$gstpid&quot; ] &amp;&amp; kill -0 &quot;$gstpid&quot; &gt;/dev/null 2&gt;&amp;1; then
+       kill &quot;$gstpid&quot;
+    fi
+}
+trap cleanup EXIT INT
+
+if [ -n &quot;$1&quot; ]; then
+    kodihost=$1
+    shift
+else
+    kodihost=kodi.local
+fi
+
+mcast=239.255.0.1
+mcastport=1234
+mcastttl=1
+
+pasrc=$(pactl list | grep -A2 &#39;Source #&#39; | grep &#39;Name: .*\.monitor$&#39; | \
+  cut -d&quot; &quot; -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. \
+  &gt; /dev/null 2&gt;&amp;1 &amp;
+gstpid=$!
+
+# Give stream a second to get going
+sleep 1
+
+# Ask kodi to start streaming using its JSON-RPC API
+kodicmd &quot;$kodihost&quot; Player.Open \
+       &quot;{\&quot;item\&quot;: { \&quot;file\&quot;: \&quot;udp://@$mcast:$mcastport\&quot; } }&quot; &gt; /dev/null
+
+# wait for gst to end
+wait &quot;$gstpid&quot;
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;I hope you find the approach useful.  I know I do.&lt;/p&gt;
+
+&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>Streaming the Linux desktop to Kodi using VLC and RTSP</title>
                <link>http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html</link>
@@ -583,63 +683,5 @@ one taken by any Free World.&lt;/p&gt;
 </description>
        </item>
        
-       <item>
-               <title>Facebooks ability to sell your personal information is the real Cambridge Analytica scandal</title>
-               <link>http://people.skolelinux.org/pere/blog/Facebooks_ability_to_sell_your_personal_information_is_the_real_Cambridge_Analytica_scandal.html</link>
-               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Facebooks_ability_to_sell_your_personal_information_is_the_real_Cambridge_Analytica_scandal.html</guid>
-                <pubDate>Wed, 21 Mar 2018 16:30:00 +0100</pubDate>
-               <description>&lt;p&gt;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.&lt;/p&gt;
-
-&lt;p&gt;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.&lt;/p&gt;
-
-&lt;p&gt;Personally, I would recommend to completely remove your Facebook
-account, and take back some control of your personal information.
-&lt;a href=&quot;https://www.theguardian.com/technology/2018/mar/19/how-to-protect-your-facebook-privacy-or-delete-yourself-completely&quot;&gt;According
-to The Guardian&lt;/a&gt;, it is a bit hard to find out how to request
-account removal (and not just &#39;disabling&#39;).  You need to
-&lt;a href=&quot;https://www.facebook.com/help/224562897555674?helpref=faq_content&quot;&gt;visit
-a specific Facebook page&lt;/a&gt; and click on &#39;let us know&#39; on that page
-to get to &lt;a href=&quot;https://www.facebook.com/help/delete_account&quot;&gt;the
-real account deletion screen&lt;/a&gt;.  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.&lt;/p&gt;
-
-&lt;p&gt;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 &lt;a href=&quot;&quot;&gt;NUUG&lt;/a&gt; last april about
-&lt;a href=&quot;https://www.nuug.no/aktiviteter/20170404-big-data-psychometric/&quot;&gt;
-Data collection, psychometric profiling and their impact on
-politics&lt;/a&gt;.&lt;/p&gt;
-
-&lt;p&gt;And if you want to communicate with your friends and loved ones,
-use some end-to-end encrypted method like
-&lt;a href=&quot;https://www.signal.org/&quot;&gt;Signal&lt;/a&gt; or
-&lt;a href=&quot;https://ring.cx/&quot;&gt;Ring&lt;/a&gt;, and stop sharing your private
-messages with strangers like Facebook and Google.&lt;/p&gt;
-</description>
-       </item>
-       
         </channel>
 </rss>