Page 1 of 2

Failed to retrieve feed item... It might not play

PostPosted: Thu Dec 15, 2011 9:09 pm
by benyos
Hi

I'm trying to create an RSS feed with the following link
rtmp://wafla.walla.co.il/vod/mp4:media/ ... 1137700-40

The log shows the following error:
  Code:
2011-12-15 11:57:24,017 WARN  [FeedUpdaterThread] Failed to retrieve feed item information for rtmp://wafla.walla.co.il/vod/mp4:media/011/377/1137700-40. It might not play.
java.io.IOException: org.serviio.library.local.metadata.extractor.InvalidMediaFormatException: Unknown video file type.
   at org.serviio.library.online.metadata.FeedUpdaterThread.updateLazyLoadedProperties(FeedUpdaterThread.java:188)
   at org.serviio.library.online.metadata.FeedUpdaterThread.run(FeedUpdaterThread.java:93)
Caused by: org.serviio.library.local.metadata.extractor.InvalidMediaFormatException: Unknown video file type.
   at org.serviio.library.metadata.FFmpegMetadataRetriever.validateCodecsFound(FFmpegMetadataRetriever.java:318)
   at org.serviio.library.metadata.FFmpegMetadataRetriever.retrieveMetadata(FFmpegMetadataRetriever.java:68)
   at org.serviio.library.online.metadata.FeedUpdaterThread.updateLazyLoadedProperties(FeedUpdaterThread.java:169)


I'm able to download the movie using rtmpdump:

rtmpdump --host wafla.walla.co.il --app vod --playpath mp4:media/011/377/1137700-40 -o sponge.flv

Running ffmpeg -i on the online source fails with the following:
Closing connection: NetStream.Play.StreamNotFound
rtmp://wafla.walla.co.il/vod/mp4:media/ ... 1137700-40: Operation not permitted


The downloaded file shows:
C:\Program Files\Serviio\lib>ffmpeg.exe -i sponge.flv
ffmpeg version N-31480-g8bc3a48, Copyright (c) 2000-2011 the FFmpeg developers
built on Jul 14 2011 23:37:53 with gcc 4.4.2
configuration: --enable-static --disable-shared --disable-ffplay --disable-ffs
erver --enable-memalign-hack --enable-libmp3lame --enable-librtmp --extra-libs='-lrtmp -lpolarssl -lws2_32 -lwinmm' --arch=x86 --enable-runtime-cpudetect --enable-pthreads --target-os=mingw32 --cross-prefix=i686-mingw32- --pkg-config=pkg-config
libavutil 51. 11. 0 / 51. 11. 0
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 6. 0 / 53. 6. 0
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 25. 0 / 2. 25. 0
libswscale 2. 0. 0 / 2. 0. 0
[flv @ 00398a40] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'sponge.flv':
Metadata:
duration : 1352
moovPosition : 32
audiocodecid : mp4a
width : 640
height : 480
videocodecid : avc1
avcprofile : 77
avclevel : 30
aacaot : 2
audiosamplerate : 44100
audiochannels : 2
videoframerate : 25
Duration: 00:22:32.20, start: 0.000000, bitrate: N/A
Stream #0.0: Video: h264 (Main), yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 tbr,
1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16
At least one output file must be specified


Any ideas?

Thanks

Tal

Re: Failed to retrieve feed item... It might not play

PostPosted: Thu Dec 15, 2011 9:30 pm
by Cerberus
is this a live stream? as live streams will not work at the current time.

Re: Failed to retrieve feed item... It might not play

PostPosted: Thu Dec 15, 2011 9:39 pm
by benyos
No, it's a static file

Re: Failed to retrieve feed item... It might not play

PostPosted: Thu Dec 15, 2011 11:25 pm
by Cerberus
looks like you will need a plugin for this stream to work, try requesting one in the plugins section.

Re: Failed to retrieve feed item... It might not play

PostPosted: Thu Dec 15, 2011 11:36 pm
by zip
rtmpdump --host wafla.walla.co.il --app vod --playpath mp4:media/011/377/1137700-40 -o sponge.flv

well you have to reproduce this to a ffmpeg url. It uses libRTMP so there are alias parameters to rtmpdump ones (check the librtmp website manual). You will have to change the URL to be like:
  Code:
rtmp://xxxxxxxxx -app=vod -playpath=yyyyyyy

and then this should give results:
  Code:
ffmpeg -i "rtmp://xxxxxxxxx -app=vod -playpath=yyyyyyy"

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 1:13 am
by jhb50
Finally an rtmp file to test with.

This works:
  Code:
ffmpeg -i "rtmp://wafla.walla.co.il app=vod playpath=mp4:media/011/377/1137700-40" d:\rtmp.mp4

and the video plays fine on my pc.

However this is a livestream which is not yet supported in Serviio.
With the next release it can be played as a livestream feed or added to an RSS that invokes a LiveFeeds.groovy to add the live parameter. I have both working in test mode.

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 6:56 am
by benyos
Thank you!! Thank you!! Thank you!!

Works like a charm.

As for the required plugin, I'm a programmer myself so now I can move on and develop one myself.
Hope to share it soon.

Thanks a Million ($)

