Playing VLC http video stream with Plex

Hi!

I recently bought a Samsung smart TV that offers a Plex app. I installed the latest media server on ubuntu 14.04.
Streaming videos from my HD works great but I have troubles with http streaming.
Before I posted here I was spending hours on this forum trying to figure something out without success.

I intend to stream my ubuntu desktop on the TV. For example for streaming steam games on the TV (if performance allows that). Such a video stream can easily created using VLC. I use this code for testing:

cvlc screen:// \
  --screen-fps 25 --screen-width 1920 --screen-height 1080 \
  --nooverlay \
  --sout '#transcode{vcodec=h264,acodec=mpga,channels=2,samplerate=44100,ab=128,width=1280,height=720}:standard{access=http,mux=ts,dst=:3030}'

With VLC I can view the stream at http://127.0.0.1:3030

I tried to create a very simple channel for playing the stream. The code is as follows:

NAME = 'Test'
url_vlc = "http://127.0.0.1:3030"

####################################################################################################
def Start():
	HTTP.CacheTime = 300

####################################################################################################
@handler('/video/test', NAME, allow_sync=True)
def MainMenu():
	oc = ObjectContainer(title1="VLC Player")
	vco = CreateVideoClipObject(title="Play", include_container=False)
	oc.add(vco)
	return oc

####################################################################################################
@route('/video/vlc/stream')
def CreateVideoClipObject(title, include_container=False):
	videoclip_obj = VideoClipObject(
		key = Callback(CreateVideoClipObject, title=title, include_container=True),
		rating_key = url_vlc,
		title = title,
		summary = 'foo bar baz',
		items = [
			MediaObject(
				parts = [
					PartObject(key=url_vlc)
				]
				#, video_codec = VideoCodec.H264
				#, video_resolution = '720'
			)
		]
	)

	if include_container:
		return ObjectContainer(objects=[videoclip_obj])
	else:
		return videoclip_obj

When trying to play the stream in Plex web client, the message “Dieser Kanal reagiert nicht.” (channel does not react).
Here is what is going on in the channel log:

