tivostream - video streaming server for Series 3 Tivos

Discussion in 'TiVo Home Media Features & TiVoToGo' started by moyekj, Aug 22, 2008.

  1. ninjaFred

    ninjaFred New Member

    9
    0
    Oct 24, 2008

    Advertisements

    i'm using pyTivo, but not galleon. i'll check into it. thanks for the response.
     
  2. jay0k

    jay0k New Member

    32
    0
    Nov 8, 2008
    I uninstalled VMWare Fusion as I use Parallels now and all is well. It properly detected the correct network interface and all is well. it works like a champ, good work!

    Thanks!
     
  3. jay0k

    jay0k New Member

    32
    0
    Nov 8, 2008
    Hehe, and as a service for OSX that would show up in the Preference pane :)
     
  4. menos

    menos New Member

    60
    0
    Nov 13, 2007
    Moore, OK
    The test file you provided streams just fine. I'll try one of the .mpg files here in a little while but I'll have to download it again from the tivo. All of the files I'm reencoding have been run through VRD quickstream fix, as part of the kmtgg job.
    Is there anyway to check the integrity of a .mp4? Tivostream seems to be dieing on the files, but pytivo doesn't seem to have a problem.

    If you've got somewhere I can upload 3gig I'll send you one of the files thats crapping out on me.
     
  5. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...

    Advertisements

    3 GB is a little too big to deal with. Since you know about where it is crapping out perhaps you can use VRD to edit out everything but shortly before and after the point it craps out and then send me the resulting mpeg2 clip? If resulting mpeg2 is below 1GB then I can work with that so please PM me and I can give you an upload location (ftp).
    EDIT: Of course it's possible that after editing the file as such and re-encoding to mpeg4 that it will work fine, but it's worth a shot.
     
  6. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    I installed & ran v0p9 over the weekend and my test mpg streamed & looked great from both my S3 Tivos. Then yesterday I tried it again and it doesn't work anymore:
    1. Tivostream appears as usual on the menu
    2. My mpg appears there as well
    3. When I select the mpg, I get the black screen & "Playing..." displayed
    4. But it never goes further, it's just hung

    To this point, the tivostream window has shown this:

    Code:
    C:\tivostream>java -cp tivostream_v0p9.jar com.hme.tivo.videostream.Main com.hme
    .tivo.videostream.videostream
    STARTING tivostream...
    LOG: added factory
    MDNS: http://192.168.1.108:7288/videostream/
    LOG: 192.168.1.109 icon.png HTTP GET - to factory /videostream/
    >> Reading config file: config.ini
    >>config: topdir=.
    >>config: extensions=.mpg .mpeg2 .mp2 .mp4 .mpeg4
    >>config: font=medium
    >>config: timeout_status_bar=5
    >>config: timeout_info=10
    >>config: skip_back=8
    >>config: skip_forwards=30
    >>config: slow_speed=0.125
    >> NOTE: No bookmark file found
    LOG: HME receiver connected
    LOG: unknown event opcode : 8
    Now, if I let the Tivo sit on this "Playing..." screen it eventually times-out (5mins feels right) and returns to LiveTV. If I'm stuck on the "Playing..." screen and I left-arrow then the Tivo displays "Can't Run -- An error occurred while running the application. The application closed during a read (0x50006)."

    Under both scenarios (timeout and user impatience) the tivostream window adds the following:

    Code:
    LOG: HME receiver disconnected
    LOG: Unexpected error: java.lang.NullPointerException
    LOG: 192.168.1.109 icon.png HTTP GET - to factory /videostream/
    
    My sense is that these latter msgs are not telling me anything i.e. they don't happen until the hung "Playing..." is aborted. Is there an extended logging mode I can invoke to try to learn more?

    I reinstalled tivostream and even reinstalled Java to no help. Can't imagine what might have happened as I say that very mpg played fine the other day--heck I watched most of it tho I was only really testing tivostream! :eek:

    p.s. Both my Tivos played this mpg before via tivostream (from the same computer). Both have the problem now.
     
  7. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...
    Laserfan, the console window should show something like the following when starting a stream:
    Code:
    LOG: 192.168.1.107 lost.mpg HTTP GET - to factory /videostream/
    url=file:/c:/home/dvd/testing/lost.mpg
    
    To get a lot of debugging information edit the run_win.bat script and add the following as 1st line:
    Code:
    set DEBUG=1
    
    How are you starting mpg playback? Select, right arrow, or play button? The play button will try and start from where you left off while select/right arrow will start from beginning, so they are different which is why I ask.
     
  8. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    I tried it both ways. Not getting the "URL" msg, must have some glitch in my network?

    Code:
    C:\tivostream_v0p9>set DEBUG=1
    
    C:\tivostream_v0p9>java -cp tivostream_v0p9.jar com.hme.tivo.videostream.Main co
    m.hme.tivo.videostream.videostream
    STARTING tivostream...
    LOG: added factory
    MDNS: http://192.168.1.108:7288/videostream/
    LOG: 192.168.1.109 icon.png HTTP GET - to factory /videostream/
    >> Reading config file: config.ini
    >>config: topdir=.
    >>config: extensions=.mpg .mpeg2 .mp2 .mp4 .mpeg4
    >>config: font=medium
    >>config: timeout_status_bar=5
    >>config: timeout_info=10
    >>config: skip_back=8
    >>config: skip_forwards=30
    >>config: slow_speed=0.125
    >> Reading bookmarks file: bookmarks
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=C:\t
    ivostream_v0p9
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2089,
    focusable,bounds=0,0,512x30] x=25 y=4 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=1
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=C:\tivost
    ream_v0p9
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=true v1=BView[#2089,focusable,bounds=0,0,512x30] v2=null
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=Top Level
    
    >>>Listener.java: com.hme.tivo.videostream.Listener.getLogger(line 425):
    LOG: HME receiver connected
    >>>Listener.java: com.hme.tivo.videostream.Listener.readEvents(line 315): app=vi
    deostream[#1,uri=null] in=com.tivo.hme.host.http.server.HttpConnection$InStream@
    15fea60
    >>>HostContext.java: com.hme.tivo.videostream.HostContext.getLogger(line 91):
    LOG: unknown event opcode : 8
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleKeyPress(line 70):
     code=6 rawcode=16778246
    >>>videostream.java: com.hme.tivo.videostream.videostream.handleAction(line 92):
     action=push
    >>>videostream.java: com.hme.tivo.videostream.videostream.makeFileName(line 87):
     name=C:\tivostream_v0p9
    >>>videostream.java: com.hme.tivo.videostream.videostream.lastEntryPush(line 197
    ): name=C:\tivostream_v0p9
    >>>InitialScreen.java: com.hme.tivo.videostream.InitialScreen.updateFileList(lin
    e 71): DIR=C:\tivostream_v0p9
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=DIR: C:\t
    ivostream_v0p9
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.clear(line 39):
    >>>ViewScreen.java: com.hme.tivo.videostream.ViewScreen.remove(line 491):
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=false v1=null v2=BView[#-1,focusable,bounds=0,0,512x30]
    >>>InitialScreen.java: com.hme.tivo.videostream.InitialScreen.getSortedByName(li
    ne 144): DIR=C:\tivostream_v0p9 files=[Ljava.lang.String;@911f71
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeEntryName(line 72): DIR=C:\t
    ivostream_v0p9 name=Gattaca.mp4
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeEntryName(line 72): DIR=C:\t
    ivostream_v0p9 name=India Arie - Purify Me.mpg
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeEntryName(line 72): DIR=C:\t
    ivostream_v0p9 name=The Fugitive -- This'll Kill You.mpg
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeEntryName(line 72): DIR=C:\t
    ivostream_v0p9 name=video1.mp4
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.createRow(line 18): pare
    nt=BView[#2118,focusable,bounds=0,0,512x30] index=0
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=Gatt
    aca.mp4
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2118,
    focusable,bounds=0,0,512x30] x=25 y=4 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=1
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=Gattaca.m
    p4
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.createRow(line 18): pare
    nt=BView[#2124,focusable,bounds=0,30,512x30] index=1
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=Indi
    a Arie - Purify Me.mpg
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2124,
    focusable,bounds=0,30,512x30] x=25 y=4 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=1
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=India Ari
    e - Purify Me.mpg
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.createRow(line 18): pare
    nt=BView[#2130,focusable,bounds=0,60,512x30] index=2
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=The
    Fugitive -- This'll Kill You.mpg
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2130,
    focusable,bounds=0,60,512x30] x=25 y=4 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=1
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=The Fugit
    ive -- This'll Kill You.mpg
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.createRow(line 18): pare
    nt=BView[#2136,focusable,bounds=0,90,512x30] index=3
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=vide
    o1.mp4
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2136,
    focusable,bounds=0,90,512x30] x=25 y=4 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=1
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=video1.mp
    4
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=true v1=BView[#2118,focusable,bounds=0,0,512x30] v2=null
    >>>VText.java: com.hme.tivo.videostream.VText.setVisible(line 46): visible=false
    
    >>>videostream.java: com.hme.tivo.videostream.videostream.handleApplicationError
    (line 208): code=4 message=view -1 not found
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleKeyPress(line 70):
     code=3 rawcode=16777475
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=false v1=BView[#2124,focusable,bounds=0,30,512x30] v2=BView[#2118,focusable,
    bounds=0,0,512x30]
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=true v1=BView[#2124,focusable,bounds=0,30,512x30] v2=BView[#2118,focusable,b
    ounds=0,0,512x30]
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleKeyPress(line 70):
     code=3 rawcode=16777475
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=false v1=BView[#2130,focusable,bounds=0,60,512x30] v2=BView[#2124,focusable,
    bounds=0,30,512x30]
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleFocus(line 62): fo
    cus=true v1=BView[#2130,focusable,bounds=0,60,512x30] v2=BView[#2124,focusable,b
    ounds=0,30,512x30]
    >>>ScreenList.java: com.hme.tivo.videostream.ScreenList.handleKeyPress(line 70):
     code=6 rawcode=16778246
    >>>videostream.java: com.hme.tivo.videostream.videostream.handleAction(line 92):
     action=push
    >>>videostream.java: com.hme.tivo.videostream.videostream.makeFileName(line 87):
     name=The Fugitive -- This'll Kill You.mpg
    >>>videostream.java: com.hme.tivo.videostream.videostream.lastEntryPush(line 197
    ): name=The Fugitive -- This'll Kill You.mpg
    >>>GLOBAL.java: com.hme.tivo.videostream.GLOBAL.makeFileName(line 65): name=The
    Fugitive -- This'll Kill You.mpg
    >>>HostContext.java: com.hme.tivo.videostream.HostContext.getBaseURI(line 153):
    
    >>>ViewScreen.java: com.hme.tivo.videostream.ViewScreen.startStream(line 52): UR
    I=http://192.168.1.108:7288/videostream/The Fugitive -- This'll Kill You.mpg fil
    eName=The Fugitive -- This'll Kill You.mpg
    >>>MetaData.java: com.hme.tivo.videostream.MetaData.<init>(line 17): fileName=C:
    \tivostream_v0p9\The Fugitive -- This'll Kill You.mpg
    >>>MetaData.java: com.hme.tivo.videostream.MetaData.parseMetaData(line 25): file
    =C:\tivostream_v0p9\The Fugitive -- This'll Kill You.mpg.txt
    >>>MetaData.java: com.hme.tivo.videostream.MetaData.exists(line 106):
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2112,
    bounds=0,0,640x480] x=32 y=24 h_multiplier=1 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=The Fugit
    ive -- This'll Kill You.mpg
    >>>VText.java: com.hme.tivo.videostream.VText.setVisible(line 46): visible=false
    
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2112,
    bounds=0,0,640x480] x=32 y=420 h_multiplier=1 type=
    >>>VText.java: com.hme.tivo.videostream.VText.setVisible(line 46): visible=false
    
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2112,
    bounds=0,0,640x480] x=32 y=320 h_multiplier=6 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=258
    >>>VText.java: com.hme.tivo.videostream.VText.setColor(line 61): object=java.awt
    .Color[r=255,g=0,b=0]
    >>>VText.java: com.hme.tivo.videostream.VText.setVisible(line 46): visible=false
    
    >>>VText.java: com.hme.tivo.videostream.VText.<init>(line 13): view=BView[#2111,
    bounds=0,0,640x480] x=32 y=240 h_multiplier=2 type=small
    >>>VText.java: com.hme.tivo.videostream.VText.setFlags(line 66): flags=258
    >>>VText.java: com.hme.tivo.videostream.VText.setValue(line 51): value=Starting
    The Fugitive -- This'll Kill You.mpg ...
    
    No firewalls anywhere in it. Will keep looking unless you have another idea!?
     
  9. chlorox

    chlorox New Member

    5
    0
    Feb 1, 2005
    an m4v file is an MP4 file with AC3 5.1.... (same exact thing but it's allowed to have AC3)
     
  10. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...
    Laserfan, from your logs it looks like tivostream is not reaching the point where it sends the stream to the Tivo(s) for some reason, but there's no Java exception being generated either so it doesn't appear to be crashing.
    Perhaps the file naming is causing an issue somewhere (due to a tivostream bug). Try renaming the file to a very simple name without special characters or spaces just to see if that gets any further...
     
  11. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    Changed the file to Fugitive.mpg and got rid of the others, some of which were attempts to mux .264 files but which failed miserably (thought maybe getting them out of there was prudent). Anyway, same thing.

    About Java, when tivostream worked for me I was running 1.5.0.11. Then it stopped working and I un-installed and re-installed to no effect. So I un-installed again and from the initial trouble post(s) above have been running:

    C:\>java -version
    java version "1.6.0_07"
    Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
    Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

    I should ask--is this build OK? Should I go back to 1.5.0.11 (which I think is the last of the 1.5 versions). I at least want to start-over troubleshooting this with the right version of Java that you'd recommend.

    I'm maniacal to get this working again, and then next to figure-out how to properly do 264s for my Tivos. Thanks for paying attention here! Appreciated!!! :)
     
  12. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...
    That version of Java matches exactly what I am running on Windows so should work fine. As I said your problem seems rather unique as the application is not crashing but it's not getting to the point where it sends the stream either so something is going wrong.
    Perhaps try out tivostream_v0p8 and see if you have same issue there? (There may be extra log commands showing in that version that may help pinpoint the problem further).
    EDIT: Another thing to try is reboot your Tivo(s) to see if that makes a difference (I doubt it but worth a shot).
     
  13. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    Kevin, I'd tried running tivostream on 2 other computers, turned-off Home Media on one of my Tivos, physically DISCONNECTED a Tivo from my network, messed with router settings, and disconnected other equipment.

    I had not tried rebooting a Tivo, but your idea made sense to me, as I recalled that my Popcorn Hour media player needed re-boot when one tried to play the wrong kind of file on it. I had certainly done that with a couple of my attempts at 264 playback.

    Well, rebooting worked! Holy bleep! I will sleep tonight, many thanks for that! :up:

    It's gonna make finding a muxer that makes tivostream-friendly 264s very difficult, but at least my hours of troubleshooting this problem are over. Jeez, a TiVo reboot, how simple can you get... :eek:

    Thanks again! :)
     
  14. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...
    I guess I should know better and always make a reboot my 1st suggestion. :) Anyway glad it's working now.
    As far as encoding H.264 if you use "kmttg" there are 2 encoding profiles called "tivostream_sd" and "tivostream_hd" which use ffmpeg to create files that will stream to Tivos (it automatically runs the encodings through qt-faststart after ffmpeg). If you don't want to install kmttg then you can use ffmpeg & qt-faststart directly to do it (I can post the exact ffmpeg commands necessary), but having a GUI makes things easier. For SD files it's best to leave them as mpeg2. H.264 format is handy for HD files as it cuts down the bandwidth needed to stream them and keep up with real time playback.
     
  15. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    In my own defense neither of my Tivos showed any hint of instability, and in 8+ years of owning Tivo I've had to reboot only a couple of times so I just never think about it!

    Re: encoding 264 for Tivo, as I indicated I already have a Popcorn Hour that plays everything I throw at it, but it sure would be nice, for the room I have (only) an HDTV and TivoHD in (not the PCH), if I could re-mux & play Blu-ray discs, both comm'l and homebrew. In particular I like to re-encode HDTV to BD because it's the most efficient way to back-up such programs in full HD glory, and cost-effective too (DVD-5/9).

    I need either to figure out how to demux & remux .m2ts files to mp4, or I suppose the alternative might be to start by re-encoding for tivostream mp4, then trying to convert those to BD-compliant (without re-encoding which takes days for me). But I don't know anything about mp4 containers.

    P.S. Altho I'm not going to use it this way, I discovered tonight that tivostream works on my 450MHz P3 from, what, 1998? Streaming SD that is. Still, pretty amazing stuff.
     
  16. menos

    menos New Member

    60
    0
    Nov 13, 2007
    Moore, OK
    Initial results are that the .mpg streams fine though way, way slower :(. I've tried cutting a chunk of the video out of the .mp4 and the .mpg +-3 minutes around the failure timecode, but the shorter samples stream fine.

    Both of the files I've worked today have had the problem. One died after 21:16 and the other died at 20:50. Coincidence?


    Like the last attempt this is the entry in the log
    Code:
    21:17:49,234  INFO [Acceptor] AppHost - 192.168.1.50 I/O Exception handling  HTTP GET Terminator The Sarah Connor Chronicles-(Nov-17-2008)-Complications.mp4: Connection reset by peer: socket write error
    
    I guess it's funny but that is the same error you get if you just hit the left arrow and leave the stream. It's like the tivo is killing the stream for some reason.
     
  17. menos

    menos New Member

    60
    0
    Nov 13, 2007
    Moore, OK
    The plot thickens. Both of the problem children videos have the exact same problem and die in the exact same place when using wcmbrine's hme/vlc streamer. I guess I need some way of verifying the .mp4 file doesn't have any errors.

    They play fine in vlc, though quicktime errors when I try and play them through it (should they play through quicktime?).
     
  18. moyekj

    moyekj Well-Known Member

    12,324
    958
    Jan 23, 2006
    Mission...
    That's good information that the hme/vlc streamer also fails which points the finger at some .mp4 incompatibility for Tivo. Which encoding profile did you use? If you used tivostream_hd try using tivostream_sd instead to see if that works.
     
  19. Laserfan

    Laserfan Member

    440
    4
    Apr 25, 2000
    USA
    I've made a 1080p .mp4 that plays beautifully (a little over 5Mbps) using MP4Muxer which is a GUI front-end to MP4Creator. It now includes AC3 support, but my first effort results in no sound out of Tivo. Maybe it doesn't like the 640Kbps audio track bitrate--I will try 448 instead to check.

    EDIT: Turns out 640Kbps AC3 is OK; I think I just de-selected the "Interleaving" checkbox in MP4Muxer. And the total bitrate is 6600Kbps--I will try to find the upper range of 1080p bitrate the TiVo will handle. This is very exciting stuff!
     
  20. westside_guy

    westside_guy Annoyingly ephemeral

    468
    2
    Mar 13, 2005
    The soggy...
    I'm having a small problem with tivostream and certain mp4 files. I've got a few H.264 / AAC mp4 files that are widescreen 640x360 (they're TV shows we purchased from iTunes maybe a year ago, but recently ran through Requiem so we could play them on the TV rather than our computer). If I use tivostream to stream and watch them (to a Tivo HD feeding a 16:9 Sony Bravia TV), they are displayed as if they have a 4:3 aspect ratio rather than 16:9 - but if I transfer them to the Tivo using pytivo instead, they display correctly.

    I don't have very many digital videos to use for comparison; but this aspect ratio problem seems to only effect these particular shows - other files appear to display using the correct aspect ratio. However I don't have any other iTunes-purchased television shows to use for comparison - I don't have any other videos that are 640x360 actually.


    Any ideas how I can rectify this? Thank you!
     

Share This Page

spam firewall

Advertisements