Thanks.
I tried the @indirect decorator, no difference and I changed the code to make sure that the PlayVideo() method was being invoked.
The VLC settings are a good question.
I am currently trying:
transcode{vcodec=h264,width=480,height=360,fps=29.97,acodec=mpga,ab=128,channels=2,samplerate=44100} with mux=ts{use-key-frames}
This should provide a format that both Plex and Roku prefer. It also should force the content to be 360p and the same frames per second as the TV (not sure about that issue).
I don't know if there are better choices.
It looks like this part should be very straight forward, and I may be doing it correctly. I just don't understand why it takes so long to start displaying the stream. It seems to be buffering (probably on the Plex side as Roku really has no significant buffer) at least 5 minutes of the stream.
The play directly strategy would probably be to do an HLS strategy. That way, Plex is accessing a pile of video files on a local drive instead of trying to display a stream it catches on the fly.
I don't know if Plex is waiting for more metadata to be obtained, of trying to do so. CreateVideoClipObject() gets called several times.
Here is the log section when playing:
2014-03-06 19:56:17,131 (27b8) : DEBUG (logkit:13) - MainMenu(): Adding a VCO
2014-03-06 19:56:17,131 (27b8) : DEBUG (logkit:13) - EXECUTING: GetStatusTermsVLC()
2014-03-06 19:56:17,176 (27b8) : DEBUG (logkit:13) - EXECUTING: CreateVideoClipObject()
2014-03-06 19:56:17,223 (27b8) : DEBUG (logkit:13) - EXITING: MainMenu()
2014-03-06 19:56:17,223 (27b8) : DEBUG (base:123) - Checking if com.plexapp.plugins.vlcplayer is broken
2014-03-06 19:56:17,232 (27b8) : DEBUG (runtime:918) - Response: [200] MediaContainer, 6222 bytes
2014-03-06 19:56:17,259 (2ac0) : DEBUG (runtime:717) - Handling request GET /video/vlcplayer/PlayVideo?url=http%3A%2F%2F127.0.0.1%3A11223%2Fstream.ts&default_fmt=360p&indirect=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20null%2C%20%22optimized_for_streaming%22%3A%20true%2C%20%22video_frame_rate%22%3A%20null%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20360%2C%20%22width%22%3A%20640%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22mp3%22%2C%20%22aspect_ratio%22%3A%20null%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22360%22%2C%20%22bitrate%22%3A%20null%7D
2014-03-06 19:56:17,260 (2ac0) : DEBUG (runtime:814) - Found route matching /video/vlcplayer/PlayVideo
2014-03-06 19:56:17,260 (2ac0) : DEBUG (logkit:13) - EXECUTING: PlayVideo()
2014-03-06 19:56:17,263 (2ac0) : DEBUG (runtime:918) - Response: [200] MediaContainer, 1222 bytes
2014-03-06 19:56:17,595 (2bfc) : DEBUG (runtime:717) - Handling request GET /video/vlcplayer/CreateVideoClipObject?include_container=True&key_string=VLC%2BPlayer%2Brating_key&originally_available_at=2014-03-06%2B00%3A00%3A00&url=http%3A%2F%2F127%2E0%2E0%2E1%3A11223%2Fstream%2Ets&url_meta=http%3A%2F%2F127%2E0%2E0%2E1%3A5555%2Frequests%2Fstatus%2Ejson
2014-03-06 19:56:17,596 (2bfc) : DEBUG (runtime:814) - Found route matching /video/vlcplayer/CreateVideoClipObject
2014-03-06 19:56:17,596 (2bfc) : DEBUG (logkit:13) - EXECUTING: CreateVideoClipObject()
2014-03-06 19:56:17,601 (2bfc) : DEBUG (runtime:918) - Response: [200] MediaContainer, 2199 bytes
2014-03-06 19:56:17,607 (227c) : DEBUG (runtime:717) - Handling request GET /video/vlcplayer/PlayVideo?url=http%3A%2F%2F127.0.0.1%3A11223%2Fstream.ts&default_fmt=360p&indirect=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20null%2C%20%22optimized_for_streaming%22%3A%20true%2C%20%22video_frame_rate%22%3A%20null%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20360%2C%20%22width%22%3A%20640%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22mp3%22%2C%20%22aspect_ratio%22%3A%20null%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22360%22%2C%20%22bitrate%22%3A%20null%7D
2014-03-06 19:56:17,608 (227c) : DEBUG (runtime:814) - Found route matching /video/vlcplayer/PlayVideo
2014-03-06 19:56:17,608 (227c) : DEBUG (logkit:13) - EXECUTING: PlayVideo()
2014-03-06 19:56:17,611 (227c) : DEBUG (runtime:918) - Response: [200] MediaContainer, 1222 bytes
2014-03-06 19:56:18,375 (2a1c) : INFO (datakit:131) - Saved the dictionary file
2014-03-06 19:56:29,016 (1760) : DEBUG (runtime:717) - Handling request GET /video/vlcplayer/CreateVideoClipObject?originally_available_at=2014-03-06+00%3A00%3A00&url=http%3A%2F%2F127.0.0.1%3A11223%2Fstream.ts&key_string=VLC+Player+rating_key&include_container=True&url_meta=http%3A%2F%2F127.0.0.1%3A5555%2Frequests%2Fstatus.json
2014-03-06 19:56:29,017 (1760) : DEBUG (runtime:814) - Found route matching /video/vlcplayer/CreateVideoClipObject
2014-03-06 19:56:29,017 (1760) : DEBUG (logkit:13) - EXECUTING: CreateVideoClipObject()
2014-03-06 19:56:29,065 (1760) : DEBUG (runtime:918) - Response: [200] MediaContainer, 2409 bytes
Any one else have 2 cents to contribute?
Thanks.