TiVo Community
TiVo Community
TiVo Community
Go Back   TiVo Community > Main TiVo Forums > TiVo Home Media Features & TiVoToGo
TiVo Community
Reply
Forum Jump
 
Thread Tools
Old 09-09-2009, 01:52 PM   #1531
rustyshackelford
rusty shackelford
 
Join Date: Apr 2009
Location: scenic pendleton, ny
Posts: 7
I am having trouble with my 2 THD's seeing streambaby. They don't show up under showcases. I am on a wired network using linksys power adapters. I have the current version of Java, and Streambaby is ready and listening. I have Tivo desktop version 2.6 installed also. Here is a copy and paste of my config file, with personal information removed.

#
# ./streambaby --help for more configuration file options
#

dir.1=/C:\Documents and Settings\xxxxxxxx\My Documents\my videos
dir.1.name=My Videos
#dir.2=/media/disk
#dir.2.name=External Drive
# Ip address to bind to
# most people don't need to change this.
#ip=192.168.1.37
# port to use
#port=7290

Both the Tivos see the desktop and each other. I can view my photos from the Tivos, and access my music, so I am sure the network is working. Any thoughts?

Thank you.
rustyshackelford is offline   Reply With Quote
Old 09-09-2009, 04:53 PM   #1532
valley_nomad
Registered User
 
Join Date: Dec 2004
Posts: 20
Quote:
Originally Posted by kearygriffin View Post
If you are trying to make "Manually add a server..." work you will need to setup a web server running on port 80 on one of the computers on your network and add a file called "TiVoConnect" to the root of the web server.
Code:
<TiVoContainer>
<Details>
	<ContentType>x-container/tivo-server</ContentType>
	<SourceFormat>x-container/folder</SourceFormat>
	<TotalItems>1</TotalItems>
	<Title>Kearys TiVo Server</Title>
</Details>
<ItemStart>0</ItemStart>

<ItemCount>1</ItemCount>
<Item>
	<Details>
		<ContentType>application/x-hme</ContentType>
		<SourceFormat>x-container/folder</SourceFormat>
		<Title>StreamBaby</Title>
	</Details>
	<Links>
		<Content>
			<Url>http://192.168.1.37:7290/streambaby/</Url>
		</Content>
	</Links>
</Item>
</TiVoContainer>
Change the <Url></Url> line to point to the IP/port of the PC running streambaby. (Could be the same PC or a different PC).

Then when you "Manually add a server" add the server running the web server.

...............

Good luck.

