pyTivo Discussion Forum Forum Index pyTivo Discussion Forum
Answers and the development of pyTivo a TiVo transcoding server
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Transfer or Stream?

 
Post new topic   Reply to topic    pyTivo Discussion Forum Forum Index -> Support
 View previous topic :: View next topic  
Author Message
Marconi



Joined: 11 May 2009
Posts: 50

PostPosted: Thu Dec 20, 2012 2:47 am    Post subject: Transfer or Stream? Reply with quote

When transferring recordings back to TiVo using pyTiVo (McBrine fork), it works fine with recordings from digital channels and with recordings from analog channels, providing the recording is Basic quality. If I record at Best quality, transfer the recordings to my Mac with iTiVo and then transfer them back, they do not transfer, they stream (I guess).

That is, they can be played but not FF'd or rewound. The recording seems not to be on the TiVo box, but can be played only as long as pyTiVo feeds it to the DVR. The green bar on the bottom of the screen never advances beyond the playback point. So, I assume it is streaming and not transferring.

How do I get Best quality recordings to transfer back?

FWIW, I get the recordings via iTiVo using no transcoding. The recordings, when transferred back thus require no transcoding. TRANSCODE=NO.

But anything better than Basic quality does not transfer. It can only be streamed as I watch. How do I fix this?

My pytivo.con file has nothing in the [_tivo_HD] and [_tivo_SD] sections. Here it is:

[Server]
tivo_username = secret
tivo_password = secret
tivo_mak = secret
#ffmpeg = /opt/local/bin/ffmpeg
ffmpeg = /Applications/TiVoStuff/pyTiVo/ffmpeg
ffmpeg_pram = -threads 4
tivodecode = /opt/local/bin/tivodecode
tdcat = /opt/local/bin/tdcat
beacon = 10.0.1.255
debug = False
guid = MacProMick
port = 9032

[In Progress]
force_alpha = False
type = video
path = /Volumes/Maggie/TiVo Archive In Progress

[TiVo Archive]
force_alpha = False
type = video
path = /Volumes/Lisa/TiVo Archive

[Complete]
force_alpha = False
type = video
path = /Volumes/TiVoVault/Complete Series

[Movies]
force_alpha = True
type = video
path = /Volumes/TiVoVault/MovieVault

[CUT]
force_alpha = True
type = video
path = /volumes/TiVo Scratch/-CUT

[_tivo_HD]

[_tivo_SD]
Back to top
View user's profile Send private message
wmcbrine



Joined: 04 Jan 2008
Posts: 2627
Location: Maryland

PostPosted: Thu Dec 20, 2012 5:08 am    Post subject: Reply with quote

Weird. But no, this isn't streaming. pyTivo doesn't stream.

Trick-play being disabled is something I see on files with MPEG-1 style muxing (like a VCD). The recording disappearing from the NPL, an unrelated problem, is something I see when pyTivo underestimates the final size of a transcoded video. Both of these are rare; neither should be happening with a TiVo-sourced recording. I dunno. But next time, check your NPL while the transfer is in progress; you should see the recording there, until it runs over the estimated size.

Quote:
The recordings, when transferred back thus require no transcoding.

That sounds like an assumption rather than an observation? I can think of circumstances in which pyTivo would transcode a video that should be compatible. Although how that produces what you're seeing is another question.

_________________
My pyTivo fork . My page
Back to top
View user's profile Send private message Visit poster's website
Marconi



Joined: 11 May 2009
Posts: 50

PostPosted: Thu Dec 20, 2012 6:49 am    Post subject: Reply with quote

wmcbrine wrote:
Weird. But no, this isn't streaming. pyTivo doesn't stream.

Trick-play being disabled is something I see on files with MPEG-1 style muxing (like a VCD). The recording disappearing from the NPL, an unrelated problem, is something I see when pyTivo underestimates the final size of a transcoded video. Both of these are rare; neither should be happening with a TiVo-sourced recording. I dunno. But next time, check your NPL while the transfer is in progress; you should see the recording there, until it runs over the estimated size.
That's not the case here. The recording stays listed in the NPL while the "transfer" is in progress. But no transferring takes place unless I'm playing the recording. If it's paused, no progress is made on the transfer.

