 |
pyTivo Discussion Forum Answers and the development of pyTivo a TiVo transcoding server
|
|
| Author |
Message |
Iluvatar
Joined: 29 Feb 2008 Posts: 335
|
Posted: Sun Nov 09, 2008 9:19 pm Post subject: |
|
|
| rdian06 wrote: | I think I know what you're talking about.
Was it something like:
| Code: |
[NULL @ 016361A0]error, non monotone timestamps 3632 >= 2412
av_interleaved_write_frame(): Error while opening file
|
I've been getting that error sometimes when I try to convert mkv's to mp4's.
It appears to happen because of the -copyts flag. Apparently the timestamps in the source have discontinuities that ffmpeg is detecting and erroring out on. Encoding to AC3 and libfaac both show the error so I think it's independent of the sound stream format.
None of the patches I applied to the trunk source have anything to do with that code so it must stem from one of the ffmpeg developer changes. I'll go through the ffmpeg trunk change history this weekend and see if I can pin point the change that introduced the problem. |
I am still seeing this on many of the mp4/h264 videos that I have been downloading even with your updated build. Have you had any progress in figuring out if this can be dealt with/fixed?
I used a newer build from the Tripp's FFMPEG site you referenced in the first post and was able to get about 15 minutes further into the video than with your build before it died. Maybe something changed or was worked on in the FFMPEG source to modify the behavior.
Also I am uncertain if you have seen this behavior before but I am seeing on your build with a particular mp4 file that when I try to transcode it FFMPEG will gradually spawn multiple processes every 30 seconds or so and lockup my computer in the process. I am unable to obtain an error before the command window starts scrolling really fast. There are no errors in Debug log just lots of transcode request commands (that spawn all the extra ffmpeg processes).
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Mon Nov 10, 2008 4:08 am Post subject: |
|
|
Try the build from this post:
http://pytivo.krkeegan.com/post3687.html#3687
I disabled the monotone check completely in that build so that wgw could test with his problem sources and after reading some developer comments that the test they use is incorrect (i.e. presentation timestamps are allowed to be out of order within a block, it's the display timestamps that aren't and the check is not taking that into account.)
As for the spawning multiple ffmpeg's and locking up the computer, I've never had that happen.
Hoping to get some time to put together new builds and finish up the x86 Mac ones this week.
|
|
| Back to top |
|
 |
Iluvatar
Joined: 29 Feb 2008 Posts: 335
|
Posted: Mon Nov 10, 2008 11:42 am Post subject: |
|
|
| That would be the build I have used and am still getting the monotone errors on a few h264 mp4 vids. Although it happens much more rarely now though, as other videos such as mkv's that produced the error are no longer doing it at all. The only thing I can do right now is download a different version of the same video. Thanks for all your efforts in these builds. It is much appreciated.
|
|
| Back to top |
|
 |
ercdvs
Joined: 11 Nov 2008 Posts: 8
|
Posted: Tue Nov 11, 2008 3:15 pm Post subject: |
|
|
Out of curiosity, since i always build my own ffmpeg.. what is the fix for the channel mapping switch?
Its been driving me nuts with my own manual encoding, but I haven't done any extensive testing on pyTivo transfers to see if its still present. Its almost caused me to abandon ffmpeg for mencoder to remap channels during encoding.
|
|
| Back to top |
|
 |
stevetony
Joined: 06 Jun 2008 Posts: 16
|
Posted: Mon Dec 22, 2008 7:17 pm Post subject: What do I do with this executable? |
|
|
I'm on Windows, and the zip contains an executable, ffmpeg.exe. However, the C:\Program Files\pyTivo\plugins\video directory has ffmpeg_mp2.exe in it and no ffmpeg.exe. Does it go somewhere else? Does one replace the other, do I just add the new one to the directory? I'm not sure what the procedure is here.
Any help appreciated, thanks!
|
|
| Back to top |
|
 |
wmcbrine

Joined: 04 Jan 2008 Posts: 2009 Location: Maryland
|
Posted: Tue Dec 23, 2008 6:36 am Post subject: |
|
|
The difference in names is of no import. They're both ffmpeg. Just make sure your pyTivo.conf points to the one you want to use.
I believe the "_mp2" was originally there to indicate that it supported MPEG-I Layer 2 audio, which I guess wasn't (isn't?) standard in ffmpeg builds at one time. (?)
_________________ My pyTivo fork . My page |
|
| Back to top |
|
 |
