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