Quote:
Quote:
The recordings, when transferred back thus require no transcoding.

That sounds like an assumption rather than an observation?
Nope, it's the real deal. The log (with debugging on) says "TRANSCODE=NO".

In fact, in testing just now, when I looked at the info in NPL and hit the Info (to the right) button, part of the metadata looks like it's straight from the pytivo log.

After Title: it has:

Hosts: TRANSCODE=NO, all compatible, SOURCE INFO:, Width=720,vHeight=480,vFPS=29.97... and much more. It ends up in the NPL info. Strange.

Note: in this particular instance, there is no metadata file for the recording. I'll have to try again with the ".mpg.txt" file.

Another anomaly: It shows 29.97 FPS but the original recording is 59.94 or some such.
Back to top
View user's profile Send private message
wmcbrine



Joined: 04 Jan 2008
Posts: 2627
Location: Maryland

PostPosted: Thu Dec 20, 2012 10:43 am    Post subject: Reply with quote

Marconi wrote:
The log (with debugging on) says "TRANSCODE=NO".

Oh good, you found your log. Smile Please post it.

Quote:
Hosts: TRANSCODE=NO, all compatible, SOURCE INFO:, Width=720,vHeight=480,vFPS=29.97... and much more. It ends up in the NPL info. Strange.

Not strange, that's normal debugging info.

Quote:
Another anomaly: It shows 29.97 FPS but the original recording is 59.94 or some such.

Not an anomaly. Usually that's frame rate (29.97) vs. field rate (59.94). Normal for interlaced video. Both rates appear, depending on the context.

_________________
My pyTivo fork . My page
Back to top
View user's profile Send private message Visit poster's website
Marconi



Joined: 11 May 2009
Posts: 50

PostPosted: Thu Dec 20, 2012 3:13 pm    Post subject: Reply with quote

wmcbrine wrote:
Marconi wrote:
The log (with debugging on) says "TRANSCODE=NO".

Oh good, you found your log. Smile Please post it..
Code:
INFO:pyTivo:Last modified: Mon Dec 17 01:58:08 2012
INFO:pyTivo:Python: 2.6.1
INFO:pyTivo:System: Darwin-10.8.0-i386-64bit
INFO:pyTivo.beacon:Announcing shares...
INFO:pyTivo.beacon:Registering: CUT
INFO:pyTivo.beacon:Registering: Complete
INFO:pyTivo.beacon:Registering: In Progress
INFO:pyTivo.beacon:Registering: Movies
INFO:pyTivo.beacon:Registering: TiVo Archive
INFO:pyTivo.beacon:Scanning for TiVos...
INFO:pyTivo.beacon:HiDef-1
INFO:pyTivo.beacon:HiDef-2
INFO:pyTivo:pyTivo is ready.
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.182 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.187 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.188 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.183 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.184 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.4 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.189 [20/Dec/2012 00:42:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:11] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:11] "GET /TiVoConnect?Command=QueryContainer&Container=TiVo%20Archive&SortOrder=!CaptureDate&ItemCount=8&Filter=x-tivo-container%2Ftivo-videos,x-tivo-container%2Ffolder,video%2Fx-tivo-mpeg,video%2F* HTTP/1.1" 200 -
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:14] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
DEBUG:pyTivo.video.transcode:starting ffmpeg, will wait 10 seconds for it to complete
DEBUG:pyTivo.video.transcode:ffmpeg output=ffmpeg version 0.8.10-pytivo, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jan 25 2012 17:13:22 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
  configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libx264 --mandir=/opt/local/share/man --cc=/opt/local/bin/gcc-apple-4.2 --arch=x86_64 --enable-yasm --disable-shared --enable-static --enable-pthreads --enable-runtime-cpudetect --enable-hardcoded-tables
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  8. 0 / 53.  8. 0
  libavformat  53.  5. 0 / 53.  5. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mpeg, from '/Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg':
  Duration: 00:55:12.74, start: 0.300100, bitrate: 8033 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 11594 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
