1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Streambaby - new streaming application

Discussion in 'TiVo Home Media Features & TiVoToGo' started by kearygriffin, Jan 20, 2009.

  1. Jan 25, 2009 #161 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    Great! I've updated my original post with the new instruction.
     
  2. Jan 25, 2009 #162 of 3415
    abnersnell

    abnersnell New Member

    18
    0
    Mar 3, 2002
    Thanks for the info!

    Would it be safe to assume that once the stream hit one of these commercial cut points that the "skip" would be instant as long as the next starting point was in the current buffer? I would expect to see the "please wait" if it was after the buffer point.

    This probably wouldn't be so much of an issue because the "skip" wouldn't be so far ahead that the buffer wouldn't be there.

    I used to have this functionality using a program called "GB-PVR". It is my understanding that it operated like you described, reading a file with cut points generated from comskip/comcut programs.

    Thoughts?
     
  3. Jan 25, 2009 #163 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    I *believe* you're gonna have to make the 'skip' happen on the streambaby side (so on the tivo, it would believe that this is just a normal movie -- its just what it gets is already cut up).. As it is reading the file, it is going to have to serve up the cut-up stream. I don't believe ffmpeg (the program that is currently used to re-encode movies) supports edit lists (mencoder does, but I think ffmpeg doesn't). I also think that the streaming program is supposed to indicate how long the movie is when queried, which gets a little messier if there are cut lists. Finally, simple cuts generally cause audio/video sync issues. So a bunch of re-encoding would probably have to be done...

    Anyways, these are just guesses of mine. Not claiming any of this is impossible, but that it's not a trivial 'add this flag' change.

    Is there a reason you prefer to save the original movie plus an edit list instead of just saving the editted movie and serving that up?
     
  4. Jan 25, 2009 #164 of 3415
    moyekj

    moyekj Well-Known Member

    11,148
    33
    Jan 23, 2006
    Mission...
    I think the commercial skipping would be pretty simple implemented something like:
    * Before starting playback parse the cut file to find all the time ranges to skip
    * Send normal uncut video stream to Tivo
    * When commercial cut point is reached simply skip ahead length of commercial. If buffer is long enough then no new stream is needed, else start a new stream if needed.

    i.e. It's basically like watching a normal full stream but with periodic automatic jump ahead points.
    BTW, this is precisely how ReplayTV automatically skips commercials upon playback (with aid of it's own generated cut file).

    Having said all that like I said I would prefer to just cut commercials out myself so wouldn't see much value in this.
     
  5. Jan 25, 2009 #165 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    Interesting. Didn't know that the streamer can tell the tivo where to go in the buffer. Clever :)
     
  6. Jan 25, 2009 #166 of 3415
    ajayabb

    ajayabb Member

    429
    0
    Jan 11, 2007
    Moorestown NJ
    Made the changes you recommended, but still getting an error.


    Heres the Log

    08:20:24,875 INFO [WrapperListener_start_runner] Server - Could not find TiVo Beacon service
    08:20:24,875 INFO [WrapperListener_start_runner] BroadcastThread - High frequency enabled
    08:20:24,875 INFO [WrapperListener_start_runner] Server - Broadcast port=2190
    08:20:33,265 INFO [ListenThread] BroadcastThread - High frequency enabled
    08:20:54,906 INFO [MediaRefreshThread] MediaRefreshThread - Refreshing media for: C:\Documents and Settings\AJAY\My Documents\My Music\All Songs
    08:21:22,734 INFO [ListenThread] BroadcastThread - High frequency enabled
    08:23:10,937 INFO [MediaRefreshThread] MediaRefreshThread - Refreshing media took 136 seconds
    08:23:38,281 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Music/
    08:23:39,078 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /MusicOrganizer/
    08:23:44,406 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Photos/
    08:23:44,578 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Podcasting/
    08:23:44,609 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Weather/
    08:23:44,656 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /TrafficCameras/
    08:23:44,687 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /ToGo/
    08:23:44,718 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /streambaby/
    08:23:50,203 INFO [Acceptor] AppHost - Unexpected error: java.lang.IllegalAccessError: tried to access method com.tivo.hme.sdk.Application.setContext(Lcom/tivo/hme/interfaces/IContext;I)V from class com.tivo.hme.sdk.FactoryPlus
    08:24:05,609 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Music/
    08:24:05,703 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /MusicOrganizer/
    08:24:05,750 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Photos/
    08:24:05,937 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Podcasting/
    08:24:05,968 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /Weather/
    08:24:06,000 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /TrafficCameras/
    08:24:06,078 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /ToGo/
    08:24:06,109 INFO [Acceptor] AppHost - 192.168.1.7 icon.png HTTP GET - to factory /streambaby/



    Here's my Wrapper Txt


    #********************************************************************
    # Wrapper Properties
    #********************************************************************
    # Java Application
    wrapper.java.command=java

    # Java Main class
    wrapper.java.mainclass=org.lnicholls.galleon.server.ServiceWrapper

    # Java Classpath (include wrapper.jar) Add class path elements as
    # needed starting from 1
    wrapper.java.classpath.1=../conf
    wrapper.java.classpath.2=../lib/*.jar
    wrapper.java.classpath.4=../hme/*.jar
    # Java Library Path (location of Wrapper.DLL or libwrapper.so)
    wrapper.java.library.path.1=../lib

    # Java Additional Parameters
    #wrapper.java.additional.1=-Droot=C:\Documents and Settings\jtk\My Documents\Eclipse-local\galleon
    #wrapper.java.additional.2=-Dconf=../conf
    #wrapper.java.additional.3=-Dcache=../data
    #wrapper.java.additional.4=-Dlogfile=../logs/log.txt
    #wrapper.java.additional.5=-Dlogs=../logs
    #wrapper.java.additional.6=-Ddata=../data
    #wrapper.java.additional.7=-Dapps=../apps
    #wrapper.java.additional.8=-Dhme=../hme
    #wrapper.java.additional.9=-Dskins=../skins
    #wrapper.java.additional.10=-Dskins=../bin
    #wrapper.java.additional.11=-Djava.awt.headless=false

    # Initial Java Heap Size (in MB)
    #wrapper.java.initmemory=64

    # Maximum Java Heap Size (in MB)
    wrapper.java.maxmemory=128

    # Application parameters. Add parameters as needed starting from 1
    #wrapper.app.parameter.1=

    wrapper.startup.timeout=120

    #********************************************************************
    # Wrapper Logging Properties
    #********************************************************************
    # Format of output for the console. (See docs for formats)
    wrapper.console.format=LPM

    # Log Level for console output. (See docs for log levels)
    wrapper.console.loglevel=ERROR

    # Log file to use for wrapper output logging.
    wrapper.logfile=../logs/wrapper.log

    # Format of output for the log file. (See docs for formats)
    wrapper.logfile.format=LPTM

    # Log Level for log file output. (See docs for log levels)
    wrapper.logfile.loglevel=INFO

    # Maximum size that the log file will be allowed to grow to before
    # the log is rolled. Size is specified in bytes. The default value
    # of 0, disables log rolling. May abbreviate with the 'k' (kb) or
    # 'm' (mb) suffix. For example: 10m = 10 megabytes.
    wrapper.logfile.maxsize=5m

    # Maximum number of rolled log files which will be allowed before old
    # files are deleted. The default value of 0 implies no limit.
    wrapper.logfile.maxfiles=5

    # Log Level for sys/event log output. (See docs for log levels)
    wrapper.syslog.loglevel=ERROR

    wrapper.request_thread_dump_on_failed_jvm_exit=TRUE
    #wrapper.filter.trigger.1=java.lang.OutOfMemoryError
    #wrapper.filter.action.1=RESTART
     
  7. Jan 25, 2009 #167 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    Hmm ... same error as bluehz originally.

    Ah, I wonder if the classpaths have to be sequential. I see in your wrapper.conf that you don't have a classpath.3 like I do. So try making your hme line classpath.3 instead of .4 and see if that helps.
     
  8. Jan 25, 2009 #168 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    Is there a way to "skip" the initial folder in streambaby?

    Example: my videos are under /mnt/media/Video. The folders under there are like Movies, TV Shows, Misc, etc. In my streambaby.ini file I have:

    dir.1=/mnt/media/Video
    dir.1.name=Main Library

    So when I pick streambaby from the menu, I get a "Top Level" screen that just has "Main Library" and then I click on that to see my actual folder structure.

    I know I could just define multiple directories directly in streambaby.ini, but was wondering if there was a less manual method. Maybe I'm just being lazy. :p
     
  9. Jan 25, 2009 #169 of 3415
    ajayabb

    ajayabb Member

    429
    0
    Jan 11, 2007
    Moorestown NJ
    Well that fixed the problem. Now for some reason most of my videos files come up as an incompatible files stream yet they streamed fine before without Galleon. I tried to add the extensions in the wiki but it didnt seem to work. Should the extensions be typed as .avi vs avi .?
     
  10. Jan 25, 2009 #170 of 3415
    ajayabb

    ajayabb Member

    429
    0
    Jan 11, 2007
    Moorestown NJ
    It appears that the only format that will play is an mp4.
     
  11. Jan 25, 2009 #171 of 3415
    windracer

    windracer joined the 10k club

    11,580
    3
    Jan 3, 2003
    St. Pete, FL
    I think most, if not all, of what I've tested so far through Galleon is mp4. It's possible I'm still missing something in the setup that is preventing the transcoding from working.

    I'll play around a bit this afternoon ...
     
  12. Jan 25, 2009 #172 of 3415
    fyodor

    fyodor Member

    523
    0
    Sep 19, 2006
    Hi

    Thanks for putting this together. This is a fantastic program. I was wondering if there was any plan to support embedded metadata for mp4 files.

    Thanks
    F
     
  13. Jan 25, 2009 #173 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    It sounds like at some point you already entered a password into streambaby, and it "remembers' it, so doesn't ask you again. (And its not tomcat or roger, so the folder does not show up.)
    Try pressing the clear button on the selection screen. It should re-ask for your password.

    Note: I also made a mental note that a couple of people don't want streambaby to remember the password. (The way I use it is different tivo's have access to different folders, so I like it remembering). I'll made a config option in a future version.

    I'm also going to remove the -ac parameter completely from the default ffmpeg transcode line, as it seems that has the best results for people.
     
  14. Jan 25, 2009 #174 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    What kind of support are you looking for? Are you talking about (like moyejk was talking about in tivostream) putting more information in the "info" box when info is pressed? (And for that matter, on what I call the "play" screen, the screen that asks if you want to play from beginning or restart from where you left off).

    I do have some plans on doing something with pyTivo metadata (and probably some other formats) but it's not on the front burner just at the moment. I could also do MP4 metadata if you point me in the right direction as to what tags/info I could expect to get out of MP4's.
     
  15. Jan 25, 2009 #175 of 3415
    westside_guy

    westside_guy Annoyingly ephemeral

    464
    1
    Mar 13, 2005
    The soggy...
    Well, obviously I have one of these available. :D I have no problem with getting one to you, but they're kinda big (400 megs or so). While making a shorter rip could likely still demonstrate the green/random block problem at the beginning, it probably wouldn't be the best example of the audio sync problem (since the offset seems to vary throughout the video).
     
  16. Jan 25, 2009 #176 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    Thanks. If it would be possible to PM me a link or an ftp site (or whatever) that I could grab one of the problematic videos from, that would be great.
     
  17. Jan 25, 2009 #177 of 3415
    kearygriffin

    kearygriffin New Member

    346
    0
    Jan 31, 2008
    The 0 channels shouldn't matter, it just means that I am parsing the ffmpeg output incorrectly. Streambaby doesn't actually use that information. If you don't mind posting the output of ffmpeg -i for that video file however, I might as well fix it.

    But I have no idea why you would be only getting 2 channels from MP4. The MP4 module shouldn't(?) be messing with that stuff.

    A couple of questions:
    1) Does the MP4 have more than one audio stream? I've never tested this, and am not sure what will currently happen.
    2) Does tivostream get the full surround sound with these files?
     
  18. Jan 25, 2009 #178 of 3415
    westside_guy

    westside_guy Annoyingly ephemeral

    464
    1
    Mar 13, 2005
    The soggy...
    Heh. I just found out my website is down right now. As soon as they resolve the problem, I'll upload it and PM you the info.

    I should note that I just installed 0.19a and may not be seeing a significant audio sync issue now. The green blocks are still there, though. 0.19a crashed on java 1.5 for me as soon as I tried to view an mp4 video; but it seems to be running fine with java 1.6.
     
  19. Jan 25, 2009 #179 of 3415
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    1) I believe it only has one audio stream (sorry, I just tracked down an mp4 to view, my rips are generally mkv's).
    2) I have never tried tivostream, so don't know. What I can say for sure is that I can get 6 channel audio from transcoded streams in streambaby.

    Here is the output of ffmpeg on the file:
    Code:
    Yoavs-iMac:Musicals yoav$ /Applications/pyTivoX.app/Contents/Resources/ffmpeg -i Mamma\ Mia\!.mp4 
    FFmpeg version SVN-r16724, Copyright (c) 2000-2009 Fabrice Bellard, et al.
      configuration: --arch=i386 --disable-vhook --disable-shared --enable-static --enable-pthreads --disable-mmx --enable-gpl --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-libx264 --enable-swscale --extra-cflags=-I/Users/yoav/src/lame/include -I/Users/yoav/src/faad2/include -I/Users/yoav/src/faac/include -I/Users/yoav/src/x264 --extra-ldflags=-L/Users/yoav/src/lame/libmp3lame/.libs -L/Users/yoav/src/faad2/libfaad/.libs -L/Users/yoav/src/faac/libfaac/.libs -L/Users/yoav/src/x264/
      libavutil     49.14. 0 / 49.14. 0
      libavcodec    52.11. 0 / 52.11. 0
      libavformat   52.25. 0 / 52.25. 0
      libavdevice   52. 1. 0 / 52. 1. 0
      libswscale     0. 6. 1 /  0. 6. 1
      built on Jan 22 2009 20:28:40, gcc: 4.0.1 (Apple Inc. build 5484)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Mamma Mia!.mp4':
      Duration: 01:48:38.10, start: 0.000000, bitrate: 3213 kb/s
        Stream #0.0(und): Video: h264, yuv420p, 1280x720, 23.98 tb(r)
        Stream #0.1(und): Audio: aac, 48000 Hz, 5.1, s16
    At least one output file must be specified
    
    I truncated the file to 40M and uploaded it here:
    http://yoav.org/files/test.mp4
    It's definitely a 5.1 channel ac-3 audio stream in the source, and yet
    when I stream to the tivo, I end up with a 2-channel stream (according to
    the amplifier). Other streams that are sent (mkv files that are converted
    by streambaby) work as 5.1 fine.

    note: can you tell me once you've downloaded the file so I can delete it? Thanks...
     
  20. Jan 25, 2009 #180 of 3415
    fyodor

    fyodor Member

    523
    0
    Sep 19, 2006
    I was thinking of something really basic like (a) having the description show up when you select "info" and possibly having the "title" field show up in some form when you browse.

    Here's a list of the metadata supported by the MP4 file format.

    http://www.hydrogenaudio.org/forums/lofiversion/index.php/t68441.html

    Thanks

     

Share This Page