--- /dev/null
+diff --git a/plugin/controllers/ajax.py b/plugin/controllers/ajax.py
+index 1a60d78..4db8c5c 100644
+--- a/plugin/controllers/ajax.py
++++ b/plugin/controllers/ajax.py
+@@ -123,6 +123,11 @@ class AjaxController(BaseController):
+ movies = getMovieList(request.args["dirname"][0])
+ else:
+ movies = getMovieList()
++ info = getInfo()
++ model = info["model"]
++ movies['transcoding'] = False
++ if model in ("solo2", "duo2"):
++ movies['transcoding'] = True
+ return movies
+
+ def P_workinprogress(self, request):
+diff --git a/plugin/controllers/models/stream.py b/plugin/controllers/models/stream.py
+index de2f6ed..2311c5b 100644
+--- a/plugin/controllers/models/stream.py
++++ b/plugin/controllers/models/stream.py
+@@ -73,7 +73,14 @@ def getTS(self,request):
+ else:
+ progopt=""
+
+- response = "#EXTM3U\n#EXTVLCOPT--http-reconnect=true \n%shttp://%s:%s/file?file=%s\n" % (progopt,request.getRequestHostname(), config.OpenWebif.port.value, quote(filename))
++ portNumber = config.OpenWebif.port.value
++ info = getInfo()
++ model = info["model"]
++ if model in ("solo2","duo2"):
++ if "device" in request.args :
++ if request.args["device"][0] == "phone" :
++ portNumber = 8003;
++ response = "#EXTM3U\n#EXTVLCOPT--http-reconnect=true \n%shttp://%s:%s/file?file=%s\n" % (progopt,request.getRequestHostname(), portNumber, quote(filename))
+ request.setHeader('Content-Type', 'application/text')
+ return response
+ else:
+diff --git a/plugin/controllers/views/ajax/movies.tmpl b/plugin/controllers/views/ajax/movies.tmpl
+index 6b0670c..7a026cf 100755
+--- a/plugin/controllers/views/ajax/movies.tmpl
++++ b/plugin/controllers/views/ajax/movies.tmpl
+@@ -49,19 +49,28 @@
+ </div>\r
+ #end if\r
+ </div>\r
+- <div class="moviecontainer_right">\r
+- <div style="padding: 3px; text-align: right;">\r
+- <a target="_blank" href='/web/ts.m3u?file=$quote($movie.filename)'>\r
+- <img align="top" src="../images/ico_stream.png" title="Stream $movie.eventname" border="0">\r
+- </a>\r
+- <a href='/file?action=download&file=$quote($movie.filename)'>\r
+- <img align="top" src="../images/ico_download.png" title="Download $movie.eventname" border="0">\r
+- </a>\r
+- <a href='#' onClick="deleteMovie('$quote($movie.serviceref)', '$count'); return false;">\r
+- <img src="../images/ico_delete.png" title="Delete Movie" border="0"></a>\r
+- </a>\r
+- </div>\r
+- </div>\r
++ <div class="moviecontainer_right">\r
++ <div style="padding: 3px; text-align: right;">\r
++ #if $transcoding\r
++ <a href="#" onclick="jumper80('$quote($movie.filename)');">\r
++ <img align="top" src="../images/ico_stream.png" title="Stream $movie.eventname" border="0">\r
++ </a>\r
++ <a href="#" onclick="jumper8003('$quote($movie.filename)');">\r
++ <img align="top" src="../images/ico_stream.png" title="Stream(8003) $movie.eventname" border="0">\r
++ </a>\r
++ #else\r
++ <a target="_blank" href='/web/ts.m3u?file=$quote($movie.filename)'>\r
++ <img align="top" src="../images/ico_stream.png" title="Stream $movie.eventname" border="0">\r
++ </a>\r
++ #end if\r
++ <a href='/file?action=download&file=$quote($movie.filename)'>\r
++ <img align="top" src="../images/ico_download.png" title="Download $movie.eventname" border="0">\r
++ </a>\r
++ <a href='#' onClick="deleteMovie('$quote($movie.serviceref)', '$count'); return false;">\r
++ <img src="../images/ico_delete.png" title="Delete Movie" border="0"></a>\r
++ </a>\r
++ </div>\r
++ </div>\r
+ <div style="clear: both;"></div>\r
+ #set $count += 1\r
+ </div>\r
+@@ -72,4 +81,4 @@
+ \r
+ <script type="text/javascript">\r
+ \$('#moviebuttons').buttonset();\r
+-</script>
+\ No newline at end of file
++</script>\r
+diff --git a/plugin/controllers/views/main.tmpl b/plugin/controllers/views/main.tmpl
+index 760bab8..fc217a7 100755
+--- a/plugin/controllers/views/main.tmpl
++++ b/plugin/controllers/views/main.tmpl
+@@ -202,5 +202,9 @@
+ <input type="hidden" name="name">\r
+ <input type="hidden" name="device">\r
+ </form>\r
++ <form name="portFormTs" action="/web/ts.m3u" method="GET" target="_blank">\r
++ <input type="hidden" name="file">\r
++ <input type="hidden" name="device">\r
++ </form>\r
+ </body>\r
+ </html>\r
+diff --git a/plugin/public/js/transcoding.js b/plugin/public/js/transcoding.js
+index 8729835..785a4b7 100644
+--- a/plugin/public/js/transcoding.js
++++ b/plugin/public/js/transcoding.js
+@@ -41,6 +41,20 @@ function getOSType() {
+ return "unknown";
+ }
+
++function jumper80( file ) {
++ var deviceType = getDeviceType();
++ document.portFormTs.file.value = file;
++ document.portFormTs.device.value = "etc";
++ document.portFormTs.submit();
++}
++
++function jumper8003( file ) {
++ var deviceType = getDeviceType();
++ document.portFormTs.file.value = file;
++ document.portFormTs.device.value = "phone";
++ document.portFormTs.submit();
++}
++
+ function jumper8002( sref, sname ) {
+ var deviceType = getDeviceType();
+ document.portForm.ref.value = sref;
${@base_contains("VUPLUS_FEATURES", "dlna", "enigma2-plugin-extensions-dlnaserver enigma2-plugin-extensions-dlnabrowser", "", d)} \
${@base_contains("VUPLUS_FEATURES", "3gmodem", "enigma2-plugin-systemplugins-3gmodemmanager", "", d)} \
${@base_contains("VUPLUS_FEATURES", "autoshutdown", "enigma2-plugin-systemplugins-autoshutdown", "", d)} \
- ${@base_contains("VUPLUS_FEATURES", "transcoding", "enigma2-plugin-systemplugins-transcodingsetup enigma2-transtreamproxy", "", d)} \
+ ${@base_contains("VUPLUS_FEATURES", "transcoding", "enigma2-plugin-systemplugins-transcodingsetup enigma2-transtreamproxy enigma2-filestreamproxy", "", d)} \
${@base_contains("VUPLUS_FEATURES", "wol", "enigma2-plugin-systemplugins-wolsetup", "", d)} \
${@base_conditional("MACHINE", "vuduo2", "duo2lcd4linux lcd4linuxsupport", "", d)} \
${@base_conditional("MACHINE", "vuduo2", "vuplus-checkvfd", "", d)} \