SharkHunter wrote:Yes I think it is a network resource problem. The XBMC is probably buffering a lot more that you don't see. My theory of why this fails is:
You start downloading the video but it goes slow. PMS has to run this via mencoder who buffers and then writes it back out to the render. The PMS is in itself not that keen on waiting so if it doesn't get enough data from mencoder it will shut it down. The same basically goes with the render that will order PMS to shutdown if there isn't enough data. The solution is tricky I would say and involves some buffering before the render/mencoder is even invoked but maybe it is possible. I'll put it on the cool investigation list...
SharkHunter wrote:I think it is 100 mb but that is of course some optimal thing at least 24 mb at least...
/*
navix://channel?url=http%3A//example.com&referer=http%3A//example.com&agent=Mozilla
This protocol uses MPlayer as the downloader
Only the following Navi-X output fields are supported:
url // required: media URL
agent // optional: HTTP user-agent
referer // optional: HTTP referrer
player // optional: currently ignored
Although most fields are optional, there is no point using this protocol unless
at least one optional field is supplied.
boolean values (none currently) can be set without a value e.g. navix://channel?url=http%3A//example.com&foo
values *must* be URL-encoded
keys are just alphanumeric, so don't need to be
*/
init {
profile ('navix://') {
pattern {
protocol 'navix'
}
action {
def mencoderArgs = []
def pairs = $HTTP.getNameValuePairs($URI) // uses URLDecoder.decode to decode the name and value
def seenURL = false
for (pair in pairs) {
def name = pair.name
def value = pair.value
switch (name) {
case 'url':
if (value) {
// quote handling is built in for this downloader
$URI = value
seenURL = true
}
break
case 'referer':
if (value)
mencoderArgs << '-referrer' << value // requires a recent (>= June 2010) mplayer
break
case 'agent':
if (value)
mencoderArgs << '-user-agent' << value
break
case 'player':
if (value)
log.info("player option for navix:// protocol currently ignored: ${value}")
break
default:
log.warn("unsupported navix:// option: ${name}=${value}")
}
}
def CURL = pmsConf['curl.path']
def cookie = pmsConf['cookie.path']
$URI = quoteURI($URI)
$DOWNLOADER = "$CURL -s -S -b ${cookie} --location-trusted --output $DOWNLOADER_OUT ${$URI}"
if (seenURL) {
$TRANSCODER = $MENCODER + mencoderArgs
} else {
log.error("invalid navix:// URI: no url parameter supplied: ${$URI}")
}
}
}
}
Return to Additions and Plugins
Users browsing this forum: No registered users and 1 guest