2016-02-22 20:07:57,284 (7fbdadffb700) :  DEBUG (runtime:717) - Handling request GET /video/test
2016-02-22 20:07:57,286 (7fbdadffb700) :  DEBUG (runtime:814) - Found route matching /video/test
2016-02-22 20:07:57,287 (7fbdadffb700) :  DEBUG (base:117) - Checking if com.plexapp.plugins.test is broken
2016-02-22 20:07:57,287 (7fbdadffb700) :  DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjQKY29tLnBsZXhhcHAucGx1Z2lucy50ZXN0czEwCmlkZW50aWZpZXJyMAo_'
2016-02-22 20:07:57,300 (7fbdadffb700) :  WARNING (objectkit:208) - Media part has no streams - attempting to synthesize
2016-02-22 20:07:57,304 (7fbdadffb700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 876 bytes

And the media server log:

Feb 22, 2016 20:42:25 [0x7fe2db3ff700] DEBUG - Request: [127.0.0.1:47477] GET /system/messaging/clear_events/com.plexapp.plugins.vlc (9 live) GZIP
Feb 22, 2016 20:42:25 [0x7fe2db3ff700] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /system/messaging/clear_events/com.plexapp.plugins.vlc
Feb 22, 2016 20:42:25 [0x7fe2db3ff700] DEBUG - HTTP requesting GET http://127.0.0.1:55524/system/messaging/clear_events/com.plexapp.plugins.vlc
Feb 22, 2016 20:42:25 [0x7fe2db3ff700] DEBUG - [com.plexapp.system] HTTP reply status 200, with 0 bytes of content.
Feb 22, 2016 20:42:25 [0x7fe2e67ff700] DEBUG - Completed: [127.0.0.1:47477] GET /system/messaging/clear_events/com.plexapp.plugins.vlc (9 live) GZIP 5ms 180 bytes 200
Feb 22, 2016 20:42:25 [0x7fe2d8ffd700] DEBUG - Request: [127.0.0.1:47479] GET /:/plugins/com.plexapp.system/resourceHashes (10 live) GZIP
Feb 22, 2016 20:42:25 [0x7fe2d8ffd700] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /:/plugins/com.plexapp.system/resourceHashes
Feb 22, 2016 20:42:25 [0x7fe2d8ffd700] DEBUG - HTTP requesting GET http://127.0.0.1:55524/:/plugins/com.plexapp.system/resourceHashes
Feb 22, 2016 20:42:25 [0x7fe2d8ffd700] DEBUG - [com.plexapp.system] HTTP reply status 200, with 13276 bytes of content.
Feb 22, 2016 20:42:25 [0x7fe2e67ff700] DEBUG - Completed: [127.0.0.1:47479] GET /:/plugins/com.plexapp.system/resourceHashes (10 live) GZIP 7ms 3355 bytes 200
Feb 22, 2016 20:42:25 [0x7fe2d5fa7700] DEBUG - Request: [127.0.0.1:47481] GET /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_ (11 live) GZIP
Feb 22, 2016 20:42:25 [0x7fe2d5fa7700] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Feb 22, 2016 20:42:25 [0x7fe2d5fa7700] DEBUG - HTTP requesting GET http://127.0.0.1:55524/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Feb 22, 2016 20:42:25 [0x7fe2d77ff700] DEBUG - Request: [127.0.0.1:47483] GET / (11 live) GZIP
Feb 22, 2016 20:42:25 [0x7fe2d77ff700] DEBUG - It took 0.0 sec to serialize a list with 20 elements.
Feb 22, 2016 20:42:25 [0x7fe2e67ff700] DEBUG - Completed: [127.0.0.1:47483] GET / (11 live) GZIP 2ms 1018 bytes 200
Feb 22, 2016 20:42:25 [0x7fe2d5fa7700] DEBUG - [com.plexapp.system] HTTP reply status 200, with 80500 bytes of content.
Feb 22, 2016 20:42:25 [0x7fe2e67ff700] DEBUG - Completed: [127.0.0.1:47481] GET /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_ (11 live) GZIP 42ms 25805 bytes 200
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - Reading 685 bytes in the body, code is 200
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - [com.plexapp.plugins.vlc] Plug-in running on port 34183.
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG -  * Plug-in handles prefix: /video/vlc
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG -  * Plug-in handles prefix: /video/vlc
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - Read configuration for [com.plexapp.plugins.vlc], had 1 prefixes
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - [com.plexapp.plugins.vlc] Sending command over HTTP (GET): /video/vlc/stream?include_container=True&title=Play
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - HTTP requesting GET http://127.0.0.1:34183/video/vlc/stream?include_container=True&title=Play
Feb 22, 2016 20:42:25 [0x7fe2dcbff700] DEBUG - [com.plexapp.plugins.vlc] HTTP reply status 404, with 0 bytes of content.
Feb 22, 2016 20:42:25 [0x7fe2e5ffe700] DEBUG - Completed: [127.0.0.1:47460] GET /video/vlc/stream?include_container=True&title=Play (11 live) GZIP 1369ms 140 bytes 404 (pipelined: 13)

So there is a 404, but I don’t understand why, VLC has no issues accessing this URL.

Any ideas?

define a global var PREFIX = '/video/vlc'
then use

@handler(PREFIX, NAME, allow_sync=True)

@route(PREFIX + '/stream')

also if you use a non-string in a route function you should declare it in the route decorator

@route(PREFIX + '/stream', include_container=bool)
def CreateVideoClipObject(title, include_container=False):

thanks for the answer!

there is some progress, plex now tries to start transcoding the stream but fails:

Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: analyzing media item -1
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: Direct Play is disabled
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: container is unavailable for analysis
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: media must be transcoded in order to use the dash protocol
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: no direct play video profile exists for http//h264
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: no direct play video profile exists for http//h264/
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: codec is unavailable for analysis
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: codec is unavailable for analysis
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - MDE: Play: selected media 0 / -1
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - Found session GUID of c9tz8lrfn0s in session start.
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - Cleaning directory for session c9tz8lrfn0s ()
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - Starting a transcode session c9tz8lrfn0s at offset -1.0 (state=2)
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - TranscodeJobManager: [Running] onTranscodeSessionStarted: c9tz8lrfn0s
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - TranscodeJobManager: [Running] -> [Throttled]
Feb 23, 2016 00:07:10 [0x7f71973fc700] DEBUG - Job running: XDG_CACHE_HOME='/home/daniel/Library/Application Support/Plex Media Server/Cache/' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources/' '/usr/lib/plexmediaserver/Resources/Plex New Transcoder' '-noaccurate_seek' '-i' 'http://127.0.0.1:3030' '-map' '0:v:0' '-codec:0' 'copy' '-map' '0:a:0' '-codec:1' 'aac' '-strict:1' 'experimental' '-cutoff:1' '15000' '-channel_layout:1' 'stereo' '-b:1' '256k' '-f' 'dash' '-use_timeline' '0' '-min_seg_duration' '5000000' '-skip_to_segment' '1' '-time_delta' '0.0625' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' 'dash' '-start_at_zero' '-copyts' '-vsync' 'cfr' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/c9tz8lrfn0s/progress'
Feb 23, 2016 00:07:11 [0x7f71943fe700] ERROR - [Transcoder] [h264 @ 0x29af160] non-existing PPS 0 referenced
Feb 23, 2016 00:07:11 [0x7f71983fe700] ERROR - [Transcoder] [h264 @ 0x29af160] decode_slice_header error
Feb 23, 2016 00:07:11 [0x7f71963ff700] ERROR - [Transcoder] [h264 @ 0x29af160] no frame!
....
Feb 23, 2016 00:07:16 [0x7f71943fe700] ? - [Transcoder] http://127.0.0.1:3030: could not find codec parameters
Feb 23, 2016 00:07:16 [0x7f71983fe700] INFO - [Transcoder] Input #0, mpegts, from 'http://127.0.0.1:3030':
  Duration: N/A, start: 22599.226044, bitrate: N/A
  Program 1 
    Stream #0:0[0x44], 128, 1/90000: Video: h264 ([27][0][0][0] / 0x001B), none, 25 tbr, 90k tbn, 180k tbc
Feb 23, 2016 00:07:16 [0x7f71963ff700] ? - [Transcoder] Stream map '0:a:0' matches no streams.
Feb 23, 2016 00:07:16 [0x7f7194fff700] ? - [Transcoder] 
Feb 23, 2016 00:07:16 [0x7f71973fc700] ERROR - Failed to start session successfully.

Not sure what “Stream map ‘0:a:0’ matches no streams” means.
Maybe I am just missing correct parameters for the MediaObject?
Above log occured with:

			MediaObject(
				parts = [
					PartObject(key=url_vlc)
				],
				video_codec = VideoCodec.H264,
				video_resolution = '720',
				optimized_for_streaming = True
			)

When I also specify “container = Container.MP4”, “audio_codec = AudioCodec.AAC” and “audio_channels = 2” the server log just contains:

Feb 23, 2016 00:15:12 [0x7ff382ffe700] DEBUG - [com.plexapp.plugins.test] Sending command over HTTP (GET): /video/test/stream?include_container=1&title=Play
Feb 23, 2016 00:15:12 [0x7ff382ffe700] DEBUG - HTTP requesting GET http://127.0.0.1:49707/video/test/stream?include_container=1&title=Play
Feb 23, 2016 00:15:12 [0x7ff382ffe700] DEBUG - [com.plexapp.plugins.test] HTTP reply status 304, with 0 bytes of content.
Feb 23, 2016 00:15:12 [0x7ff38d7ff700] DEBUG - Completed: [127.0.0.1:49546] GET /video/test/stream?include_container=1&title=Play (7 live) GZIP 12ms 174 bytes 304 (pipelined: 17)

But I am a bit unsure if container and audio codec are correct for the VLC stream.

you will have to do something like this:

        items = [
            MediaObject(
                parts = [
                    PartObject(key=Callback(Play, url=url_vlc))
                ]
            )
        ]

@route(PREFIX + '/play')
def Play(url):
    return Redirect(url)

I don’t know if that will work with whatever the vlc stream is + whatever plex client you try to use.

Still the same :frowning:

Here is the channel log:

2016-02-24 18:14:13,660 (7fa1d734d740) :  INFO (pipeinterface:25) - Entering run loop
2016-02-24 18:14:13,660 (7fa1d734d740) :  DEBUG (runtime:717) - Handling request GET /:/prefixes
2016-02-24 18:14:13,662 (7fa1d734d740) :  DEBUG (runtime:814) - Found route matching /:/prefixes
2016-02-24 18:14:13,783 (7fa1af7fe700) :  DEBUG (services:362) - Loaded services
2016-02-24 18:14:13,791 (7fa1aeffd700) :  DEBUG (services:438) - No shared code to load
2016-02-24 18:14:13,792 (7fa1d734d740) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 440 bytes
2016-02-24 18:14:34,305 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test
2016-02-24 18:14:34,310 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test
2016-02-24 18:14:34,313 (7fa1aeffd700) :  DEBUG (base:117) - Checking if com.plexapp.plugins.test is broken
2016-02-24 18:14:34,322 (7fa1aeffd700) :  DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjQKY29tLnBsZXhhcHAucGx1Z2lucy50ZXN0czEwCmlkZW50aWZpZXJyMAo_'
2016-02-24 18:14:34,332 (7fa1aeffd700) :  WARNING (objectkit:208) - Media part has no streams - attempting to synthesize
2016-02-24 18:14:34,334 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1039 bytes
2016-02-24 18:14:35,955 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test
2016-02-24 18:14:35,956 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test
2016-02-24 18:14:35,957 (7fa1aeffd700) :  DEBUG (base:117) - Checking if com.plexapp.plugins.test is broken
2016-02-24 18:14:35,958 (7fa1aeffd700) :  DEBUG (networking:166) - Requesting 'http://127.0.0.1:32400/:/plugins/com.plexapp.system/messaging/function/X1N0b3JlU2VydmljZTpJc0NoYW5uZWxCcm9rZW4_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMQpzMjQKY29tLnBsZXhhcHAucGx1Z2lucy50ZXN0czEwCmlkZW50aWZpZXJyMAo_'
2016-02-24 18:14:35,971 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1039 bytes
2016-02-24 18:14:35,999 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test/stream?include_container=1&title=Play
2016-02-24 18:14:36,000 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test/stream
2016-02-24 18:14:36,003 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1005 bytes
2016-02-24 18:14:37,642 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test/stream?include_container=1&title=Play
2016-02-24 18:14:37,643 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test/stream
2016-02-24 18:14:37,647 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1005 bytes
2016-02-24 18:14:37,762 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test/stream?include_container=1&title=Play
2016-02-24 18:14:37,764 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test/stream
2016-02-24 18:14:37,767 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1005 bytes
2016-02-24 18:14:37,854 (7fa1aeffd700) :  DEBUG (runtime:717) - Handling request GET /video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030
2016-02-24 18:14:37,855 (7fa1aeffd700) :  DEBUG (runtime:814) - Found route matching /video/test/play
2016-02-24 18:14:37,856 (7fa1aeffd700) :  DEBUG (runtime:924) - Response: [302] Redirect, 0 bytes

And here the media server log:

Feb 24, 2016 18:14:37 [0x7f9e2d7ff700] DEBUG - [com.plexapp.plugins.test] Sending command over HTTP (GET): /video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e34bfd700] DEBUG - Request: [127.0.0.1:39769] GET /photo/:/transcode?url=http%3A%2F%2Fresources-cdn.plexapp.com%2Fimage%2Fsource%2Fcom.plexapp.plugins.test.jpg%3Fh%3D93fe609&width=100&height=150&minSize=1 (7 live) GZIP
Feb 24, 2016 18:14:37 [0x7f9e2d7ff700] DEBUG - HTTP requesting GET http://127.0.0.1:57288/video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e2d7ff700] DEBUG - [com.plexapp.plugins.test] HTTP reply status 304, with 0 bytes of content.
Feb 24, 2016 18:14:37 [0x7f9e42fff700] DEBUG - Completed: [127.0.0.1:39765] GET /video/test/stream?include_container=1&title=Play (7 live) GZIP 9ms 174 bytes 304 (pipelined: 19)
Feb 24, 2016 18:14:37 [0x7f9e34bfd700] DEBUG - Photo transcoder: Request for url [resources-cdn.plexapp.com/image/source/com.plexapp.plugins.test.jpg?h=93fe609] (is local: 0 upscaled: 0)
Feb 24, 2016 18:14:37 [0x7f9e34bfd700] DEBUG - Content-Length of /home/daniel/Library/Application Support/Plex Media Server/Cache/PhotoTranscoder/cb/cb4e53c08664b7e52272a0ba5f4d7021f495e69b.jpg is 4230.
Feb 24, 2016 18:14:37 [0x7f9e42fff700] DEBUG - Completed: [127.0.0.1:39769] GET /photo/:/transcode?url=http%3A%2F%2Fresources-cdn.plexapp.com%2Fimage%2Fsource%2Fcom.plexapp.plugins.test.jpg%3Fh%3D93fe609&width=100&height=150&minSize=1 (7 live) GZIP 75ms 4230 bytes 200 (pipelined: 13)
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Request: [127.0.0.1:39765] GET /video/:/transcode/universal/start.mpd?path=http%3A%2F%2F127.0.0.1%3A32400%2Fvideo%2Ftest%2Fstream%3Finclude_container%3D1%26title%3DPlay&mediaIndex=-1&partIndex=0&protocol=dash&offset=0&fastSeek=1&directPlay=0&directStream=1&subtitleSize=100&audioBoost=100&session=o55zh8y42a&subtitles=burn&Accept-Language=de&X-Plex-Product=Plex%20Web&X-Plex-Version=2.5.2&X-Plex-Client-Identifier=rdo29xlmxi&X-Plex-Platform=Firefox&X-Plex-Platform-Version=44.0&X-Plex-Device=Linux&X-Plex-Device-Name=Plex%20Web%20%28Firefox%29 (7 live) GZIP
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Found session GUID of o55zh8y42a in session start.
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - TranscodeUniversalRequest: using profile Web
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Downloading document http://127.0.0.1:32400/video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - HTTP requesting GET http://127.0.0.1:32400/video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - Request: [127.0.0.1:39801] GET /video/test/stream?include_container=1&title=Play (8 live) GZIP
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - Plug-in com.plexapp.plugins.test has been used 112 times.
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - [com.plexapp.plugins.test] Sending command over HTTP (GET): /video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - (Capabilties) Passing down capabilities of 'protocols=http-streaming-video;videoDecoders=h264{profile:high&resolution:1080&level:41};audioDecoders=aac{channels:2}' to plug-in.
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - HTTP requesting GET http://127.0.0.1:57288/video/test/stream?include_container=1&title=Play
Feb 24, 2016 18:14:37 [0x7f9e36fff700] DEBUG - [com.plexapp.plugins.test] HTTP reply status 200, with 1005 bytes of content.
Feb 24, 2016 18:14:37 [0x7f9e42fff700] DEBUG - Completed: [127.0.0.1:39801] GET /video/test/stream?include_container=1&title=Play (8 live) GZIP 8ms 783 bytes 200
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: analyzing media item -1
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: Direct Play is disabled
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: container is unavailable for analysis
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: media must be transcoded in order to use the dash protocol
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: no direct play video profile exists for http//h264
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: no direct play video profile exists for http//h264/
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: codec is unavailable for analysis
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Play: unable to obtain value for part.optimizedForStreaming
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: no remuxable profile found, so video stream will be transcoded
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Play: unable to obtain value for part.optimizedForStreaming
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: computed resolution bounding box of 1280x720.
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: codec is unavailable for analysis
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - MDE: Play: selected media 0 / -1
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Found session GUID of o55zh8y42a in session start.
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Cleaning directory for session o55zh8y42a ()
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Starting a transcode session o55zh8y42a at offset -1.0 (state=2)
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - TranscodeJobManager: [Running] onTranscodeSessionStarted: o55zh8y42a
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - TranscodeJobManager: [Running] -> [Throttled]
Feb 24, 2016 18:14:37 [0x7f9e3bfff700] DEBUG - Job running: XDG_CACHE_HOME='/home/daniel/Library/Application Support/Plex Media Server/Cache/' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources/' '/usr/lib/plexmediaserver/Resources/Plex New Transcoder' '-i' 'http://127.0.0.1:32400/video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030' '-filter_complex' '[0:v:0]scale=w=min(1280\,iw):h=min(720\,ih):force_original_aspect_ratio=decrease[0]' '-map' '[0]' '-codec:0' 'libx264' '-crf:0' '18' '-pix_fmt:0' 'yuv420p' '-preset:0' 'veryfast' '-x264opts' 'cabac=0:8x8dct=1:bframes=0:subme=1:me_range=4:rc_lookahead=10:me=hex:8x8dct=0:partitions=none:cabac=0' '-force_key_frames:0' 'expr:gte(t,0+n_forced*3)' '-map' '0:a:0' '-codec:1' 'aac' '-strict:1' 'experimental' '-cutoff:1' '15000' '-channel_layout:1' 'stereo' '-b:1' '256k' '-f' 'dash' '-use_timeline' '0' '-min_seg_duration' '3000000' '-skip_to_segment' '1' '-time_delta' '0.0625' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' 'dash' '-start_at_zero' '-copyts' '-vsync' 'cfr' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/o55zh8y42a/progress'
Feb 24, 2016 18:14:37 [0x7f9e38bff700] DEBUG - Request: [127.0.0.1:39803] GET /video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030 (9 live)
Feb 24, 2016 18:14:37 [0x7f9e38bff700] DEBUG - Plug-in com.plexapp.plugins.test has been used 113 times.
Feb 24, 2016 18:14:37 [0x7f9e38bff700] DEBUG - [com.plexapp.plugins.test] Sending command over HTTP (GET): /video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030
Feb 24, 2016 18:14:37 [0x7f9e38bff700] DEBUG - HTTP requesting GET http://127.0.0.1:57288/video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030
Feb 24, 2016 18:14:37 [0x7f9e38bff700] DEBUG - [com.plexapp.plugins.test] HTTP reply status 302, with 0 bytes of content.
Feb 24, 2016 18:14:37 [0x7f9e427fe700] DEBUG - Completed: [127.0.0.1:39803] GET /video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030 (9 live) 5ms 152 bytes 302
....
Feb 24, 2016 18:14:42 [0x7f9e35bff700] ERROR - [Transcoder] [h264 @ 0x3a0a440] non-existing PPS 0 referenced
Feb 24, 2016 18:14:42 [0x7f9e37ffe700] ERROR - [Transcoder] [h264 @ 0x3a0a440] decode_slice_header error
Feb 24, 2016 18:14:42 [0x7f9e2d7ff700] ERROR - [Transcoder] [h264 @ 0x3a0a440] no frame!
Feb 24, 2016 18:14:42 [0x7f9e34bfd700] ERROR - [Transcoder] [h264 @ 0x3a0a440] non-existing PPS 0 referenced
Feb 24, 2016 18:14:42 [0x7f9e36fff700] ERROR - [Transcoder] [h264 @ 0x3a0a440] decode_slice_header error
Feb 24, 2016 18:14:42 [0x7f9e38bff700] ERROR - [Transcoder] [h264 @ 0x3a0a440] no frame!
Feb 24, 2016 18:14:47 [0x7f9e35bff700] INFO - [Transcoder] Input #0, mpegts, from 'http://127.0.0.1:32400/video/test/play?url=http%3A%2F%2F127.0.0.1%3A3030':
  Duration: N/A, start: 236.025789, bitrate: N/A
  Program 1 
    Stream #0:0[0x44], 234, 1/90000: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Feb 24, 2016 18:14:47 [0x7f9e37ffe700] ? - [Transcoder] Stream map '0:a:0' matches no streams.