Thanks for the tip. Can a regular web server such as SimpleWebServer (http://www.jibble.org/miniwebserver/) do the job? Will Tivo box automatically serach the root of web server for this TiVoConnect file once I add the IP of the web server via "Manually add a server..." ? Or I need something more to make it work?
valley_nomad is offline   Reply With Quote
Old 09-09-2009, 05:00 PM   #1533
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by valley_nomad View Post
Thanks for the tip. Can a regular web server such as SimpleWebServer (http://www.jibble.org/miniwebserver/) do the job? Will Tivo box automatically serach the root of web server for this TiVoConnect file once I add the IP of the web server via "Manually add a server..." ? Or I need something more to make it work?
I imagine just about anything should work, but really haven't played around too much.

So if you enter an IP address of 192.168.10.10 into TiVo via the "Manually add a server" TiVo will try to retrieve the file at

http://192.168.10.10:80/TivoConnect

As long as it can retrieve that file it *should* be happy and all set.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-09-2009, 06:15 PM   #1534
valley_nomad
Registered User
 
Join Date: Dec 2004
Posts: 20
Quote:
Originally Posted by kearygriffin View Post
I imagine just about anything should work, but really haven't played around too much.

So if you enter an IP address of 192.168.10.10 into TiVo via the "Manually add a server" TiVo will try to retrieve the file at

http://192.168.10.10:80/TivoConnect

As long as it can retrieve that file it *should* be happy and all set.
I ran SimpleWebServer. I put the file TivoConnect into the server root. I could http it from the browser and got the following:
x-container/tivo-server x-container/folder 1 0 1 application/x-hme x-container/folder http://192.168.0.34:7290/streambaby/

I then started the streambaby and added the IP on tivo. But tivo still complained about being unable to find the server.
valley_nomad is offline   Reply With Quote
Old 09-10-2009, 01:27 AM   #1535
valley_nomad
Registered User
 
Join Date: Dec 2004
Posts: 20
Quote:
Originally Posted by rustyshackelford View Post
I am having trouble with my 2 THD's seeing streambaby. They don't show up under showcases. I am on a wired network using linksys power adapters. I have the current version of Java, and Streambaby is ready and listening. I have Tivo desktop version 2.6 installed also. Here is a copy and paste of my config file, with personal information removed.

#
# ./streambaby --help for more configuration file options
#

dir.1=/C:\Documents and Settings\xxxxxxxx\My Documents\my videos
dir.1.name=My Videos
#dir.2=/media/disk
#dir.2.name=External Drive
# Ip address to bind to
# most people don't need to change this.
#ip=192.168.1.37
# port to use
#port=7290

Both the Tivos see the desktop and each other. I can view my photos from the Tivos, and access my music, so I am sure the network is working. Any thoughts?

Thank you.
This is because your Linksys power adapters don't support Bonjour (aka mDNS, Rendezvous, Zeroconf), a protocol used by Tivo and HME apps to discover each other on the network. I read your other post regarding the issue you had with Tivo desktop version 2.7. -- The exact same cause: V2.7 uses Bonjour while V2.6 uses TivoBeacon.

I am having the same issue with my Zyxel NBG-318S HomePlug Router which also funtions as a powerline adapter. I put Tivo box in one Ethernet port and PC running streambay in the other Ethernet port of the same router/adapter. Tivo can not see a thing about streambaby. But everything becomes just fine when I connect them through a switch. So it is very likely that these boxes are blocking the multicast message sent by Bonjour. Who knows, maybe both Linksys and Zyxel use the firmware from the same vendor.

This is why I am now looking into the possibility of using streambaby without Bonjour...

I really wish Tivo picked the discovery mechanism used by UPnP which has much more support.

Last edited by valley_nomad : 09-10-2009 at 01:51 AM.
valley_nomad is offline   Reply With Quote
Old 09-10-2009, 09:34 AM   #1536
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by valley_nomad View Post
I ran SimpleWebServer. I put the file TivoConnect into the server root. I could http it from the browser and got the following:
x-container/tivo-server x-container/folder 1 0 1 application/x-hme x-container/folder http://192.168.0.34:7290/streambaby/

I then started the streambaby and added the IP on tivo. But tivo still complained about being unable to find the server.
Upper/lower case might be important, it depends on the particular web server/OS (it definitely is on Linux). The filename should be:
TiVoConnect

Note the uppercase "V".

I just tried again myself from a local server (I had based my post an old setup I hadn't used in a while on a remote server) and it seemed to work OK for me. (I happen to be running Ubuntu/Apache2 as my web server)

(Also note I am assuming the output you posted from your browser didn't come out in the post correctly because of the XML tags being stripped out by tivocommunity in the post, and should have looked like the original that I posted. To post stuff with tags you need to surround the entry with the "[code]" tag when posting.)
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-10-2009, 09:36 AM   #1537
rustyshackelford
rusty shackelford
 
Join Date: Apr 2009
Location: scenic pendleton, ny
Posts: 7
well that explains that. i really dont know what i'm going to do now. maybe i'll hardwire. we still have a few weeks left before the snow hits here. maybe it's time to run some cable behind the siding. thanks a ton for your help valley_nomad. spot on. good karma to you.
rustyshackelford is offline   Reply With Quote
Old 09-10-2009, 06:02 PM   #1538
Mikeyis4dcats
Registered User
 
Mikeyis4dcats's Avatar
 
Join Date: Oct 2003
Posts: 2,974
I installed Streambaby 0.27 but when I access it on Tivo, it throwes the following error....any ideas?

  • 09/10/09 17:59:53 Listener: added factory
    09/10/09 17:59:53 Main: streambaby ready & listening.
    09/10/09 17:59:58 Listener: 192.168.1.1XX icon.png HTTP GET - to factory /streambaby/
    09/10/09 18:00:07 Factory: HME receiver connected
    09/10/09 18:00:09 Application: An error occurred during application initialization.
    java.lang.UnsatisfiedLinkError : sun.font.FontManager.initIDs()V
    java.lang.UnsatisfiedLinkError: sun.font.FontManager.initIDs()V
    at sun.font.FontManager.initIDs(Native Method)
    at sun.font.FontManager.access$000(Unknown Source)
    at sun.font.FontManager$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.font.FontManager.<clinit>(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment.addDirFonts(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment.registerFontsInDir(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment.access$200(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.java2d.SunGraphicsEnvironment.<init>(Unknown Source)
    at sun.awt.Win32GraphicsEnvironment.<init>(Unknown Source)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknow n Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Un known Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unk nown Source)
    at java.awt.image.BufferedImage.createGraphics(Unknown Source)
    at com.tivo.hme.bananas.ScaledImageElement.getScaledImage(Scale dImageElement.java:107)
    at com.tivo.hme.bananas.ScaledImageElement.createResource(Scale dImageElement.java:78)
    at com.tivo.hme.bananas.BSkinPlus$Element.getResource(BSkinPlus .java:150)
    at com.tivo.hme.bananas.BSkinPlus.get(BSkinPlus.java:112)
    at com.tivo.hme.bananas.BKeyboardPlus$SkinKeyboard.<init>(BKeyb oardPlus.java:1150)
    at com.tivo.hme.bananas.BKeyboardPlus.<init>(BKeyboardPlus.java :127)
    at com.unwiredappeal.tivo.streambaby.PasswordScreen.<init>(Pass wordScreen.java:17)
    at com.unwiredappeal.tivo.streambaby.StreamBabyStream.first(Str eamBabyStream.java:126)
    at com.unwiredappeal.tivo.streambaby.StreamBabyStream.init(Stre amBabyStream.java:83)
    at com.tivo.hme.bananas.BApplicationPlus.initResolution(BApplic ationPlus.java:362)
    at com.tivo.hme.bananas.BApplicationPlus.initApp(BApplicationPl us.java:287)
    at com.tivo.hme.bananas.BApplicationPlus.handleChunk(BApplicati onPlus.java:175)
    at com.unwiredappeal.tivo.streambaby.host.Listener.readEvents(L istener.java:339)
    at com.unwiredappeal.tivo.streambaby.host.Listener.handleHME(Li stener.java:316)
    at com.unwiredappeal.tivo.streambaby.host.Listener.handle(Liste ner.java:417)
    at com.tivo.hme.host.http.server.HttpConnection.run(HttpConnect ion.java:123)
    at java.lang.Thread.run(Unknown Source)

    09/10/09 18:00:09 Listener: connection to receiver closed
    09/10/09 18:00:09 Factory: HME receiver disconnected
    09/10/09 18:00:09 Listener: Unexpected error: java.lang.NoClassDefFoundError: Could not initialize class sun.font.FontManager
    09/10/09 18:00:09 Listener: java.lang.NoClassDefFoundError: Could not initialize class sun.font.FontManager
    at sun.java2d.SunGraphicsEnvironment.addDirFonts(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment.registerFontsInDir(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment.access$200(Unknown Source)
    at sun.java2d.SunGraphicsEnvironment$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.java2d.SunGraphicsEnvironment.<init>(Unknown Source)
    at sun.awt.Win32GraphicsEnvironment.<init>(Unknown Source)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknow n Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Un known Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unk nown Source)
    at java.awt.image.BufferedImage.createGraphics(Unknown Source)
    at com.tivo.hme.bananas.ScaledImageElement.getScaledImage(Scale dImageElement.java:107)
    at com.tivo.hme.bananas.ScaledImageElement.createResource(Scale dImageElement.java:78)
    at com.tivo.hme.bananas.BSkinPlus$Element.getResource(BSkinPlus .java:150)
    at com.tivo.hme.bananas.BSkinPlus.get(BSkinPlus.java:112)
    at com.tivo.hme.bananas.BKeyboardPlus$SkinKeyboard.<init>(BKeyb oardPlus.java:1150)
    at com.tivo.hme.bananas.BKeyboardPlus.<init>(BKeyboardPlus.java :127)
    at com.unwiredappeal.tivo.streambaby.PasswordScreen.<init>(Pass wordScreen.java:17)
    at com.unwiredappeal.tivo.streambaby.StreamBabyStream.first(Str eamBabyStream.java:126)
    at com.unwiredappeal.tivo.streambaby.StreamBabyStream.init(Stre amBabyStream.java:83)
    at com.tivo.hme.bananas.BApplicationPlus.handleEvent(BApplicati onPlus.java:383)
    at com.unwiredappeal.tivo.streambaby.StreamBabyStream.handleEve nt(StreamBabyStream.java:374)
    at com.tivo.hme.sdk.HmeObject.postEvent(HmeObject.java:102)
    at com.tivo.hme.sdk.Resource.postEvent(Resource.java:100)
    at com.tivo.hme.sdk.Application.dispatchEvent(Application.java: 827)
    at com.tivo.hme.bananas.BApplication.dispatchEvent(BApplication .java:162)
    at com.tivo.hme.bananas.BApplicationPlus.handleChunk(BApplicati onPlus.java:187)
    at com.unwiredappeal.tivo.streambaby.host.Listener.readEvents(L istener.java:339)
    at com.unwiredappeal.tivo.streambaby.host.Listener.handleHME(Li stener.java:316)
    at com.unwiredappeal.tivo.streambaby.host.Listener.handle(Liste ner.java:417)
    at com.tivo.hme.host.http.server.HttpConnection.run(HttpConnect ion.java:123)
    at java.lang.Thread.run(Unknown Source)

Mikeyis4dcats is offline   Reply With Quote
Old 09-10-2009, 09:49 PM   #1539
valley_nomad
Registered User
 
Join Date: Dec 2004
Posts: 20
Quote:
Originally Posted by kearygriffin View Post
Upper/lower case might be important, it depends on the particular web server/OS (it definitely is on Linux). The filename should be:
TiVoConnect

Note the uppercase "V".

I just tried again myself from a local server (I had based my post an old setup I hadn't used in a while on a remote server) and it seemed to work OK for me. (I happen to be running Ubuntu/Apache2 as my web server)

....
I noticed the uppercase V for the file name. But it didn't do anything for me.

I actually captured the HTTP string sent to the PC's port 80 by Tivo after I add PC's IP via "Manually add a server...":

/TiVoConnect?Command=QueryContainer&Container=%2F&Format=text %2Fxml HTTP GET

I am not HTTP expert. But this is certainly not the HTTP for getting the file TiVoConnect. I don't know if the query command can be understood by any web server or only by some Tivo-aware server (or MHO, pyTivo?) so that the file TiVoConnect can be sent back to Tivo as the response?

Last edited by valley_nomad : 09-11-2009 at 12:38 AM.
valley_nomad is offline   Reply With Quote
Old 09-11-2009, 08:37 AM   #1540
netserf57
Registered User
 
Join Date: Nov 2005
Location: Severn, MD
Posts: 52
I have recently began to assemble the "plumbing" to attach a video library to my Tivo. I recently built a windows home server and that is the platform I wish to create the video library on. I installed pyTivo and StreamBaby so I can access videos that can be stored on the server from the Tivo.

Is there anyway to "dress-up" the StreamBaby menus with Metadata from the WHS? Seems there is a good source for Metadata to attach to movies on the internet. I looked at MyMovies and it collects a lot of the metadata from Windows Media Center. It would be nice if that could be available through a SteamBaby access. I do not know if Tivo renders their menus using CML stored in the Video folders -

I have not searched too widely yet. I am still very much in the creating plumbing mode but I am not far from creating the library mode so it is a good time to ask.
netserf57 is offline   Reply With Quote
Old 09-11-2009, 10:35 AM   #1541
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by valley_nomad View Post
I noticed the uppercase V for the file name. But it didn't do anything for me.

I actually captured the HTTP string sent to the PC's port 80 by Tivo after I add PC's IP via "Manually add a server...":

/TiVoConnect?Command=QueryContainer&Container=%2F&Format=text %2Fxml HTTP GET

I am not HTTP expert. But this is certainly not the HTTP for getting the file TiVoConnect. I don't know if the query command can be understood by any web server or only by some Tivo-aware server (or MHO, pyTivo?) so that the file TiVoConnect can be sent back to Tivo as the response?
I'd try another web server-- Most standard web servers just strip off the part after the '?' and serve up that file (which is what we are looking for). I just tried the web server you posted a link to earlier (as well as looking at the source) and it doesn't strip out the stuff after the '?' so it is looking for the wrong file.

Edit: The above is a bit of an over-simplification, but in general it describes the expected reaction of a typical web server to a URL with query parameters pointing to a file in a real file system.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-11-2009, 10:41 AM   #1542
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by netserf57 View Post
I have recently began to assemble the "plumbing" to attach a video library to my Tivo. I recently built a windows home server and that is the platform I wish to create the video library on. I installed pyTivo and StreamBaby so I can access videos that can be stored on the server from the Tivo.

Is there anyway to "dress-up" the StreamBaby menus with Metadata from the WHS? Seems there is a good source for Metadata to attach to movies on the internet. I looked at MyMovies and it collects a lot of the metadata from Windows Media Center. It would be nice if that could be available through a SteamBaby access. I do not know if Tivo renders their menus using CML stored in the Video folders -

I have not searched too widely yet. I am still very much in the creating plumbing mode but I am not far from creating the library mode so it is a good time to ask.
Streambaby supports pyTivo style metadata files (as well as straight HTML, TiVo formal XML files, plus others). pyTivo style metadata files are probably the way to go as there is a lot of documention around the web as well as utiltiies for creating/manipulating them. (I'd point them out, but I don't know off the top of my head where the info is...)

Streambaby supports an additional pyTivo tag "Image : " which can point to an image to use when displaying metadata for the movie.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-11-2009, 01:30 PM   #1543
netserf57
Registered User
 
Join Date: Nov 2005
Location: Severn, MD
Posts: 52
Quote:
Originally Posted by kearygriffin View Post
Streambaby supports pyTivo style metadata files (as well as straight HTML, TiVo formal XML files, plus others). pyTivo style metadata files are probably the way to go as there is a lot of documention around the web as well as utiltiies for creating/manipulating them. (I'd point them out, but I don't know off the top of my head where the info is...)

Streambaby supports an additional pyTivo tag "Image : " which can point to an image to use when displaying metadata for the movie.
Thanx - a starting point.

is there any integration of the metadata collected by myMovie? I installed this which installs an SQL DB and when I put a DVD in the drive - it collects movie image and metadata from the Internet and stores it in the database.

I will start reading about pyTivo and myMovie
netserf57 is offline   Reply With Quote
Old 09-11-2009, 06:16 PM   #1544
valley_nomad
Registered User
 
Join Date: Dec 2004
Posts: 20
Quote:
Originally Posted by kearygriffin View Post
I'd try another web server-- Most standard web servers just strip off the part after the '?' and serve up that file (which is what we are looking for). I just tried the web server you posted a link to earlier (as well as looking at the source) and it doesn't strip out the stuff after the '?' so it is looking for the wrong file.

Edit: The above is a bit of an over-simplification, but in general it describes the expected reaction of a typical web server to a URL with query parameters pointing to a file in a real file system.
I installed Apache for Windows and it works. Thanks! This is a neat trick. The only issue is that I have to use static IP for PC. Is there a way for streambaby to utilize the tivobeacon for broadcast/discovery? It seems that quite a few network devices lack Bonjour support. The option to run without Bonjour will be a good added feature for streambaby.

I now can play avi, mp4, rmvb smoothly although I don't know which ones use transcoding and which ones are streamed directly. But streambay often sends warnings about not being able to find some resources, such as "resource 5362 not found". The playback of RMVB also can not be resumed once it is in the trick mode (e.g. FF). Nonetheless, streambaby is a great HME app. Thanks again.

Last edited by valley_nomad : 09-11-2009 at 08:52 PM.
valley_nomad is offline   Reply With Quote
Old 09-11-2009, 07:19 PM   #1545
wmcbrine
Resistance Useless
 
wmcbrine's Avatar
 
Join Date: Aug 2003
Posts: 9,019
Quote:
Originally Posted by valley_nomad View Post
Is there a way for streambaby to utilize the tivobeacon for broadcast/discovery?
If you mean the old-style, port 2190 beacon, TTBOMK it can only be used for HMO, not HME.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
wmcbrine is offline   Reply With Quote
Old 09-14-2009, 12:09 PM   #1546
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by kearygriffin View Post
Streambaby supports pyTivo style metadata files (as well as straight HTML, TiVo formal XML files, plus others). pyTivo style metadata files are probably the way to go as there is a lot of documention around the web as well as utiltiies for creating/manipulating them. (I'd point them out, but I don't know off the top of my head where the info is...)

Streambaby supports an additional pyTivo tag "Image : " which can point to an image to use when displaying metadata for the movie.
KearyGriffin, are there plans to allow for multiple endofline characters (ie: Unix, Win or Mac EOLs)? I have some people who are alpha-testing my Tago software (that writes tags automatically for .txt files and .mp4-style ATOMs) that are complaining that the minute (on windows or Mac) they edit these .txt files in generic text editors, neither pyTivo nor Streambaby interpret these files correctly. I fixed my issue by forcing UNIX endoflines when writing the file -- and telling users not to edit the files outside of Tago, but it seems to me rather closed-minded that both pyTiVo and Streambaby which, due to their python and Java nature can be run cross-platform, locks its users into writing EOLs in Unix format. isn't this an issue that needs to be taken care of?

I am gonna copy this to wmcbrine too (as I think pyTivo needs to be changed as well)

Thx

JannLinder
jannlinder is offline   Reply With Quote
Old 09-14-2009, 12:28 PM   #1547
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Lots of: Error E0xffff's

Anyone out there know why we get so many E0xffff errors???

I get them on many files -- and most of the time the problem goes away for awhile if i EITHER transcode them to a different "quality" (which means it is a java issue...as this forces ffmpeg to read the file) or restart the tivoHD.


I have several hand-encoded files (from flv to x264) that this happens too...but once it happens, any files I have EVER encoded that streambaby does NOT transcode will give that error.


Thx

JannLinder
jannlinder is offline   Reply With Quote
Old 09-14-2009, 12:32 PM   #1548
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Transcoding speedup...

On a different machine (than the one I mentioned previously in this thread) I made use of the "/Users/<user>/Library/Application Support/pyTivoX/streambaby-user.ini" file and did the following on a "iMac 7,1" aluminum:

Code:
ffmpeg.threads=4
ffmpegexe.transcode=-acodec ac3 -vcodec mpeg2video -f vob -async 1 -r ${closest.mpeg.fps} -v 0 -threads 4
ffmpegexe.transcode.sameqargs=-sameq -ab 384k -ar ${asamplerate}
It massively sped up the processing (and therefore transmission) of .mkv files and other files that ffmpeg are involved in transcoding. I was wondering why "-threads 2" is the default on the pyTivoX installation (and I am assuming the StreamBaby default installation) when even on a Mac Mini (at least *my* Mini) that does not peg the processor. This ("-threads 4") at least goes 160% in the "Activity Monitor"... "-threads 2" only goes 60-90%.

Also, when I use MacPorts under Snow Leopard and compile ffmpeg with the following options:

Code:
sudo port install ffmpeg +universal +gpl +libogg +vorbis +theora +faac +faad +lame +x264 +xvid
and then add the following to the "/Users/<user>/Library/Application Support/pyTivoX/streambaby-user.ini" file:

Code:
ffmpeg.path=/opt/local/bin/ffmpeg
the speed bump is enormous--even on a Mini over just increasing the "-threads 2" option! Is there a reason to use the libraries and binaries that ship with applications such as pyTivoX?

This is what pyTivoX writes in the streambaby.ini file:
Code:
ffmpegjava.avutil=/Applications/pyTivoX.app/Contents/Resources/libavutil.dylib
ffmpegjava.avcodec=/Applications/pyTivoX.app/Contents/Resources/libavcodec.dylib
ffmpegjava.avformat=/Applications/pyTivoX.app/Contents/Resources/libavformat.dylib
ffmpegjava.swscale=/Applications/pyTivoX.app/Contents/Resources/libswscale.dylib

How, just so we know, does the default Streambaby install find the libraries it uses? Are the above commands also required in the default install?
jannlinder is offline   Reply With Quote
Old 09-14-2009, 02:11 PM   #1549
NJ Webel
Registered User
 
Join Date: Dec 2004
Location: Richmond, VA
Posts: 98
Okay, I need some streambaby assistance. I am running a Windows Home Server where all my video files are located. I have pyTivo installed on the server itself and it automatically runs and serves up my video to my 2 S3s. I have played around with streambaby a little, but the streaming seems choppy with it running on a wireless laptop. Should streambaby instead be installed directly on the server, like I have done with pyTivo to ensure the smoothest streaming? If so, is there a way to make streambaby run automatically at startup (like if the server ever needs a restart)? I am looking for seamless functionality for the spousal unit. If that is not the correct way of doing things, can someone steer me in the right direction?

Sorry about the noob questions, sometimes I need to be talked through like I'm 8.
NJ Webel is offline   Reply With Quote
Old 09-14-2009, 04:19 PM   #1550
wmcbrine
Resistance Useless
 
wmcbrine's Avatar
 
Join Date: Aug 2003
Posts: 9,019
Quote:
Originally Posted by jannlinder View Post
neither pyTivo nor Streambaby interpret these files correctly
I'm not seeing that here. Both LF and CR/LF endings work for me in pyTivo, under both Linux and Windows. I haven't tried old Mac style (CR-only); I wouldn't be surprised if that one failed.

I wonder if your complaining Windows users are saving as RTF or something? Windows can get very creative in how it mangles things.

I tested with Python 2.6.2 in Ubuntu and 2.5.1 in Win XP. I doubt this has changed with new Python versions. pyTivo simply relies on Python to split the file into lines (i.e., "for line in file(metadata):"), and on .strip() to remove the line endings. The metadata files are opened in text mode, but it makes no difference if I change that to open them in binary mode.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
wmcbrine is offline   Reply With Quote
Old 09-14-2009, 05:03 PM   #1551
Rdian06
Registered User
 
Join Date: Apr 2008
Posts: 463
Quote:
Originally Posted by jannlinder View Post

It massively sped up the processing (and therefore transmission) of .mkv files and other files that ffmpeg are involved in transcoding. I was wondering why "-threads 2" is the default on the pyTivoX installation (and I am assuming the StreamBaby default installation) when even on a Mac Mini (at least *my* Mini) that does not peg the processor. This ("-threads 4") at least goes 160% in the "Activity Monitor"... "-threads 2" only goes 60-90%.

Also, when I use MacPorts under Snow Leopard and compile ffmpeg with the following options:

Code:
sudo port install ffmpeg +universal +gpl +libogg +vorbis +theora +faac +faad +lame +x264 +xvid
and then add the following to the "/Users/<user>/Library/Application Support/pyTivoX/streambaby-user.ini" file:

Code:
ffmpeg.path=/opt/local/bin/ffmpeg
the speed bump is enormous--even on a Mini over just increasing the "-threads 2" option! Is there a reason to use the libraries and binaries that ship with applications such as pyTivoX?
ffmpeg docs generally say to use threads = number of processors. On my older hardware I tended to only use 2 for dual core machines, bumping it up to 4 didn't help and in some cases hurt. I haven't tested with greater than 4 on my Q6600, but I'll give it a shot and see later. The point is it will vary depending on your hardware...

As for the Snow Leopard MacPorts compile, older Apple compilers created ffmpeg binaries that would crash when the full Intel optimizations were enabled, so for a while MacPorts would disable Intel optimizations for ffmpeg. I think Apple finally fixed the compiler problem with Xcode 3.0 or 3.1 and I guess MacPorts finally caught up so what you are seeing is an ffmpeg with full Intel optimizations enabled AND the additional optimization improvements moving from Xcode 3.1 to 3.2. Not sure whether the 32 vs 64 bit has anything to do with it. Haven't looked at the MacPorts stuff in Snow Leopard yet.
__________________
Why be frustrated with Tivo Desktop Plus when you could use pyTivo (open source).
Get
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Works on Windows, Mac and Linux.
Rdian06 is offline   Reply With Quote
Old 09-14-2009, 06:30 PM   #1552
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by wmcbrine View Post
I'm not seeing that here. Both LF and CR/LF endings work for me in pyTivo, under both Linux and Windows. I haven't tried old Mac style (CR-only); I wouldn't be surprised if that one failed.

I wonder if your complaining Windows users are saving as RTF or something? Windows can get very creative in how it mangles things.

I tested with Python 2.6.2 in Ubuntu and 2.5.1 in Win XP. I doubt this has changed with new Python versions. pyTivo simply relies on Python to split the file into lines (i.e., "for line in file(metadata):"), and on .strip() to remove the line endings. The metadata files are opened in text mode, but it makes no difference if I change that to open them in binary mode.
In testing I just confirmed that Mac EOL (CR) does mess up the pyTivo interpretation of the meta files. I will check with my users to see but they said they were using notepad.exe and I did not think notepad (mac user here--so am not sure) saved as RTF.
jannlinder is offline   Reply With Quote
Old 09-14-2009, 06:41 PM   #1553
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by jannlinder View Post
In testing I just confirmed that Mac EOL (CR) does mess up the pyTivo interpretation of the meta files. I will check with my users to see but they said they were using notepad.exe and I did not think notepad (mac user here--so am not sure) saved as RTF.
I just tested streambaby with CR, CR/LF, LF and they all seemed to work for me (at least under Linux).

The thing you need to be careful of with Notepad.exe is that it unfortunately likes to add a UTF-8 BOM marker to the beginning of text files. At least for Java, it wasn't handled automatically and at some point I had to add a bunch of code to deal with it.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-14-2009, 06:47 PM   #1554
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by Rdian06 View Post
As for the Snow Leopard MacPorts compile, older Apple compilers created ffmpeg binaries that would crash when the full Intel optimizations were enabled, so for a while MacPorts would disable Intel optimizations for ffmpeg. I think Apple finally fixed the compiler problem with Xcode 3.0 or 3.1 and I guess MacPorts finally caught up so what you are seeing is an ffmpeg with full Intel optimizations enabled AND the additional optimization improvements moving from Xcode 3.1 to 3.2. Not sure whether the 32 vs 64 bit has anything to do with it. Haven't looked at the MacPorts stuff in Snow Leopard yet.

In examining the resulting ffmpeg with x264 I am seeing all optimizations including the following during an encode. This would indicate the speed improvements seen with a pyTivo/StreamBaby transcode:

Code:
[libx264 @ 0x101034000]using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
73fps during 1st pass:
Code:
ffmpeg -y -i INPUT -threads 0 -b 2M -bt 4M -vcodec libx264 -pass 1 -vpre fastfirstpass  -flags2 -bpyramid  -an -f mp4
43fps during 2nd pass:
Code:
ffmpeg -y -i INPUT -threads 0 -b 2M -bt 4M -vcodec libx264 -pass 2 -vpre hq  -flags2 -bpyramid  -acodec libfaac -ac 2 -ar 48000 -ab 256k OUTPUT
That is a 300% improvement on firstpass and a 250% improvement on 2nd pass. (The -threads 0 argument just lets x264 use as many threads as it thinks it needs). It ends up using 180% processing time so both cores ARE in use. For those that say: "Hey ... of course it is faster -- he turned of bpyramid", I explicitely turn off bpyramid (-flags2 -bpyramid ) cos using mb-tree -- which is the default now -- is much better (in my estimation) and that default option turns off bpyramid anyway. Doing it on the command line simply reminds me it is being done.

Again, this is simply encoding -- not transcoding.. but the math should be roughly the same. This is also 64bit build (actually it is a universal build across the board).

Jann
jannlinder is offline   Reply With Quote
Old 09-14-2009, 06:51 PM   #1555
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by kearygriffin View Post
I just tested streambaby with CR, CR/LF, LF and they all seemed to work for me (at least under Linux).

The thing you need to be careful of with Notepad.exe is that it unfortunately likes to add a UTF-8 BOM marker to the beginning of text files. At least for Java, it wasn't handled automatically and at some point I had to add a bunch of code to deal with it.
What I got when I saved the metafiles using Mac CR and served them up using StreamBaby on an "iMac 7,1" using pyTivo was:

(this is the filelisting)
filename1 episodeTitle :
filename2 episodeTitle :
filename3 episodeTitle :
filename4 episodeTitle :
filename5 episodeTitle :

whereas "episodeTitle :" *was* actually the words "episodeTitle :"

When you clicked into the program the screen was filled with gobblygook and then redrawn with spaces all over half of the screen -- erasing what was there.

I even quit and restarted both the TiVo and the Mac

Snow Leopard 10.6.1 was the platform. Files were saved using BBEdit with Mac CR line endings.

Not arguing, you understand, just saying what I experienced.
jannlinder is offline   Reply With Quote
Old 09-14-2009, 06:59 PM   #1556
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by jannlinder View Post
I was wondering why "-threads 2" is the default on the pyTivoX installation (and I am assuming the StreamBaby default installation) when even on a Mac Mini (at least *my* Mini) that does not peg the processor. This ("-threads 4") at least goes 160% in the "Activity Monitor"... "-threads 2" only goes 60-90%.
I actually think the Streambaby default is ffmpeg.threads=1. It's a relatively recent addition to streambaby and I didn't want to change the default behaviour.

I tried -threads 0 which I thought was "auto", but at a minimum it crashes the stock Ubuntu ffmpeg, so that was out.

I probably won't do anything about this except leave it as it is and let people change their INI to set the thread parameter as they want. (Except maybe if ffmpeg does end up with an "auto" parameter, use it)

And just as a side note, at least for streambaby when you are doing your benchmarks, you should be transcoding/encoding to MPEG-2 (not h.264).
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-14-2009, 07:01 PM   #1557
kearygriffin
Registered User
 
Join Date: Jan 2008
Posts: 346
Quote:
Originally Posted by jannlinder View Post
What I got when I saved the metafiles using Mac CR and served them up using StreamBaby on an "iMac 7,1" using pyTivo was:

(this is the filelisting)
filename1 episodeTitle :
filename2 episodeTitle :
filename3 episodeTitle :
filename4 episodeTitle :
filename5 episodeTitle :

whereas "episodeTitle :" *was* actually the words "episodeTitle :"
.
Is it possible to post it as an attachment? (Can't remember whether I've seen anyone post a small attachment on tivocommunity or not...)
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
kearygriffin is offline   Reply With Quote
Old 09-14-2009, 11:27 PM   #1558
westside_guy
Annoyingly ephemeral
 
westside_guy's Avatar
 
Join Date: Mar 2005
Location: The soggy part of the Pacific NW
Posts: 454
I would hazard to guess they're using Notepad, which can really mangle line breaks if the file doesn't originally have the only type of line break Notepad understands (CR-LF if I remember correctly - whatever the Windows standard is). Since the source config wasn't originally built on Windows, probably when they "correct" it they're getting a sequence of 3 or 4 different breaks on each line.

FWIW when I was a Windows user I found Textpad to be a much superior text editor. It's shareware, but back in the day it was still usable in its free version (although I found it useful enough that I bought a license).

On the Mac I've used both the free TextWrangler and it's paid sibling BBedit - both work just fine with streambaby and pyTivo config files. They're smart enough to recognize the type of line endings being used by the file, and sticking with that pattern when you edit it.
westside_guy is offline   Reply With Quote
Old 09-15-2009, 12:53 PM   #1559
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by kearygriffin View Post
And just as a side note, at least for streambaby when you are doing your benchmarks, you should be transcoding/encoding to MPEG-2 (not h.264).

What? I thought streambaby encoded to MP4...not Mpeg2 when it had to transcode. That, I thought, is why mp4's were sent unchanged to the tivo? Is that a choice cos it is faster to encode to mpeg2 than mp4 or is it a requirement?

Jann
jannlinder is offline   Reply With Quote
Old 09-15-2009, 12:54 PM   #1560
jannlinder
Registered User
 
Join Date: Oct 2004
Location: San Jose, CA
Posts: 106
Quote:
Originally Posted by kearygriffin View Post
Is it possible to post it as an attachment? (Can't remember whether I've seen anyone post a small attachment on tivocommunity or not...)
Like a picture of the screen and the metafile(s) that made it that way?

Last edited by jannlinder : 09-15-2009 at 12:54 PM. Reason: finish sentence
jannlinder is offline   Reply With Quote
Reply
Forum Jump




Thread Tools


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Advertisements

TiVo Community
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
vBulletin Skins by: Relivo Media

(C) 2013 Magenium Solutions - All Rights Reserved. No information may be posted elsewhere without written permission.
TiVoŽ is a registered trademark of TiVo Inc. This site is not owned or operated by TiVo Inc.
All times are GMT -5. The time now is 04:51 PM.
OUR NETWORK: MyOpenRouter | TechLore | SansaCommunity | RoboCommunity | MediaSmart Home | Explore3DTV | Dijit Community | DVR Playground |