Capability header - is there documentation around?

Hi!
 
in various open-source clients I found definition like this...
...['X-Plex-Client-Capabilities'] = 'protocols=http-live-streaming,http-mp4-streaming,http-mp4-video,http-mp4-video-720p,http-streaming-video,http-streaming-video-720p;videoDecoders=h264{profile:high&resolution:720&level:41};audioDecoders=aac'
 
Is there a doc available, giving the options that must/can be applied?
 
Also, what about "the other" arguments in the http request...
   ['offset']
   ['3g']
   ['subtitleSize']
   ['secondsPerSegment']
   ['ratingKey']
   ["identifier"]
   ["quality"]
   ["url"]
   ["httpCookies"]
   ["userAgent"]
Is there a complete list? Which one are needed for transcoding, which are optional? What are they doing and what kind of information do I have to supply?

 

If you know something... every hint is appreciated :-)

Oh, come on guys... this information must be available somewhere! Plex-Team - how is the interface defined? Please...

Looking into the logs, they seem to get transformed into...

.../Plex Transcoder transcode [source_file?] [temp_output_file?] 9 10 0 any nil 0 yes UTF-8 default   0.9375 av low 720 41 aac 3355443 yes  no [progress_file?]

Which in Plex Transcoder gives...

Apr 28, 2013 22:01:41 [0xb0081000] DEBUG - [Transcoder] Starting transcoder v306 (t=10s, q=9)
Apr 28, 2013 22:01:41 [0xb0081000] DEBUG - [Transcoder] Registered components, about to parse arguments.
Apr 28, 2013 22:01:41 [0xb0081000] DEBUG - [Transcoder] Video caps: ca=1, cv=1, ac=libvo_aacenc, mp3=-1, aac=0,1, ac3=-1, dts=-1, pcm=-1, vp=4d, vr=720, vl=41, mss=3355443, anam=1
 
But hey - how is the transformation from the "capabilities header" to the last parameter line? And what is done with ca, cv, ac, ...? Is this the direct door to ffmpeg?

Unfortunately, not much is publicly documented around most of the Plex REST api.   The best source I have found for this unfortunately has been the Roku client source but that can be difficult to find exactly what you are looking for.

https://github.com/plexinc/roku-client-public/tree/master/Plex/source

Thanks kingargyle!

The trouble is, I already know a lot of projects on github showing this and that - eg. plexGDM, PleXBMC, others. But there for sure you only find what THEY need, not the complete functionality PMS has to offer.

Currently I am working to get transcoding working: http://forums.plexapp.com/index.php/topic/57831-plex-atv-think-different/

I have example code running, even installed to this "remote" interface to aTV. But then, I don't know how accurate the settings are.

And then... there would be the question on how to access the channels, later myplex. Finding the information turns out to be much harder than doing the actual code :-(

Again the best way to find out is to watch the plex media server.log file when using an official client.  I've had to do this A LOT for plexbmc (network dumps, logfile, etc)..

As for these items:

c

   ['offset'] - Offset to start transcoder at.  I generally leave this at 0 and let the player do the normal requests (which will be HTTP range ones)
   ['3g'] - mobile comms streams.  I set this to 0 too, but I assume that if set to 1 will also transcode a 64kb stream as a fallback
   ['subtitleSize'] - size of subtitles - 1 to 300.  100 being normal.
   ['secondsPerSegment'] - the standard HLS segment size is 7 seconds.  I daresay this means you can change it.
   ['ratingKey'] - the ID of the media being played - used to locate the subtitles and audio streams.
   ["identifier"] - the system component requesting the transcode.  Generally I leave this as com.plexapp.plugins.library for library content or the id of teh channel for transcoded plugins. 
   ["quality"] - the quality indicator 0 to 12 (which map ontop the various stream sizes)
   ["url"] - the url to transcode
   ["httpCookies"] - any special http cookies to send to the far end to get the video stream
   ["userAgent"] - any special agent headers to send to get he content (i.e. for Apple trailers)
 
Plus you have the followin which you've missed:
 
["audioBoost"] - Boost the audio 0 to 300 (0 being no boost)
["session"] - provide a session ID to use.  This is handy as it means you know what session to stop when playback is stopped
["key"] - like ratingKey, but this time you specify the URL to get the XML from. Can use this and/or ratingKey
 
I keep meaning to find time to write a lot of this down somewhere - but I'm not sure where,

Thanks for your answers, hippojay!

Your PleXBMC sources actually are a big pond of information. I pretty much removed the XBMC stuff and got a nice command line Plex client :-D. Before bringing new feature to our "client", I usually testdrive those using that python script.

>> I'm not sure where

Plex Wiki?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.