Tal

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 3:23 pm
by jhb50
It's a livestream so you won't need a plugin..just add the livestream in the next release. I'll also be posting a generic plugin in the Wiki that will allow multiple live streams to be set up in a user built RSS that can be hosted on a web server of your choice. This will allow menus of live streams to be created within RSS 'folders' rather than list all the livestreams in the Online Feeds menu.

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 3:46 pm
by zip
unless it's a feed with live streams....

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 4:03 pm
by jhb50
zip wrote:unless it's a feed with live streams....

Since we are all learning here, I'm unaware of any available RSS feeds containing live streams except the user created ones currently in test. Can you give some examples and verify that plugins developed for these won't work until the live attribute is supported in the next relese.

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 4:18 pm
by zip
I don't have any examples but can imagine it exists, e.g. for Tv stations, radio stations etc.
Live might work with 0.6 but it'll just create a large file that will grow untill the disk is full ;-) 0.6.1 transcodes stuff in memory for live streams

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 4:35 pm
by jhb50
I don't have any examples but can imagine it exists, e.g. for Tv stations, radio stations etc.


Yup, they do, using the user created RSS files of live streams that invoke the LiveFeeds groovy that is in test. I have not found any others. So I'll let my previous post stand as is.

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 7:54 pm
by benyos
Well after I managed to play those rtmp links, I tried to convert this web page:
http://nick.walla.co.il/?w=//1688134

Into this RSS feed using Yahoo pipes:
http://pipes.yahoo.com/pipes/pipe.run?_id=4019c76773f239203a2d1d7106104ad1&_render=rss&v=100

The problem is that Serviio won't recognize the media:content element, but will play it correctly if it is called "enclosure url".

What am I missing here?

I can write such a script in many languages and produce this 'enclosure' element fairly easy, so I'm just being curious here.

10X

Tal

Re: Failed to retrieve feed item... It might not play

PostPosted: Fri Dec 16, 2011 10:45 pm
by zip
it should work with media:content, but after trying this it's complaining that the URL is not valid, because of the spaces in it. The enclosure url is probably not that restrictive and can be any string.

BTW, are there live streams? If yes you'll have to write a plugin because there is no way to tell Serviio they are via a generic rss feed.

Re: Failed to retrieve feed item... It might not play

PostPosted: Sat Dec 17, 2011 5:36 am
by benyos
What do you mean by *live feed* ?
This is a VOD library and the shows are loaded on demand. This is not a live event as in a football game or so.
Is that what you meant?

Anyway, I wrote a little script that adds the encoding attribute that Yahoo pipes are missing and converted the media:content to enclosure - and it works great as a regular RSS.
No plugin...

Tal

Re: Failed to retrieve feed item... It might not play

PostPosted: Sat Dec 17, 2011 7:50 pm
by zip
live feed, yes, I mean a stream that doesn't have an end - ie it would create a never ending file on the disk

Re: Failed to retrieve feed item... It might not play

PostPosted: Sat Dec 17, 2011 9:30 pm
by jhb50
I've tested this thoroughly and I can confirm that these are not live streams and that there are 2 bugs when rss feeds contain rtmp files (not live streams).

1. media does not default to type video and will be skipped "because it's not of type VIDEO", unless type=video/ is specified with the rtmp content. Applicable to <enclosure and <media:content
  Code:
<enclosure url="rtmp://wafla.walla.co.il app=vod playpath=mp4:media/011/377/1137700-40" />
yields
2011-12-17 16:05:31,327 DEBUG [FeedParser] Parsing feed 'https://sites.google.com/site/jhbrsstest/Walla.rss'
2011-12-17 16:05:34,040 DEBUG [FeedParser] Skipping feed item 'Walla' because it's not of type VIDEO


2. the rtmp content must be specified in an <enclosure url="rtmp://......." type="video/..." /> , because <media:content url=".. entries will also be skipped with a "because it's not of type VIDEO" message even if type="video/.. has been specified.
  Code:
<media:content url="rtmp://wafla.walla.co.il app=vod playpath=mp4:media/011/825/1182554-40" type="video/mp4"/>
yields
2011-12-17 16:05:36,290 DEBUG [FeedParser] Skipping feed item 'שבב באצבע/ משרוקית השריקות' because it's not of type VIDEO


<media:content should work, type should default to VIDEO in the absence of type= for both <enclosure and <media:content

Re: Failed to retrieve feed item... It might not play

PostPosted: Sat Dec 17, 2011 11:06 pm
by zip
as specified on the ticket, type is necessary and I'll not make it default to VIDEO. OP, update your feed to provide mime type.

Re: Failed to retrieve feed item... It might not play

PostPosted: Sun Dec 18, 2011 3:42 am
by jhb50
Interesting though that you chose to default groovy content url's to VIDEO. I was only suggesting cobsistency.

More importantly, what about the media:content bug? Will it be fixed?

Re: Failed to retrieve feed item... It might not play

PostPosted: Sun Dec 18, 2011 1:56 pm
by zip
Interesting though that you chose to default groovy content url's to VIDEO. I was only suggesting cobsistency.

That is for the dev's convenience. Normal RSS feeds are usually out of our control.

More importantly, what about the media:content bug? Will it be fixed?

It's out of my control as the Feed parsing is provided by a library and they use URI object - which rejects any spaces in the URL (and rightly so). One possibility would be to encode spaces with %20 to follow URL encoding. I'd have to decode it back to spaces on my end, but I'm not sure if it breaks other cases. So will leave it for now, as it works for the enclosure element.