Page 1 of 1

Disable Feed Expiry?

PostPosted: Thu Oct 11, 2012 5:34 pm
by WestWallPoma
Here's a curiousity for you. I have the following setup:

* Dual LNB feeding into DVB-S2 card on a Linux box running TVHeadEnd and Serviio
* Pair of Sony 2011 Bravias (Freeview - DVB-T)

We have some Kids channels that are not available on Freeview which I wanted to make available via Serviio's online content ; disabling transcoding and configuring TVHeadend to serve content as passthru (mpegts) ensures the Bravia's can play this content ...

I am using the LiveFeeds plugin to service my contents as rss feeds : e.g

  Code:
<item><title>Tiny Pop</title><link>http://31</link><media:stream url="http://localhost:9981/stream/channelid/40" type="video" /></item>
<item><title>Tiny Pop +1</title><link>http://32</link><media:stream url="http://localhost:9981/stream/channelid/37" type="video" /></item>


The only problem is, when it comes to serviio checking the content ; it is polling the next stream before TVHeadend can close down the transponder ; which either causes the stream to be marked not available on Serviio, or causes a crash in TVHeadend (a different matter).

To resolve this, I temporary added a virtual host on my local Apache configuration to listen on the same port as TVHeadend's HTTP server listens on and added a rewrite rule that would respond with a valid transport stream regardless of the URI:

  Code:
                RewriteEngine on
                RedirectMatch 200 (.*)$
                ErrorDocument 200 http://10.100.69.3/test.ts


This would fool Serviio into thinking "Aye - that's a valid stream ; no problem" and thus make it available. Once the polling is complete, I can disable the Apache service and we are able to select the stream with no issue in order to watch the appropriate channel.

The downside of this is that this polling will happen at the very least every 999 hours (the default is 24 hours) for feed expiry.

What I request is one of:

a) The ability to tell Serviio to not bother checking this online content (I fear this may not be possible)
b) The ability to tell Serviio to no re-poll specific content (i.e. Disable Feed Expiry) - I guess this is the simplest?
c) The ability to pass Serviio a dummy URL to poll in place of the actual content stream

(i.e. while my stream may be http://localhost:9981/stream/channelid/37, I would tell Serviio to poll http://10.100.69.3/test.ts instead when checking the feed

What do you think?

I suppose this may be useful for online streams where the link disappears from time to time?

Re: Disable Feed Expiry?

PostPosted: Thu Oct 11, 2012 7:10 pm
by zip
so ffmpeg -i "http://localhost:9981/stream/channelid/37" doesn't return any valid output?

Re: Disable Feed Expiry?

PostPosted: Fri Oct 12, 2012 8:32 am
by WestWallPoma
zip wrote:so ffmpeg -i "http://localhost:9981/stream/channelid/37" doesn't return any valid output?


In normal circumstances, yes it does. The issue I have is the following:

1. Our hero adds a playlist to Serviio (or refresh content)

  Code:
http://localhost:9981/stream/channelid/01
http://localhost:9981/stream/channelid/02
http://localhost:9981/stream/channelid/03
http://localhost:9981/stream/channelid/04


2. Serviio checks each stream for content:

3.1 Serviio requests http://localhost:9981/stream/channelid/01
3.2 TVH opens transponder on DVB card #1, passes TS stream.
3.3 Serviio disconnects
3.4 TVH notices break in stream. Prepares to stop stream.

4.1 Serviio requests http://localhost:9981/stream/channelid/02
4.2 TVH opens transponder on DVB card #2 as card #1 is still in the process of disconnecting and, passes TS stream.
4.3 Serviio disconnects
4.4 TVH notices break in stream. Prepares to stop stream.

5.1 Serviio requests http://localhost:9981/stream/channelid/03
5.2 TVH attempts to opens transponder but DVB card #2 and card #1 are still in the process of disconnecting. TVH crashes (!?!?!).
5.3 Serviio says "Nothing to see here"

6.1 Serviio requests http://localhost:9981/stream/channelid/03
6.2 TVH dead as a dodo.
6.3 Serviio says "Nothing to see here"

So - as you can see, the issue mainly lies in TVH and the internals between requesting a stream over it's HTSP (sic) server rather than Serviio itself (I've manage to recreate this behaviour with several XMBCs requesting streams and I'll speak to the TVH guys about it outwith this specific issue with Serviio). In the mean time, I have tvh running in screen session with a while loop to respawn (e.g. while true ; do tvheadend ; done).

In the intermin, I guess 999 hours is a reasonable amount of time to wait in between refreshes. I suppose it would be nice to be able to define a refresh period per source? So - for example - I would refresh my Veetle.groovy content hourly, and leave my TVH sources to *never* refresh. Same for 4oD content - to *never* refresh (usually I add it on a per show basis - so for example, I'm in the mood for a Father Ted marathon then I'll add that as a source then remove it when I'm done).

Oh - and it rarely gets mentioned, but thank you for an amazing piece of software!

Re: Disable Feed Expiry?

PostPosted: Fri Oct 12, 2012 10:06 pm
by WestWallPoma
Just incase anyone is interested, I note a bug has been posted on TVHeadend in relation to the crash:

https://www.lonelycoder.com/redmine/issues/1300