TiVo Community Forum banner
  • TiVoCommunity.com Ambassador Program Now Open! >>> Click Here

Streambaby - new streaming application

1M views 4K replies 481 participants last post by  thewebgal 
#1 ·
I wanted to let everyone know about a new streaming video application, StreamBaby:

you can find it at:
http://code.google.com/p/streambaby/

It is originally based off of tivostream, and has the following main features:

* Random access streaming of video files. Able to seek to anywhere in the video. Also removes need for qt-faststart.
* Attempts to work around the 1.1G limit for streaming videos on the TiVo. If you reach the 1.1G limit, the video you are watching will be paused and restarted with a fresh buffer at the position you were in before.
* Ability to FF/RWD to points in the video that have not been buffered yet. When outside of the buffer, a "preview" of the movie (low-quality static images) will appear, and when play is pressed the video stream will be repositioned to start streaming at that point (ala Netflix/TiVo)
* Realtime preview generation for most file formats. Others (mpeg in particular) use autogenerated thumbnail files.
* Ability to transcode and stream video that is not inherently TiVo compatible. Supports most wmv, avi, and mkv. Preview mode and random-positioning work with most transcoded files.
* Remembers your position in the video when you stop watching and automatically starts at that position next time you watch. Works even when exiting playing via the "TiVo" button.

Please let me know what you think, or if you have any bugs/suggestions, etc.

Also I just wanted to make sure I thanked moyekj here for his work on tivostream, as well as his efforts in testing/debugging/code suggestions on Streambaby. Thanks! Thanks also to Steve C who also helped with suggestions and testing. Their efforts have hopefully helped make Streambaby a better application.

(Apologies for the repost, it was mentioned this may be a better forum for the thread)

Keary
 
See less See more
#1,227 ·
I sure hope this wasn't answered before.. if it was i'm sorry, I did try and search.

But, when I am playing a movie, that is about 4.5GB in size, it stops playing at around the 1 hour mark or so... Is there a limitation, should I rip the DVD in 1gb chunks? These are VOB files ripped using DVD Shrink. I can provide more info, if i Know what i need to provide...
Sometimes there are glitches in the mpeg2 stream and Tivo will reject the stream. You should try copying the same video to your Tivo using pyTivo and see if it has a problem at the same point it stops in Streambaby. If that fails as well then that is the problem for sure.
If you run the stream through VideoRedo QuickStream Fix very often it will fix glitches and then will stream/copy fine to Tivo.
 
#1,228 ·
I ripped a DVD with DVD Shrink and tested streaming the VOB with Streambaby and reproduced the problem. It stopped when it hit the end of the buffer and did not rebuffer.

I also noticed another significant difference. When I play a working video the timeline immediately shows the total duration of the video and the green bar gradually fills as the video downloads. Streambaby even permits you to fast forward beyond the buffered segment, automatically creating a new buffer when you press play.

However, the DVD Shrink VOB only showed the video duration as the amount currently streamed. As more video was streamed in the duration increased. This means that when the end of the buffer was hit, as far as Streambaby was concerned it was already at the end of the video. It appears that FFMPEG is returning a 0 duration for this file.

So there's probably nothing wrong with your Streambaby setup, but not sure that DVD Shrink is the best tool to use with it. Although I haven't tested this further, I suspect it might be more to do with VOB format than DVD Shrink.
 
#1,229 ·
However, the DVD Shrink VOB only showed the video duration as the amount currently streamed. As more video was streamed in the duration increased. This means that when the end of the buffer was hit, as far as Streambaby was concerned it was already at the end of the video. It appears that FFMPEG is returning a 0 duration for this file.
This indicates that the MPEG file itself is damaged. Run the MPG through a tool like VideoRedo's Quick Stream Fix and it will quickly resolve these little issues and produce a new MPG file that will stream correctly.

Rick
 
#1,230 ·
It's probably one of two things-- Streambaby crashing (what do you see on the console?) You may want to turn on debugging as detailed in:
ttp://code.google.com/p/streambaby/...gging_problems

The other possibility is some kind of firewall issue. Assuming you haven't changed the port from the default (7290) you may want to try the following. (It sounds like you have multiple PC's on your network):

