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                         



Reply via email to