At least one output file must be specified

DEBUG:pyTivo.video.transcode:aFreq=48000; aCh=2; container=mpeg; kbps=8033; mapAudio=[('0.1', '[0x1c0] mp2, 48000 Hz, stereo, s16, 192 kb/s')]; vHeight=480; vCodec=mpeg2video; Supported=True; aKbps=192; par=None; millisecs=3312740; vFps=29.97; par2=0.888888888889; par1=8:9; mapVideo=0.0; vWidth=720; dar1=4:3; rawmeta={}; aCodec=mp2
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:14] "GET /TiVoConnect?Command=QueryContainer&Container=TiVo%20Archive&SortOrder=!CaptureDate&ItemCount=1&AnchorItem=%2FTiVo%2520Archive%2FMagical%2520Mystery%2520Tour_cut.mpg&AnchorOffset=-1&Filter=x-tivo-container%2Ftivo-videos,x-tivo-container%2Ffolder,video%2Fx-tivo-mpeg,video%2F* HTTP/1.1" 200 -
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:14] "GET /TiVoConnect?Command=TVBusQuery&Container=TiVo%20Archive&File=%2FMagical%20Mystery%20Tour_cut.mpg HTTP/1.1" 200 -
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:18] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:18] "GET /TiVoConnect?Command=QueryItem&Url=http%3A%2F%2Fa%2Fb%3FContainer%3D%2FNowPlaying%26id%3D%2FTiVo%2520Archive%2FMagical%2520Mystery%2520Tour_cut.mpg HTTP/1.1" 404 -
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:24] "GET /TiVo%20Archive/Magical%20Mystery%20Tour_cut.mpg?Format=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
INFO:pyTivo.video.video:[20/Dec/2012 00:43:24] Start sending "/Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg" to HiDef-1
DEBUG:pyTivo.video.video:"/Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg" is tivo compatible
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:29] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:CACHE HIT! /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
DEBUG:pyTivo.video.transcode:TRANSCODE=NO, all compatible, /Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg
INFO:pyTivo:10.0.1.181 [20/Dec/2012 00:43:29] "GET /TiVoConnect?Command=QueryContainer&Container=TiVo%20Archive&SortOrder=!CaptureDate&ItemCount=8&AnchorItem=%2FTiVo%2520Archive%2FMagical%2520Mystery%2520Tour_cut.mpg&AnchorOffset=-1&Filter=x-tivo-container%2Ftivo-videos,x-tivo-container%2Ffolder,video%2Fx-tivo-mpeg,video%2F* HTTP/1.1" 200 -
INFO:pyTivo.video.video:[20/Dec/2012 01:28:48] Done sending "/Volumes/Lisa/TiVo Archive/Magical Mystery Tour_cut.mpg" to HiDef-1, 3326765056 bytes, 9.32 Mb/s
Quote:


Quote:
Hosts: TRANSCODE=NO, all compatible, SOURCE INFO:, Width=720,vHeight=480,vFPS=29.97... and much more. It ends up in the NPL info. Strange.

Not strange, that's normal debugging info.
So, in debug mode, debugging info is sent to the TiVo to appear in NPL? I did not know that.

You will note that the file name ends in "_cut" as the start of the file has been trimmed off with comcut. I'm thinking that this is not a pytivo issue at all but that the cutting process damages the container.

Even though the recording did not *appear* to be transferring, it was. When the blue light went out on my THD, the NPL showed a duration of 0:00 (partial) but looking at the More Info data showed it was 3+ GB. I was able to play it but while doing so, it always showed the playback point as 0:00 along the green time-line. And, as noted, I could neither FF nor rewind the playing.

If I exit the playback and restart, instead of resuming where I'd left off, it starts at the very beginning again.

