-
A while back, I was asked by a friend how to stream the desktop to
+
PS: See
+the
+followup post for a even better approach.
+
+
A while back, I was asked by a friend how to stream the desktop to
my projector connected to Kodi. I sadly had to admit that I had no
idea, as it was a task I never had tried. Since then, I have been
looking for a way to do so, preferable without much extra software to
@@ -78,8 +276,8 @@ echo rtsp://192.168.11.4:8080/test.sdp \
Note the 192.168.11.4 IP address is my desktops IP address. As far
as I can tell the IP must be hardcoded for this to work. In other
words, if someone elses machine is going to do the steaming, you have
-to update screenstream.m4u on the Kodi machine and adjust the vlc
-repice. To get started, locate the file in Kodi and select the m3u
+to update screenstream.m3u on the Kodi machine and adjust the vlc
+recipe. To get started, locate the file in Kodi and select the m3u
file while the VLC stream is running. The desktop then show up in my
big screen. :)
@@ -88,6 +286,79 @@ the audio quality is really bad. No idea if the problem is package
loss or bad parameters for the transcode. I do not know VLC nor Kodi
enough to tell.
+
Update 2018-07-12: Johannes Schauer send me a few
+succestions and reminded me about an important step. The "screen:"
+input source is only available once the vlc-plugin-access-extra
+package is installed on Debian. Without it, you will see this error
+message: "VLC is unable to open the MRL 'screen://'. Check the log
+for details." He further found that it is possible to drop some parts
+of the VLC command line to reduce the amount of hardcoded information.
+It is also useful to consider using cvlc to avoid having the VLC
+window in the desktop view. In sum, this give us this command line on
+the source end
+
+
+cvlc screen:// --sout \
+ '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
+
+
+
and this on the Kodi end
+
+
+echo rtsp://192.168.11.4:8080/ \
+ > /storage/videos/screenstream.m3u
+
+
+
Still bad image quality, though. But I did discover that streaming
+a DVD using dvdsimple:///dev/dvd as the source had excellent video and
+audio quality, so I guess the issue is in the input or transcoding
+parts, not the rtsp part. I've tried to change the vb and ab
+parameters to use more bandwidth, but it did not make a
+difference.
+
+
I further received a suggestion from Einar Haraldseid to try using
+gstreamer instead of VLC, and this proved to work great! He also
+provided me with the trick to get Kodi to use a multicast stream as
+its source. By using this monstrous oneliner, I can stream my desktop
+with good video quality in reasonable framerate to the 239.255.0.1
+multicast address on port 1234:
+
+
+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=239.255.0.1 port=1234 ttl-mc=1 auto-multicast=1 sync=0 \
+ pulsesrc device=$(pactl list | grep -A2 'Source #' | \
+ grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
+ audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
+
+
+
and this on the Kodi end
+
+
+echo udp://@239.255.0.1:1234 \
+ > /storage/videos/screenstream.m3u
+
+
+
Note the trick to pick a valid pulseaudio source. It might not
+pick the one you need. This approach will of course lead to trouble
+if more than one source uses the same multicast port and address.
+Note the ttl-mc=1 setting, which limit the multicast packages to the
+local network. If the value is increased, your screen will be
+broadcasted further, one network "hop" for each increase (read up on
+multicast to learn more. :)!
+
+
Having cracked how to get Kodi to receive multicast streams, I
+could use this VLC command to stream to the same multicast address.
+The image quality is way better than the rtsp approach, but gstreamer
+seem to be doing a better job.
+
+
+cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
+
+
As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.
@@ -96,7 +367,7 @@ activities, please send Bitcoin donations to my address
@@ -329,6 +600,38 @@ activities, please send Bitcoin donations to my address
Archive
+- 2020
+
+
+- 2019
+
+
- 2018
@@ -629,7 +942,9 @@ activities, please send Bitcoin donations to my address
- bankid (4)
- - bitcoin (9)
+ - betalkontant (8)
+
+ - bitcoin (11)
- bootsystem (17)
@@ -637,31 +952,31 @@ activities, please send Bitcoin donations to my address
- chrpath (2)
- - debian (159)
+ - debian (168)
- debian edu (158)
- debian-handbook (4)
- - digistan (10)
+ - digistan (11)
- dld (17)
- - docbook (25)
+ - docbook (26)
- drivstoffpriser (4)
- - english (377)
+ - english (412)
- fiksgatami (23)
- - fildeling (13)
+ - fildeling (14)
- - freeculture (32)
+ - freeculture (34)
- freedombox (9)
- - frikanalen (18)
+ - frikanalen (20)
- h264 (20)
@@ -669,7 +984,9 @@ activities, please send Bitcoin donations to my address
- isenkram (16)
- - kart (20)
+ - kart (22)
+
+ - kodi (4)
- ldap (9)
@@ -683,21 +1000,23 @@ activities, please send Bitcoin donations to my address
- mesh network (8)
- - multimedia (41)
+ - multimedia (42)
+
+ - nice free software (12)
- - nice free software (10)
+ - noark5 (21)
- - norsk (299)
+ - norsk (311)
- - nuug (190)
+ - nuug (196)
- - offentlig innsyn (33)
+ - offentlig innsyn (37)
- open311 (2)
- - opphavsrett (71)
+ - opphavsrett (75)
- - personvern (107)
+ - personvern (111)
- raid (2)
@@ -707,27 +1026,27 @@ activities, please send Bitcoin donations to my address
- rfid (3)
- - robot (10)
+ - robot (12)
- rss (1)
- - ruter (6)
+ - ruter (7)
- scraperwiki (2)
- - sikkerhet (54)
+ - sikkerhet (56)
- sitesummary (4)
- skepsis (5)
- - standard (55)
+ - standard (69)
- stavekontroll (6)
- stortinget (12)
- - surveillance (55)
+ - surveillance (57)
- sysadmin (4)
@@ -735,13 +1054,13 @@ activities, please send Bitcoin donations to my address
- valg (9)
- - verkidetfri (11)
+ - verkidetfri (17)
- - video (65)
+ - video (73)
- vitenskap (4)
- - web (41)
+ - web (42)