lordbah
Joined: 22 Feb 2009 Posts: 1
|
Posted: Mon Feb 23, 2009 2:53 am Post subject: |
|
|
| Iluvatar wrote: |
Also I am uncertain if you have seen this behavior before but I am seeing on your build with a particular mp4 file that when I try to transcode it FFMPEG will gradually spawn multiple processes every 30 seconds or so and lockup my computer in the process. I am unable to obtain an error before the command window starts scrolling really fast. There are no errors in Debug log just lots of transcode request commands (that spawn all the extra ffmpeg processes). |
I see this from time to time. Multiple ffmpeg processes are spawned, all trying to transcode the same .mp4 file with the same parameters. It consumes all memory on the system and pretty much locks it up.
This is on Ubuntu 8.04. I'd say what version of pyTivo I'm running, but ... I can't seem to figure out how to determine that ...
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Thu Feb 26, 2009 5:26 am Post subject: |
|
|
| Thats a process control issue in the pyTivo code I think. When ffmpeg can't handle the video, pyTivo doesn't detect it correctly and keeps trying to restart it without properly killing the previous instance.
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Thu Feb 26, 2009 5:29 am Post subject: |
|
|
Trying to build a new ffmpeg using the latest SVN is proving a daunting task. The latest SVNs what a MinGW runtime of 3.15 or higher and Win API 3.12 or higher, meaning I have to upgrade my whole build environment plus recompile a bunch of libraries rather than just using Gianluigi Tiesi pre-built stuff.
At least I'll learn a bunch of stuff in the process...
|
|
| Back to top |
|
 |
KevinSartori
Joined: 08 Feb 2009 Posts: 27
|
Posted: Fri Mar 13, 2009 2:31 pm Post subject: |
|
|
| rdian06, will we be seeing a new build from you based on ffmpeg 0.5? I'm curious, do you still have to implement the 5.1 audio fix or was that fixed on their end?
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Fri Mar 13, 2009 2:55 pm Post subject: |
|
|
I'm not sure. I haven't had time to try it.
Also, my wife is rearranging our house so my 5.1 setup is currently in storage so testing is going to take me a while.
Sorry. I'll get to it eventually, but there isn't anything really pressing at the moment since the 96 build from a few posts up seems to work decently.
|
|
| Back to top |
|
 |