Okay, it's confirmed. I just transferred back the uncut video and it transfers normally; the green timeline fills in as it transfers and I can exit/resume normally.

So the problem is definitely with the comcut process. It must somehow damage the container. This has never been a problem with Basic quality recordings. I routinely trim them with no ill effects. But higher quality recordings, apparently, do not survive the cutting as well.

Are there tools that will let me inspect/edit/repair the container? Can anyone recommend something that works on Mac?

Note: I can always transcode to a different video format or quality to make transfers work but I'm quite hard of hearing and transcoding deletes the Closed Captions on which I so much depend. So, if there's a way I can fiddle with the container properties to make transfers of Best quality recordings work normally, that is preferable to transcoding.

I think I'll peek at the cut versus versions in a hex editor to see what's different but a tool designed for editing the container data would be better.
Back to top
View user's profile Send private message
wmcbrine



Joined: 04 Jan 2008
Posts: 2627
Location: Maryland

PostPosted: Thu Dec 20, 2012 6:26 pm    Post subject: Reply with quote

There's been a lot of discussion of comcut-related problems on the kmttg thread on TCF. There's a feature they call "quickfix" that's supposed to patch up problem mpeg files. I don't know a lot about it. moyekj seems to favor VideoReDo (Windows payware) for this purpose, but apparently it can also be done with an open source alternative, whose name escapes me at the moment.

Or, you could try dealing with this on the pyTivo end, by forcing it to remux the file. Add a line like so to the metadata:

Override_container: foo

That would be my approach. Or just use ffmpeg to remux it.

_________________
My pyTivo fork . My page
Back to top
View user's profile Send private message Visit poster's website
Marconi



Joined: 11 May 2009
Posts: 50

PostPosted: Thu Dec 20, 2012 6:35 pm    Post subject: Reply with quote

wmcbrine wrote:
There's been a lot of discussion of comcut-related problems on the kmttg thread on TCF. There's a feature they call "quickfix" that's supposed to patch up problem mpeg files. I don't know a lot about it. moyekj seems to favor VideoReDo (Windows payware) for this purpose, but apparently it can also be done with an open source alternative, whose name escapes me at the moment.

Or, you could try dealing with this on the pyTivo end, by forcing it to remux the file. Add a line like so to the metadata:

Override_container: foo

That would be my approach. Or just use ffmpeg to remux it.
That would almost certainly lose the Closed Captions, wouldn't it?

What replaces the "foo" datum"? Or is "foo" sufficient to cause the remux?
Back to top
View user's profile Send private message
philhu



Joined: 04 Jan 2008
Posts: 818
Location: Boston, MA

PostPosted: Thu Dec 20, 2012 6:44 pm    Post subject: Reply with quote

wmcbrine wrote:
There's been a lot of discussion of comcut-related problems on the kmttg thread on TCF. There's a feature they call "quickfix" that's supposed to patch up problem mpeg files. I don't know a lot about it. moyekj seems to favor VideoReDo (Windows payware) for this purpose, but apparently it can also be done with an open source alternative, whose name escapes me at the moment.

Or, you could try dealing with this on the pyTivo end, by forcing it to remux the file. Add a line like so to the metadata:

Override_container: foo

That would be my approach. Or just use ffmpeg to remux it.


VideoRedo, a pay program DOES work almost perfectly with comcuts, tivodecode-like cvts, and quickfix (a process that fixes up audio/video streams that are missing pieces, etc, making the file clean). I bought it 2 years ago and would never go back. I have v4, which even works on h.264 video.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    pyTivo Discussion Forum Forum Index -> Support All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
Site is in NO WAY affiliated with TiVo Inc

Powered by phpBB © 2001, 2005 phpBB Group
phpBB SEO

Get pytivo at SourceForge.net. Fast, secure and Free Open Source software downloads
[ Time: 0.0844s ][ Queries: 13 (0.0093s) ][ GZIP on - Debug on ]