 |
pyTivo Discussion Forum Answers and the development of pyTivo a TiVo transcoding server
|
|
| Author |
Message |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 6:03 am Post subject: H.264 |
|
|
TiVo has enabled some degree of H.264 support with the recent release of 9.4 and the YouTube HME app. It's about time. Now, the job is to get pyTivo plugged into this framework.
I've done a few minutes of legwork in this area with some help from wgw and wmcbrine, and while I haven't gotten it to work I've noticed some things.
I begun by adding the following lines to my pyTivo.conf file :
| Code: | format = mp4
video_codec = mpeg4 |
This allows me to browse a folder that contains H.264/VC-1 videos and select one for transfer. Once the transfer begins, I see a blue dotted item in my NPL. However, the recording is not playable. The duration remains as a 0:00 partial. Hitting "play" pops up the "please wait while more video is transferred" dialog box.
I also tried changing the MIME types from "video/x-tivo-mpeg" to "video/mp4" and "video/x-tivo-mp4", but that didn't work very well. Browsing a folder of H.264/VC-1 recordings showed the recordings as copy protected and/or incompatible, with the red circle w/ line through it. So, I had to back out these changes.
I'm using presumably clean H.264/VC-1 podcasts/trailers : a podcast from askaninja.com, and the 300 theatrical trailer in 720p.
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 3:08 pm Post subject: |
|
|
That sounds promising.
Could you post a debug log from the original attempt where it looked like it was going to transfer?
|
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 3:18 pm Post subject: |
|
|
I should also note that I'm using the ffmpeg build by rdian06 intended to help out on MKV playback. Those errors being spit out (Unsupported codec (id=86018) for input stream #0.1) are probably not a good thing...
DEBUG:pyTivo.hack83:new request ------------------------
DEBUG:pyTivo.hack83:TiVo request is:
{'Container': ['VideosH264/H264'], 'AnchorOffset': ['-1'], 'Filter': ['x-tivo-co
ntainer/tivo-videos,x-tivo-container/folder,video/x-tivo-mpeg,video/*'], 'Comman
d': ['QueryContainer'], 'SortOrder': ['!CaptureDate'], 'AnchorItem': ['/VideosH2
64/H264/300%20-%20Trailer.mp4'], 'ItemCount': ['1']}
DEBUG:pyTivo.hack83:queryAnchor:VideosH264/H264/300 - Trailer.mp4
leftAnchor:VideosH264/H264
rightAnchor: 300 - Trailer.mp4
DEBUG:pyTivo.hack83:our saved request is:
{'Filter': ['x-tivo-container/tivo-videos,x-tivo-container/folder,video/x-tivo-m
peg,video/*'], 'Container': ['VideosH264/H264'], 'ItemCount': ['8'], 'Command':
['QueryContainer'], 'SortOrder': ['!CaptureDate']}
DEBUG:pyTivo.hack83:requested a file
DEBUG:pyTivo.hack83:Tivo said: VideosH264/H264 || Hack said: VideosH264/H264
DEBUG:root:ffmpeg output=FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice
Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Must supply at least one output file
DEBUG:pyTivo.video.transcode:failed at aKbps
DEBUG:pyTivo.video.transcode:aFreq=22050; vFps=23.98; kbps=3948; mapAudio=[('0.1
', '(und)')]; vWidth=1280; vCodec=h264; Supported=True; millisecs=106200; aKbps=
None; par2=None; par1=None; dar2=None; mapVideo=0.0; vHeight=544; dar1=None; aCo
dec=mp4a / 0x6134706D
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos\H264\300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
192.168.1.90 - - [15/Jul/2008 21:39:42] "GET /TiVoConnect?Command=QueryContainer
&Container=VideosH264%2FH264&SortOrder=!CaptureDate&ItemCount=1&AnchorItem=%2FVi
deosH264%2FH264%2F300%2520-%2520Trailer.mp4&AnchorOffset=-1&Filter=x-tivo-contai
ner%2Ftivo-videos,x-tivo-container%2Ffolder,video%2Fx-tivo-mpeg,video%2F* HTTP/1
.1" 200 -
DEBUG:root:ffmpeg output=FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice
Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos/H264/300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Must supply at least one output file
DEBUG:pyTivo.video.transcode:failed at aKbps
DEBUG:pyTivo.video.transcode:aFreq=22050; vFps=23.98; kbps=3948; mapAudio=[('0.1
', '(und)')]; vWidth=1280; vCodec=h264; Supported=True; millisecs=106200; aKbps=
None; par2=None; par1=None; dar2=None; mapVideo=0.0; vHeight=544; dar1=None; aCo
dec=mp4a / 0x6134706D
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos/H264/300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos/H264/300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos/H264/300 - Trailer.mp4
192.168.1.90 - - [15/Jul/2008 21:39:42] "GET /TiVoConnect?Command=TVBusQuery&Con
tainer=VideosH264&File=%2FH264%2F300%20-%20Trailer.mp4 HTTP/1.1" 200 -
192.168.1.90 - - [15/Jul/2008 21:39:47] "GET /VideosH264/H264/300%20-%20Trailer.
mp4 HTTP/1.1" 200 -
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:F:\Videos\H264\300 - Trailer.mp4 is not tivo compat
ible
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos\H264\300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:transcoding to tivo model 648 using ffmpeg command:
DEBUG:root:C:\pytivo\ffmpeg-svn12599-eac3-2008-05-05\ffmpeg.exe -i F:\Videos\H26
4\300 - Trailer.mp4 -vcodec mpeg4 -b 8192k -maxrate 30000k -bufsize 1024k -comme
nt pyTivo.py -ab 384k -ar 48000 -acodec ac3 -copyts -f vob -
FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: mpeg4, yuv420p, 1280x544, q=2-31, 8192 kb/s, 23.98
tb(c)
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[mpeg4 @ 0080C860]removing common factors from framerate
Unsupported codec (id=86018) for input stream #0.1
192.168.1.90 - - [15/Jul/2008 21:39:50] "GET /TiVoConnect?Command=QueryContainer
&Container=%2F HTTP/1.0" 200 -
192.168.1.90 - - [15/Jul/2008 21:40:18] "GET /VideosH264/H264/300%20-%20Trailer.
mp4 HTTP/1.1" 200 -
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:F:\Videos\H264\300 - Trailer.mp4 is not tivo compat
ible
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos\H264\300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:transcoding to tivo model 648 using ffmpeg command:
DEBUG:root:C:\pytivo\ffmpeg-svn12599-eac3-2008-05-05\ffmpeg.exe -i F:\Videos\H26
4\300 - Trailer.mp4 -vcodec mpeg4 -b 8192k -maxrate 30000k -bufsize 1024k -comme
nt pyTivo.py -ab 384k -ar 48000 -acodec ac3 -copyts -f vob -
FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: mpeg4, yuv420p, 1280x544, q=2-31, 8192 kb/s, 23.98
tb(c)
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[mpeg4 @ 0080C860]removing common factors from framerate
Unsupported codec (id=86018) for input stream #0.1
192.168.1.90 - - [15/Jul/2008 21:40:24] "GET /TiVoConnect?Command=QueryContainer
&Container=%2F HTTP/1.0" 200 -
192.168.1.90 - - [15/Jul/2008 21:40:48] "GET /VideosH264/H264/300%20-%20Trailer.
mp4 HTTP/1.1" 200 -
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:F:\Videos\H264\300 - Trailer.mp4 is not tivo compat
ible
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos\H264\300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:transcoding to tivo model 648 using ffmpeg command:
DEBUG:root:C:\pytivo\ffmpeg-svn12599-eac3-2008-05-05\ffmpeg.exe -i F:\Videos\H26
4\300 - Trailer.mp4 -vcodec mpeg4 -b 8192k -maxrate 30000k -bufsize 1024k -comme
nt pyTivo.py -ab 384k -ar 48000 -acodec ac3 -copyts -f vob -
FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: mpeg4, yuv420p, 1280x544, q=2-31, 8192 kb/s, 23.98
tb(c)
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[mpeg4 @ 0080C860]removing common factors from framerate
Unsupported codec (id=86018) for input stream #0.1
192.168.1.90 - - [15/Jul/2008 21:41:18] "GET /VideosH264/H264/300%20-%20Trailer.
mp4 HTTP/1.1" 200 -
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:(False, 'TRANSCODE=YES, vCodec h264 not compatible.
'), F:\Videos\H264\300 - Trailer.mp4
DEBUG:pyTivo.video.transcode:F:\Videos\H264\300 - Trailer.mp4 is not tivo compat
ible
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:tsn: XXXXXXXXXXXXXXX
DEBUG:root:aspect169:True
DEBUG:root:optres:False
DEBUG:pyTivo.video.transcode:File=F:\Videos\H264\300 - Trailer.mp4 vCodec=h264 v
Width=1280 vHeight=544 vFps=23.98 millisecs=106200 ratio=235 rheight=17 rwidth=4
0 TIVO_HEIGHT=720TIVO_WIDTH=1280
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:CACHE HIT! F:\Videos\H264\300 - Trailer.mp4
DEBUG:root:transcoding to tivo model 648 using ffmpeg command:
DEBUG:root:C:\pytivo\ffmpeg-svn12599-eac3-2008-05-05\ffmpeg.exe -i F:\Videos\H26
4\300 - Trailer.mp4 -vcodec mpeg4 -b 8192k -maxrate 30000k -bufsize 1024k -comme
nt pyTivo.py -ab 384k -ar 48000 -acodec ac3 -copyts -f vob -
FFmpeg version UNKNOWN, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-pthrea
ds --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
libavutil version: 49.6.0
libavcodec version: 51.53.0
libavformat version: 52.12.0
libavdevice version: 52.0.0
built on May 5 2008 03:09:18, gcc: 4.2.1-sjlj (mingw32-2)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544, 23.98 tb(r)
Stream #0.1(und): Audio: mp4a / 0x6134706D, 22050 Hz, stereo
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: mpeg4, yuv420p, 1280x544, q=2-31, 8192 kb/s, 23.98
tb(c)
Stream #0.1(und): Audio: ac3, 48000 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[mpeg4 @ 0080C860]removing common factors from framerate
Unsupported codec (id=86018) for input stream #0.1
192.168.1.90 - - [15/Jul/2008 21:41:29] "GET /TiVoConnect?Command=QueryContainer
&Container=%2F HTTP/1.0" 200 -
192.168.1.90 - - [15/Jul/2008 21:41:50] "GET /TiVoConnect?Command=QueryContainer
&Container=%2F HTTP/1.0" 200 -
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 3:35 pm Post subject: |
|
|
| PaulS wrote: | I should also note that I'm using the ffmpeg build by rdian06 intended to help out on MKV playback. Those errors being spit out (Unsupported codec (id=86018) for input stream #0.1) are probably not a good thing... |
Ah, my ffmpeg build doesn't include the AAC libraries so it can't handle the audio stream transcode from AAC to ac3. Which I think will result in the transcode failing completely.
Try switching back to the original ffmpeg_mp2.exe included with pyTivo and see if the transfer works. Keeping my fingers crossed for you.
|
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 4:15 pm Post subject: |
|
|
No dice. At best, I'll get ffmpeg to try to start cranking through the recording, but just silently sit there. It looks like the TiVo isn't trying to pull the data across.
The original ffmpeg only includes support for H.264 decode, not encode. So, I've been trying various combinations of MPEG-4 formats and codecs with no luck.
|
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 4:34 pm Post subject: |
|
|
Ooooooh! Wait a minute!
format = h264
video_codec = libx264
This actually starts processing frames, which is further than I've gotten before. It stops at frame 11, and complains :
FFmpeg version SVN-r11870, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisyn
libavutil version: 49.6.0
libavcodec version: 51.50.0
libavformat version: 52.7.0
libavdevice version: 52.0.0
built on Feb 5 2008 23:46:38, gcc: 4.2.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\300 - Trailer.mp4':
Duration: 00:01:46.2, start: 0.000000, bitrate: 3948 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1280x544 [PAR 0:1 DAR 0:1], 23.98 tb(r)
Stream #0.1(und): Audio: mpeg4aac, 44100 Hz, stereo
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: libx264, yuv420p, 1280x544 [PAR 0:1 DAR 0:1], q=2-31, 8192 kb/s, 23.98 tb(c)
Stream #0.1(und): Audio: ac3, 44100 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[libx264 @ 00985C50]using cpu capabilities: MMX MMXEXT SSE 3DNow!
[libx264 @ 00985C50]VBV buffer size too small, using 3753 kbit
Press [q] to stop encoding
frame= 11 fps= 9 q=2.0 size= 0kB time=0.5 bitrate= 0.0kbits/s
|
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 4:42 pm Post subject: |
|
|
Specifying :
bufsize = 4096k
Gets rid of the VBV buffer size error, but the transfer still halts at frame 11.
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 4:56 pm Post subject: |
|
|
| PaulS wrote: | No dice. At best, I'll get ffmpeg to try to start cranking through the recording, but just silently sit there. It looks like the TiVo isn't trying to pull the data across.
The original ffmpeg only includes support for H.264 decode, not encode. So, I've been trying various combinations of MPEG-4 formats and codecs with no luck. |
Hrmm. Another problem it seems is that the vob container format isn't designed to hold h264/mpeg4 video.
For testing, I think we can use the ffmpeg_params configure option to override the normal transcode command (based on the configure page) and just copy h264 video from your source to an mp4 container with no audio for now.
In pyTivo.conf, try setting:
| Code: |
ffmpeg_params = -vcodec copy -an -comment pyTivo.py -f mp4 -
|
I briefly tested this copying h264 out of an mkv to an mp4 file using my ffmpeg build and it seems to halve the framerate, but at least it should display video in a compliant mp4 container.
|
|
| Back to top |
|
 |
rectalogic
Joined: 17 Jul 2008 Posts: 8
|
Posted: Thu Jul 17, 2008 5:21 pm Post subject: |
|
|
Try disabling transcoding completely and download an MPEG4/H.264 video from youtube and try serving that as-is (so it's a known-good playable MP4 video on tivo).
On youtube, pick a video and add fmt=18 to the querystring. This switches to streaming MPEG4/H.264 if that encode exists. You can download that video and serve it to tivo via pyTivo to see if pyTivo can actually stream H.264 content to tivo. If that works, then it's just a matter of getting the ffmpeg transcoding settings right for H.264.
e.g. for the skateboarding dog the H.264 player page is:
http://www.youtube.com/watch?v=CQzUsTFqtW0&fmt=18
To download the MP4 directly do:
wget -O skatedog.mp4 'http://www.youtube.com/get_video?video_id=CQzUsTFqtW0&t=OEgsToPDskKQL9DrX9SyylUtHsYW_6Ce&fmt=18'
I have attached a zip of the above video to save you the trouble. See if you can get tivo to play it using pyTivo.
| Description: |
| zip containing skatedog.mp4 from youtube |
|
 Download |
| Filename: |
skatedog.zip |
| Filesize: |
6.2 MB |
| Downloaded: |
20 Time(s) |
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 5:41 pm Post subject: |
|
|
| rectalogic wrote: | Try disabling transcoding completely and download an MPEG4/H.264 video from youtube and try serving that as-is (so it's a known-good playable MP4 video on tivo).
On youtube, pick a video and add fmt=18 to the querystring. This switches to streaming MPEG4/H.264 if that encode exists. You can download that video and serve it to tivo via pyTivo to see if pyTivo can actually stream H.264 content to tivo. If that works, then it's just a matter of getting the ffmpeg transcoding settings right for H.264.
|
Do you know of an easy way to disable transcoding in pyTivo? I thought the only way to do that was to mess with quite a bit of code. Overriding the ffmpeg command to copy the streams from one mp4 container to another is essentially the same thing without messing with code. I guess adding -acodec copy instead of -an to copy the audio stream to wouldn't hurt.
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 5:45 pm Post subject: |
|
|
| rdian06 wrote: |
For testing, I think we can use the ffmpeg_params configure option to override the normal transcode command (based on the configure page) and just copy h264 video from your source to an mp4 container with no audio for now.
In pyTivo.conf, try setting:
| Code: |
ffmpeg_params = -vcodec copy -an -comment pyTivo.py -f mp4 -
|
I briefly tested this copying h264 out of an mkv to an mp4 file using my ffmpeg build and it seems to halve the framerate, but at least it should display video in a compliant mp4 container. |
BTW, if you are using an mp4 source, you can do this to preserve the audio too. You're essentially copying the source mp4 to an identical mp4 without any transcoding:
| Code: |
ffmpeg_params = -vcodec copy -acodec copy -comment pyTivo.py -f mp4 -
|
The Tivo should now be able to handle stereo AAC because that's what YouTube uses.
|
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 5:53 pm Post subject: |
|
|
OK, now we're getting somewhere. I downloaded the skatedog video you provided and slapped it into my share.
Using my previous configuration it actually progressed further into the transcode/download before the ffmpeg process was killed.
format = h264
video_codec = libx264
bufsize = 4096k
FFmpeg version SVN-r11870, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avi
libavutil version: 49.6.0
libavcodec version: 51.50.0
libavformat version: 52.7.0
libavdevice version: 52.0.0
built on Feb 5 2008 23:46:38, gcc: 4.2.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\skatedog.mp4':
Duration: 00:01:28.3, start: 0.000000, bitrate: 599 kb/s
Stream #0.0(und): Audio: mpeg4aac, 44100 Hz, stereo
Stream #0.1(und): Video: h264, yuv420p, 480x320 [PAR 0:1 DAR 0:1], 29.97 tb(r)
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: libx264, yuv420p, 480x320 [PAR 0:1 DAR 0:1], q=2-31, 8192 kb/s, 29.97 tb(c)
Stream #0.1(und): Audio: ac3, 44100 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Stream #0.0 -> #0.1
[libx264 @ 00985C50]using cpu capabilities: MMX MMXEXT SSE 3DNow!
Press [q] to stop encoding
[libx264 @ 00985C50]OVERFLOW levelcode=4377ime=0.1 bitrate=5646.8kbits/s
[libx264 @ 00985C50]OVERFLOW levelcode=4377
[libx264 @ 00985C50]OVERFLOW levelcode=4377ime=0.7 bitrate=5752.1kbits/s
[libx264 @ 00985C50]OVERFLOW levelcode=4377
[libx264 @ 00985C50]OVERFLOW levelcode=4377ime=0.9 bitrate=5962.5kbits/s
[libx264 @ 00985C50]OVERFLOW levelcode=4377
[libx264 @ 00985C50]OVERFLOW levelcode=4377ime=1.5 bitrate=6169.9kbits/s
[libx264 @ 00985C50]OVERFLOW levelcode=4377
DEBUG:pyTivo.video.transcode:killing pid=216
On the other hand, using your supplied command line, and backing out my changes.....
[edit] nope. not working...
Last edited by PaulS on Thu Jul 17, 2008 6:01 pm; edited 1 time in total |
|
| Back to top |
|
 |
PaulS
Joined: 04 Jan 2008 Posts: 140
|
Posted: Thu Jul 17, 2008 6:00 pm Post subject: |
|
|
False alarm.... Your revised parm list is transcoding to mpeg-2, I think...
FFmpeg version SVN-r11870, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth
libavutil version: 49.6.0
libavcodec version: 51.50.0
libavformat version: 52.7.0
libavdevice version: 52.0.0
built on Feb 5 2008 23:46:38, gcc: 4.2.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:\Videos\H264\skatedog.mp4':
Duration: 00:01:28.3, start: 0.000000, bitrate: 599 kb/s
Stream #0.0(und): Audio: mpeg4aac, 44100 Hz, stereo
Stream #0.1(und): Video: h264, yuv420p, 480x320 [PAR 0:1 DAR 0:1], 29.97 tb(r)
Output #0, vob, to 'pipe:':
Stream #0.0(und): Video: mpeg2video, yuv420p, 480x320 [PAR 0:1 DAR 0:1], q=2-31, 8192 kb/s, 29.97 tb(c)
Stream #0.1(und): Audio: ac3, 44100 Hz, stereo, 384 kb/s
Stream mapping:
Stream #0.1 -> #0.0
|
|
| Back to top |
|
 |
rectalogic
Joined: 17 Jul 2008 Posts: 8
|
Posted: Thu Jul 17, 2008 6:22 pm Post subject: |
|
|
| rdian06 wrote: | Do you know of an easy way to disable transcoding in pyTivo? |
Just rename the file to end with .tivo - skatedog.tivo. This will short circuit the tivo_compatable check in plugins/video/transcode.py
Copying streams is not necessarily the same since the file will be remuxed.
Andrew
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 369
|
Posted: Thu Jul 17, 2008 6:29 pm Post subject: |
|
|
| rectalogic wrote: | | rdian06 wrote: | Do you know of an easy way to disable transcoding in pyTivo? |
Just rename the file to end with .tivo - skatedog.tivo. This will short circuit the tivo_compatable check in plugins/video/transcode.py
Copying streams is not necessarily the same since the file will be remuxed.
Andrew |
Interesting.
|
|
| Back to top |
|
 |
|
|
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
|
|