Feb 24, 2016 18:14:47 [0x7f9e2d7ff700] ? - [Transcoder] 
Feb 24, 2016 18:14:47 [0x7f9e3bfff700] ERROR - Failed to start session successfully.

Most likely the issue is with how you define the stream.

Honestly, I am not really sure what you are trying to access from your original post, but if you are just trying to play a video stream, you need to define a container, audio_codec, audio_channels, and video_codec.

It looks like from your original post that it is an HLS format video. If it is HLS you also need to add a protocol and change PartObject(key=url_vlc) to PartObject(key=HTTPLiveStreamURL(url_vlc)). I think the the Samsung app cannot direct play HLS and sends them to be transcoded, but I am not sure. Here is a basic HLS get video pull - github.com/plexinc-plugins/RTUSA.bundle/blob/master/Contents/Code/init.py#L114

And the info you want to look at may be in the com.plexapp.system.log, not the channel log. The PMS log usually doesn’t show you any issues with the channel. If you do not see an error in the channel or com.plexapp.system.log, the next step is to try playing it in the Samsung app and then look at the Samsung log to see if it returns an error reading the media object and that is the client you want to play your channel.

Also, it kind of sounds like you are trying to pull an application (your steam games) that are running on the same computer as your Plex Media Server into a channel so it can be played by another device with a Plex player app. I am not sure that is possible.

See the Caster plugin since it is an application launcher that is used for Steam games . It is my understanding this can only be done if the application, PMS and the Plex player app are all located on the same machine.