[FFmpeg-devel] [PATCH] dvd vob input fps detect wrong

Limin Wang lance.lmwang
Mon Sep 10 08:17:26 CEST 2007


Hi,


[snip]
> 
> as ive said the FRAME timebase is 60000/1001 go read the mpeg2 spec if
> you dont belive it
> 
> 
> >  If I force the fps to 30000/1001 manually and
> > convert it h264, the result is OK also. 
> 
> no it is NOT, all timestamps will be wrong

After more analysis and play with the dvd, it seems that its real fps is
24000/1001 and is progressive dvd. By mplayer, it will show below line:

demux_mpg: 24000/1001 fps progressive NTSC content detected, switching
framerate.

After try to force the fps to 24000/1001, ffmpeg report drop 14 frame,
no dup frame at beginning.

> 
> 
> 
> > Any comment to fix the issue?
> 
> what issue? you posted a broken patch not a bugreport

The problem is after trancoded, the video is back and forth, I guess it's
caused by many duplicated frame. Below is file info:

lmwang at test1-desktop:~/dev/ffmpeg$ ./ffmpeg -i
/mnt/dvd_source/dvd_7/VIDEO_TS/VTS_01_1.VOB
FFmpeg version SVN-r10465, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-libx264 --enable-gpl
  libavutil version: 49.5.0
  libavcodec version: 51.43.0
  libavformat version: 51.12.2
  built on Sep 10 2007 06:02:54, gcc: 4.1.3 20070718 (prerelease) (Debian
  4.1.2-14)

Seems stream 0 codec frame rate differs from container frame rate: 29.97
(30000/1001) -> 59.94 (60000/1001)
Input #0, mpeg, from '/mnt/dvd_source/dvd_7/VIDEO_TS/VTS_01_1.VOB':
  Duration: 00:15:18.0, start: 0.280633, bitrate: 9354 kb/s
  Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480, 9800 kb/s, 59.94
  fps(r)
  Stream #0.1[0x88]: Audio: dca, 48000 Hz, 5:1, 768 kb/s
  Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
  Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 192 kb/s
Must supply at least one output file

If needed, I can cut a segment to upload?


> 
> > By my test, if I transcode 1000frame, the duplicate frame will
> > 1000frame also.
> 
> use -vsync 1 and preferably dont use .avi

the vsync default is enable, so ffmpeg will report duplicate frame. I'm try
to use vob to ts.


> 
> and as ive said thousends of times already
> r_frame_rate is NOT the average frame rate it is the largest framerate
> with which all timestamps can accurately be represented
> 
> if you want a average_framerate send a patch which adds such a field
> but dont hijack a field with a different definition
> (and yes an avarage framerate might make sense for transcoding to AVI
> but it is wrong for normal containers which have timestamps)

Yes, the problem is the output codec frame rate will be set to the max
framerate 60000/1001 also,
I don't think it's proper to set its fps to 60000/1001?


Thanks,
Limin




More information about the ffmpeg-devel mailing list