elsteve
Joined: 28 Mar 2009 Posts: 3
|
Posted: Sat Mar 28, 2009 8:27 am Post subject: |
|
|
I there a 96 build for linux (Ubuntu8.1) floating around somewhere? If not, I'd be happy to compile my own if you could point me towards sources...
Thanks!
|
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Thu Jun 25, 2009 5:19 pm Post subject: |
|
|
Archived - Windows
* ffmpeg-SVN-r18820-rdian06-0.97-win32-x86_32.zip (Download below.)
- Compiled 2009-05-15 00:18:12
- Based on ffmpeg trunk
- Drop libvorbis in favor of ffmpeg native Vorbis encoder
- Drop libfaad in favor of ffmpeg native AAC decoder
- Includes my libfaad.c patch (see http://pytivo.krkeegan.com/post6913.html#6913) for 5.1 channel mapping fix when transcoding AAC to AC3
- MKV timestamp improvements that enable smooth playback of certain encodes that resulted in choppy playback in previous versions
- Timestamp precision improvements that seem to fix the non-monotone timestamp fatal error that caused premature end of transfer or no transfer at all for some Xvid encodes
| Code: |
FFmpeg version SVN-r18820-rdian06-0.97-win32-x86_32, Copyright (c) 2000-2009 Fab
rice Bellard, et al.
configuration: --enable-memalign-hack --disable-debug --enable-hardcoded-tables --enable-runtime-cpudetect --enable-static --disable-shared --disable-ffserver --disable-ffplay --enable-gpl --enable-pthreads --enable-libmp3lame --enable-libtheora --enable-libspeex --enable-libgsm --enable-libx264 --enable-libschroedinger --enable-avisynth --enable-postproc --enable-avfilter --enable-avfilter-lavf
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.29. 0 / 52.29. 0
libavformat 52.32. 0 / 52.32. 0
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 0. 5. 0 / 0. 5. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on May 15 2009 00:18:12, gcc: 4.4.0
|
* ffmpeg-SVN-15216-rdian06-0.95-x86_32.zip (Download below.)
- Compiled 2008-09-11 17:47:55
- Includes changes for pyTivo Push to properly identify ac3 audio inside an mp4 container
- Based on "Tripp's Unofficial FFmpeg Win32 Build" SVN Revision 15216. See http://tripp.arrozcru.com/.
- ogm remux, static pthreads (Tripp)
- uses ffmpeg native AC3 (Dolby Digital) decoder insted of liba52 for AC3 decoding
- AC3 decoder and encoder modified to use same channel ordering as DTS (dca) and AAC 5.1 (libfaad2)
- Includes EAC3 (Dolby Digital Plus) decoder (freshly added to ffmpeg trunk, woohoo!)
- Includes MLP (TrueHD) decoder (freshly added to ffmpeg trunk, woohoo!)
- Can transcode some EVO files taken from HD DVD/Bluray (haven't tested m2ts or AVCHD content yet)
- Still uses libfaad decoder even though initial ffmpeg native AAC decoder was recently added to trunk (native decoder doesn't support all the profiles yet, but it's being worked on)
- If you have a HD camcorder, I need some sample AVCHD files to test with (think home high def movies transferred to your Tivo from pyTivo, you know you want to watch those movies of your kids growing up and ahem... other stuff)
- Added fix for "brain fart cropping" message bug from a later ffmpeg SVN.
- h264 decoder has been cleaned up and some minor optimizations added (or at least that's how I interpret the ffmpeg-devel mailing list threads
| Code: |
FFmpeg version SVN-r15216-rdian06-0.95-win32-x86_32, Copyright (c) 2000-2008 Fab
rice Bellard, et al.
configuration: --enable-memalign-hack --enable-postproc --enable-swscale --enable-gpl --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libxvid --disable-ffserver --disable-vhook --enable-avisynth --enable-pthreads
libavutil 49.10. 0 / 49.10. 0
libavcodec 51.71. 0 / 51.71. 0
libavformat 52.22. 0 / 52.22. 0
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 6. 1 / 0. 6. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Sep 11 2008 17:47:55, gcc: 4.2.4 [Sherpya]
|
* ffmpeg-SVN-r14196-rdian06-0.93.zip (Download below.)
- Compiled 2008-07-30 23:12:31
- Same as from the MKV thread, currently the default ffmpeg in wgw and wmcbrine's forks
- Based on "Tripp's Unofficial FFmpeg Win32 Build" SVN Revision 14196. See http://tripp.arrozcru.com/.
- ogm remux, x264 rc equation auto default, static pthreads (Tripp)
- uses ffmpeg native AC3 (Dolby Digital) decoder insted of liba52 for AC3 decoding
- AC3 decoder and encoder modified to use same channel ordering as DTS (dca) and AAC 5.1 (libfaad2)
| Code: |
FFmpeg version SVN-r14196-rdian06-0.93, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-memalign-hack --enable-postproc --enable-swscale --enable-gpl --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libxvid --disable-ffserver --disable-vhook --enable-avisynth --enable-pthreads
libavutil version: 49.7.0
libavcodec version: 51.60.0
libavformat version: 52.17.0
libavdevice version: 52.0.0
built on Jul 30 2008 23:12:31, gcc: 4.2.4 [Sherpya]
|
| Description: |
|
 Download |
| Filename: |
ffmpeg-SVN-r18820-rdian06-0.97-win32-x86_32.zip |
| Filesize: |
3.02 MB |
| Downloaded: |
186 Time(s) |
| Description: |
|
 Download |
| Filename: |
ffmpeg-SVN-15216-rdian06-0.95-x86_32.zip |
| Filesize: |
2.95 MB |
| Downloaded: |
60 Time(s) |
| Description: |
|
 Download |
| Filename: |
ffmpeg-SVN-14196-rdian06-0.93.zip |
| Filesize: |
2.85 MB |
| Downloaded: |
119 Time(s) |
Last edited by rdian06 on Thu Jun 25, 2009 6:01 pm; edited 1 time in total |
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Thu Jun 25, 2009 5:45 pm Post subject: |
|
|
Ffmpeg Patches
Diff were last created against SVN-r21659 unless otherwise noted.
* patch-libavformat-matroskadec.c-r21659.diff
Fixes "non-monotone timestamps" fatal errors encountered when remuxing AC3 audio from problematic MKVs to VOB. Root cause was the MKV demuxer not bothering to parse the bitrate for AC3 audio tracks. This patch forces the MKV demuxer to parse format headers for AC3 and EAC3. See https://roundup.ffmpeg.org/issue807
* patch-libavcodec-ac3dec.c-r21659.diff
Patches the AC3 decoder to ignore full audio frames when an error is encountered inside one of the constituent audio blocks (audio frames are made up of multiple blocks.) This avoids bad audio blocks throwing off the whole AC3 stream and producing muffled audio when transcoding AC3 to AC3. NOTE: This does NOT fix all muffled audio scenarios with the native fffmpeg AC3 decoder, but since the Matroska remuxing fix above makes the need to transcode AC3 to AC3 less frequent - you're a lot less likely to encounter the remaining muffled audio scenarios.
* patch-ffmpeg.c-r21659.diff
Patched the status output display line to stay less than 80 characters under normal usage and avoid filling the console with status lines.
* patch-libavformat-utils.c-r21659.diff
- Changes the timestamp monotonicity error check to be > instead of >=. Every once in a while I end up with a video that causes ffmpeg to report "error, non monotone timestamps XXX >= XXX" though it will play fine in VLC/Mplayer. This change allows ffmpeg to process the file properly when the timestamps are equal. A fatal error will still be reported if the current timestamp is greater than the next one. This helps with remuxing some MKV to MP4 as well and is still needed despite the matroskadec.c patch.
* patch-libavcodec-libfaad.c-r21659.diff
- Fixes 5.1 channel mapping by converting the AAC output order ( FC, FL, FR, SL, SR, LFE ) to SMPTE aka WAV order ( FL, FR, FC, LFE, SL, SR ) in libavcodec/libfaad.c
- This is a patch to the ffmpeg glue code for libfaad, NOT to libfaad itself.
- To use this patch you must:
1. Compile libfaad2 and make it available to ffmpeg configure.
2. Pass --enable-libfaad AND --disable-decoder=aac to ffmpeg configure If you fail to disable the ffmpeg native AAC decoder, it will be used for AAC decoding effectively bypassing libfaad.
* patch-libavcodec-aac.c-rdian06-0.97.diff
- Fixes 5.1 channel mapping by converting the AAC output order ( FC, FL, FR, SL, SR, LFE ) to SMPTE aka WAV order ( FL, FR, FC, LFE, SL, SR ) in libavcodec/aac.c. Diff created against SVN-r18820.
NOTE: The forum doesn't allow .diff extensions so I've tacked .txt on the end of each of these.
| Description: |
|
 Download |
| Filename: |
patch-libavformat-matroskadec.c-r21659.diff.txt |
| Filesize: |
623 Bytes |
| Downloaded: |
63 Time(s) |
| Description: |
|
 Download |
| Filename: |
patch-libavcodec-ac3dec.c-r21659.diff.txt |
| Filesize: |
541 Bytes |
| Downloaded: |
44 Time(s) |
| Description: |
|
 Download |
| Filename: |
patch-ffmpeg.c-r21659.diff.txt |
| Filesize: |
2.37 KB |
| Downloaded: |
64 Time(s) |
| Description: |
|
 Download |
| Filename: |
patch-libavcodec-libfaad.c-r21659.diff.txt |
| Filesize: |
1.04 KB |
| Downloaded: |
73 Time(s) |
| Description: |
|
 Download |
| Filename: |
patch-libavformat-utils.c-r21659.diff.txt |
| Filesize: |
629 Bytes |
| Downloaded: |
107 Time(s) |
| Description: |
|
 Download |
| Filename: |
patch-libavcodec-aac.c-rdian06-0.97.diff.txt |
| Filesize: |
1.36 KB |
| Downloaded: |
77 Time(s) |
Last edited by rdian06 on Tue Mar 30, 2010 9:22 pm; edited 7 times in total |
|
| Back to top |
|
 |
rdian06
Joined: 12 Apr 2008 Posts: 1420
|
Posted: Thu Jun 25, 2009 6:28 pm Post subject: |
|
|
Mac PowerPC G5 and Windows x86_32 builds of ffmpeg 0.98 are up along with the patch that was used to create them (for those who want to roll their own Linux build.)
Working on Mac Intel x86 build. I use MacPorts to build the Mac binaries now so I just need to get my 10.5 Intel environment setup and bring the Portfiles over to complete the compile. Hopefully in a few days...
|
|
| 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
|
|