From the PC streambaby is running on, in a browser goto:
ttp://XXX.XXX.X.X:7290/streambaby/folder.png

Replacing XXX.XXX.X.X with the IP address of your PC.

You should see a little picture of a folder.

Then try the same from another PC on your network (leaving the IP address as the address running streambaby)
kearygriffin,

I tried your URL suggestion and I get a '404 page not found' error on the local machine as well.

I attached the debugs you requested from my Server and Desktop machines that I'm attempting this on. I'm guessing that I'm missing an addon application or that one is misconfigured. Unfortunately I'm lacking in Linux knowledge so I'm not sure where to look to make corrections. Please let me know if you see anything in the debugs.

Again, thanks for your help.
 

Attachments

#1,231 ·
kearygriffin,

I tried your URL suggestion and I get a '404 page not found' error on the local machine as well.

I attached the debugs you requested from my Server and Desktop machines that I'm attempting this on. I'm guessing that I'm missing an addon application or that one is misconfigured. Unfortunately I'm lacking in Linux knowledge so I'm not sure where to look to make corrections. Please let me know if you see anything in the debugs.

Again, thanks for your help.
Looking at the logs (both) I see the following line:
MDNS: http://127.0.1.1:7290/streambaby
which says that streambaby is listening on the "local" network interface (127.0.0.1) which won't be accessible from other machines (i.e. the TiVo)

What does the line in your streambaby.ini that you changed to bind to the IP address of your linux box look like? For a typical home network (but not all home networks) it should be probably look something like:

ip=192.168.x.x

If you could post the exact line in the streambaby.ini that assigns the IP address, and also post the output of the linux command:
ifconfig

That may help to sort out the problem. If the ip= in the streambaby.ini is correct, and it matches the main network address from ifconfig, I'm not sure what the problem would be. (I don't think streambaby auto-defaults to 127.0.0.1 in any cases, but I could be wrong about that)
 
#1,232 ·
This indicates that the MPEG file itself is damaged. Run the MPG through a tool like VideoRedo's Quick Stream Fix and it will quickly resolve these little issues and produce a new MPG file that will stream correctly.

Rick
Thanks, I'll give that a try and let you know how it came out. Thanks to all that helped, I was begining to think I was the only one who had this issue.

As an aside, what DVD ripping software does anyone recommend?
 
#1,233 ·
Here are the outputs from my .ini file and ifconfig command.

xxxxx@ubuntu-srvr:~/streambaby-0.27$ cat streambaby.ini
#
# ./streambaby --help for more configuration file options
#

dir.1=/home/xxxxx/Movies
dir.1.name=Movies
#dir.2=/media/disk
#dir.2.name=External Drive
# Ip address to bind to
# most people don't need to change this.
ip=10.10.10.25
# port to use
#port=7290

--------------

xxxxx@ubuntu-srvr:~/streambaby-0.27$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:6e:2e:e3:c9
inet addr:10.10.10.25 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:fe2e:e3c9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:141 errors:0 dropped:0 overruns:0 frame:0
TX packets:144 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15660 (15.2 KB) TX bytes:17671 (17.2 KB)
Interrupt:16 Base address:0xa000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200 (200.0 B) TX bytes:200 (200.0 B)
 
#1,234 ·
Everything looks perfect in the above configuration, so I started tracing through the IP handling code in streambaby itself. There were definitely a couple of bugs related to IP address handling. I couldn't come up with a scenario where it would bind to 127.0.01, but it definitely could bind to an address not specified in the INI file.

I've just uploaded a new version to SVN that I think resolves the IP related issues. If you could give it a try that would be great (make sure you put/leave the ip=10.10.10.25 line in your INI)

http://streambaby.googlecode.com/files/streambaby-svn-r238.zip

Hopefully this version will either work or at least spit out an error message about not being able to bind to the specified IP address/port.
 
