On Wed, 26 Apr 2006 16:10:12 -0400, T wrote: > I'm trying to fix the following problem when doing dvdauth: > > WARN: not a valid DVD frame rate: 24000.0/1001.0 (NTSC 3:2 pulldown converted > FILM) > > [...] > > I did do my own homework to under about the NTSC 3:2 pulldown, and > found the following should be the solution. > > ,----- > | For NTSC material, transcode currently generates film mode, i.e., > | 23.976 fps (progressive) for most NTSC DVD sources. For generating > | NTSC MPEG video, the final result should be played at 29.97 > | fps. Therefore the encoder must set the appropriate flags to force > | a decoder/player to generate a 3:2 pulldown (telecine) on > | demand. Transcode offers a long option "--pulldown" to encode to > | MPEG video with the appropriate flags set and switching the > | display rate from 23.976 to 29.97 fps. > `-----
> On Wed, 26 Apr 2006 08:38:07 -0700, Phil Ehrens wrote: > >>> oh, I'm just trying to figure out a way to have my dvd played *smoothly* >>> in my friend's dvd player. that's the bottom line. no intention to make it >>> more complicated than that. ;-) >> >> Okay, then use something more like: >> >> transcode [...] > > thanks a lot. will try it out. but the turn around time might be weeks > (get verified from my friend's dvd player). It works! Phil's method is reported below: use something more like: transcode -x mplayer,mplayer \ -J modfps=clonetype=3 \ -y ffmpeg \ -F mpeg2video \ -p $audiofile \ -b 192 \ --export_asr 2 \ --export_prof dvd-ntsc \ --export_fps 29.970,4 \ -Z 720x480,fast \ -j -18,-34,-22,-34 \ -o $filename \ -m $filename.ac3 \ -i $videofile But drop the -p option if you are not using a seperate input audio file. Also see this script, which tries to generalise and automate the process of making DVD's from arbitrary inputs. http://inferno.slug.org/cgi-bin/wiki?AviToVob > Meanwhile, can anyone make any comments on the following statements? > > ,----- > | So the basis of this technique is to restore proper timing by > | generating redundant image information from four film frames > | within every five NTSC video frames. But wouldn't it be silly to > | waste 20% of the storage space on every DVD with duplicate picture > | data? Fortunately the MPEG-2 standard nicely avoids this > | inefficiency. When a film source is encoded for presentation on > | DVD, it is stored at 24 frames per second; each video frame > | contains all the picture information from each film frame. There > | is no redundancy or duplication. Such a transfer is written to DVD > | as 720-pixel wide by 480-pixel high interlaced frames (where each > | frame contains two 720 by 240 fields), and there are only 24 > | frames for each second of film. This is known as 480i24. On each > | DVD encoded from a film source, a flag is inserted within the > | MPEG-2 data stream that instructs the player to repeat certain > | fields to reconstruct the 29.97 frame per second interlaced > | video. The player obliges by performing the 3:2 pulldown in > | real-time, continually creating interlaced frame sequences just > | like the one shown in the above figure, "The Telecine 3:2 Pulldown > | Process for NTSC Video." This capability enables the player to > | produce video compatible with conventional displays that were > | designed based on the NTSC video standard. > `----- > > full story is in > http://www.dvdfile.com/news/special_report/production_a_z/3_2_pulldown.htm On Fri, 28 Apr 2006 14:50:05 +0930, Rick Harris wrote: >> So, what is the right way to do it? > > The '--pulldown' switch is currently broken with the '-y ffmpeg' export > module. > For pulldown to work you'll need to use the 'mpeg2enc' export module. > > In your Transcode line replace: > '-y ffmpeg -F mpeg2video' > with > '-y mpeg2enc,ffmpeg -F8,-I0' > >> $ transcode -i "test-src.0.vbr.avi" -x ffmpeg -Y -104,-24,-104,-24 >> --export_asr 2 -M 4 -s 3 -o "test-src.0.vbr-.m2v" -m "test-src.0.vbr-.mpa" >> --video_max_bitrate 4600 -y ffmpeg -F mpeg2video -N 0x2000 -E 48000 -s2 -b >> 224 --pulldown transcode v1.1.0-cvs (C) 2001-2003 Thomas Oestreich, >> 2003-2004 T. Bitterberg [export_ffmpeg.so] v0.3.13 (2004-08-03) (video) >> Lavc51.9.0 | (audio) MPEG/AC3/PCM Thanks a lot Rick. It works too. Here is the detailed work log, just in case you can't get it straight at fist: $ transcode -i "test-src.0.vbr.avi" -x ffmpeg -Y -104,-24,-104,-24 --export_asr 2 -M 4 -s 3 -o "test-src.0.vbr-.m2v" -m "test-src.0.vbr-.mpa" --video_max_bitrate 4600 -y mpeg2enc,ffmpeg -F8,-I0 -N 0x2000 -E 48000 -s2 -b 224 --pulldown [transcode] V: import frame | 656x272 2.41:1 [transcode] V: clip frame (->) | 704x480 [transcode] V: bits/pixel | 0.222 [transcode] V: decoding fps,frc | 23.976,1 [transcode] V: YCbCr | I420 [transcode] A: import format | 0x2000 AC3 [48000,16,5] 384 kbps [transcode] A: downmix | 5 channels -> 2 channels [transcode] A: export format | 0x2000 AC3 [48000,16,2] 224 kbps [transcode] V: encoding fps,frc | 23.976,1 [export_mpeg2enc.so] mpeg2enc -v 0 -I 0 -f 8 -F 1 -n n -p -a 2 -o "test-src.0.vbr-.m2v" -I0 ++ WARN: [mpeg2enc] 3:2 movie pulldown with frame rate set to decode rate not display rate ++ WARN: [mpeg2enc] 3:2 Setting frame rate code to display rate = 4 (29.970 fps) encoding frames [0-1343], 25.58 fps, CFT: 0:00:56, ( 0| 0|10) mplex -f 8 test-src.0.vbr-.mpa test-src.0.vbr-.m2v -o test-src.0.vbr-1.mpg $ tcprobe -i test-src.0.vbr-1.mpg [tcprobe] MPEG program stream (PS) [tcprobe] summary for test-src.0.vbr-1.mpg, (*) = not default, 0 = not detected import frame size: -g 704x480 [720x576] (*) aspect ratio: 4:3 (*) frame rate: -f 29.970 [25.000] frc=4 (*) PTS=0.1780, frame_time=33 ms, bitrate=7500 kbps audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] PTS=0.1780, bitrate=224 kbps -D 0 --av_fine_ms 0 (frames & ms) [0] [0] $ ffmpeg -i test-src.0.vbr-1.mpg FFmpeg version CVS, Copyright (c) 2000-2004 Fabrice Bellard configuration: --prefix=/opt/new --libdir=${prefix}/lib --incdir=${prefix}/include/ffmpeg --mandir=${prefix}/share/man --enable-shared --enable-pthreads --enable-gpl --disable-bktr --disable-dv1394 --disable-network --disable-simple_idct --disable-ffserver libavutil version: 49.0.0 libavcodec version: 51.9.0 libavformat version: 50.4.0 built on Apr 24 2006 11:20:15, gcc: 3.3.5 (Debian 1:3.3.5-13) Input #0, mpeg, from 'test-src.0.vbr-1.mpg': Duration: 00:01:56.3, start: 0.178022, bitrate: 1429 kb/s Stream #0.0[0x1e0], 29.97 fps(r): Video: mpeg2video, yuv420p, 704x480, 7500 kb/s Stream #0.1[0x80]: Audio: 0x0000, 48000 Hz, stereo, 224 kb/s $ mpginfo -i test-src.0.vbr-1.mpg warning: couldn't find any valid system header. I'm continuing anyway test-src.0.vbr-1.mpg Mpeg 2 Program Stream File [Video/Audio] Muxrate : 10.08 Mbps Estimated Duration: 24:05.07s Aspect ratio 4/3 (TV) Interlaced, chroma format: 4:2:0 Video Format: NTSC Size [704 x 480] 29.97 fps 7.50 Mbps Audio : Mpeg 1 layer 2 160 kbps 32000 Hz Joint Stereo: (Intensity stereo on bands 16-31/32) No emphasis $ dvdauthor -o dvdauth -t test-src.0.vbr-1.mpg DVDAuthor::dvdauthor, version 0.6.11. INFO: dvdauthor creating VTS STAT: Picking VTS 01 STAT: Processing test-src.0.vbr-1.mpg... STAT: VOBU 144 at 17MB, 1 PGCS INFO: Video pts = 0.178 .. 116.877 INFO: Audio[0] pts = 0.178 .. 116.850 STAT: VOBU 156 at 19MB, 1 PGCS INFO: Generating VTS with the following video attributes: INFO: MPEG version: mpeg2 INFO: TV standard: ntsc INFO: Aspect ratio: 4:3 INFO: Resolution: 704x480 INFO: Audio ch 0 format: ac3/2ch, 48khz drc STAT: fixed 156 VOBUS