#1,235 ·
mphtrilogy, did you rip these videos yourself? It's just that if you have ripped a set of videos from DVD for example, but there's a problem with the program or settings used to rip them, this may be be specific to your ripping process. We may be able to replicate the issue. But if these videos are of different types or from different sources then it really points to a problem with your Streambaby installation. Obviously Streambaby works for most people, so we need to isolate what is different in your case that's causing this problem. It may be something to do with your setup or your videos. The more you can tell us, the more likely it will include a clue that will help one of us realise what the issue is.

If it is an option, you can PM me and we can arrange a way to send me a video. I'll happily try it and report back.
No, I've taken these off of the Tivo with the Tivo desktop software. I then cut and paste them over to another bigger external hard drive that I want to access with streambaby. All of the videos are from TCM and under 2 hours standard def, 1.5-3gig.

I'm not too strong on the troubleshooting end, but with some detailed instructions I can give it a shot.
 
#1,236 ·
No, I've taken these off of the Tivo with the Tivo desktop software. I then cut and paste them over to another bigger external hard drive that I want to access with streambaby. All of the videos are from TCM and under 2 hours standard def, 1.5-3gig.

I'm not too strong on the troubleshooting end, but with some detailed instructions I can give it a shot.
Oh, well if these are .TiVo files then that would explain it. You need to decrypt to .mpg in order for streambaby to be able to re-buffer once the 1.1GB stream limit is reached. For .TiVo files that is not possible. (For .TiVo files once you stream ~ 1.1GB worth of data the Tivo will cut off the stream and streambaby is unable to re-start stream where you left off. Decrypting to .mpg solves the problem of not being able to start a new stream where it was cut off).
 
#1,237 ·
...

I've just uploaded a new version to SVN that I think resolves the IP related issues. If you could give it a try that would be great (make sure you put/leave the ip=10.10.10.25 line in your INI)

http://streambaby.googlecode.com/files/streambaby-svn-r238.zip

Hopefully this version will either work or at least spit out an error message about not being able to bind to the specified IP address/port.
I quickly checked out the pressing slow then pause change you made and it looks like it emulates the Tivo playback. Thanks, it comes in handy for double checking scenes in Lost episodes.
 
#1,238 ·
Oh, well if these are .TiVo files then that would explain it. You need to decrypt to .mpg in order for streambaby to be able to re-buffer once the 1.1GB stream limit is reached. For .TiVo files that is not possible. (For .TiVo files once you stream ~ 1.1GB worth of data the Tivo will cut off the stream and streambaby is unable to re-start stream where you left off. Decrypting to .mpg solves the problem of not being able to start a new stream where it was cut off).
Can you advise how I can decrypt these files?

I have DVD decrypter and also DVD Fab Platinum.

What should I do?

Thanks
 
#1,239 ·
Can you advise how I can decrypt these files?

I have DVD decrypter and also DVD Fab Platinum.

What should I do?

Thanks
There are several free options for decrypting .TiVo files. kmttg (see link in my sig) is one of those options and can do a lot more than just decrypt, though you can use it solely as a GUI for decrypting if that's all you need. If you just want a simple command line program to do it then tivodecode is all you need. There are some other GUI interfaces built around tivodecode as well that can do it.
 
#1,240 ·
There are several free options for decrypting .TiVo files. kmttg (see link in my sig) is one of those options and can do a lot more than just decrypt, though you can use it solely as a GUI for decrypting if that's all you need. If you just want a simple command line program to do it then tivodecode is all you need. There are some other GUI interfaces built around tivodecode as well that can do it.
thank you very much, I will give this a try.

If I want to move these back on to my Tivo after I decrypt them, will I be able to?
 
#1,241 ·
If I want to move these back on to my Tivo after I decrypt them, will I be able to?
Yes. If you use pyTivo to copy them back to your Tivo you can also keep the program information (title, description, etc) by generating a pyTivo metadata file which is a simple .mpg.txt file that accompanies the .mpg file. kmttg has option to generate this metadata file from .TiVo files as well. (Streambaby also reads the metadata file to show information about a video file).
 
#1,243 ·
I use a tool called Direct Show Dump. It quickly turns the TiVo file into a MPG.

Just do a google search and you should find it. However you must have at least the free Tivo Desktop installed in order to get the right decoder installed on your PC.

Rick
That is another option. But the requirement of having the the proper TD codecs installed for it to work is why I don't bother mentioning it since tivodecode has no such dependencies and works very fast and reliably on all major platforms. VideoRedo is another non-free option for decrypting but again relies on proper TD codecs being installed.
 
#1,245 ·
Using the FFMPEG script to convert a TiVo HD MPG into a MP4 I get really tinny sounding audio. Has anyone else encountered this?

ffmpeg -y -i inputFile.mpg -vcodec libx264 -coder 0 -level 41 -sameq -g 300 -bufsize 14745k -b 5000k -maxrate 16000k -bug "+autodetect+ms" -me_method epzs -trellis 2 -mbd 1 -acodec copy -f mp4 outputFile.mp4

I am using the FFMPEG binary on windows that is distributed with the Streambaby package.

Also I have tried just exporting the -acodec copy to a AC3 file and then using MP4box to mux that with the H264 created above but MP4box complains about the AC3 file.

Any hints on how to easily create a batch script to convert TiVo MPGs into Mp4 that does not cause the audio to become tinny?

Thanks,

Rick
 
#1,247 ·
-acodec copy... you're not doing anything to the audio at all. But sometimes the TiVo gets in a weird state. It can sometimes be cleared up by playing a stream with different parameters, or almost always by rebooting.
I understand that FFMPEG is not supposed to be doing anything to the audio but it definately is, or when it muxs it into MP4 it causes the issue. All that I can be sure of is that the audio is fine in MPG, but any attempt to get the audio out of the MPG with FFMPEG causes the tinny sounding audio. This is in any player, even PC players, not just the TiVo.

No one else experiences this FFMPEG AC3 behavior on Windows?

Rick
 
#1,248 ·
No one else experiences this FFMPEG AC3 behavior on Windows?
No I have not experienced that behavior on Windows or Linux platforms using -acodec copy to get a copy of AC3 audio. Most of my sources are from Tivo recordings. Could be something about source video is causing the issue, especially if it's a Blu Ray rip or something of that nature. Perhaps if you post somewhere a short clip of a source video that you are having an issue with others could try it out to see what happens.
Assuming the source video is mpeg2 have you run it through VRD QSFix to see if that helps?
 
#1,249 ·
Everything looks perfect in the above configuration, so I started tracing through the IP handling code in streambaby itself. There were definitely a couple of bugs related to IP address handling. I couldn't come up with a scenario where it would bind to 127.0.01, but it definitely could bind to an address not specified in the INI file.

I've just uploaded a new version to SVN that I think resolves the IP related issues. If you could give it a try that would be great (make sure you put/leave the ip=10.10.10.25 line in your INI)

ttp://streambaby.googlecode.com/fil...y-svn-r238.zip

Hopefully this version will either work or at least spit out an error
YES, YES, YES! Thank you keary, you da man! The svn worked correctly. Do you take donations for this project somewhere? I didn't see one on the streambaby web page.
 
#1,250 ·
YES, YES, YES! Thank you keary, you da man! The svn worked correctly. Do you take donations for this project somewhere? I didn't see one on the streambaby web page.
I didn't have a chance to do extensive testing and report this earlier, but .27 was broke in the same way for me (Ubuntu 8.10, recent svn builds of ffmpeg and x264) and the r238 build worked great, as expected. So it looks like there was definitely something wrong with the address binding.
 
#1,251 ·
Using the FFMPEG script to convert a TiVo HD MPG into a MP4 I get really tinny sounding audio. Has anyone else encountered this?

ffmpeg -y -i inputFile.mpg -vcodec libx264 -coder 0 -level 41 -sameq -g 300 -bufsize 14745k -b 5000k -maxrate 16000k -bug "+autodetect+ms" -me_method epzs -trellis 2 -mbd 1 -acodec copy -f mp4 outputFile.mp4
Odds are that when changing containers ffmpeg messes up the audio codec ID or bitrate or whatnot. Try using mencoder instead of ffmpeg. It's known to better handle ID tags when you change containers.

Or re-encode the audio... I doubt you'll notice much of a slowdown or quality hit... At least see if re-encoding fixes it...
 
Top