2018-09-30 17:21 GMT+02:00, sean darcy <[email protected]>: > On 9/30/18 10:45 AM, sean darcy wrote: >> On 9/29/18 5:15 PM, Carl Eugen Hoyos wrote: >>> 2018-09-29 22:46 GMT+02:00, sean darcy <[email protected]>: >>>> On 9/28/18 7:29 PM, Carl Eugen Hoyos wrote: >>>>> 2018-09-28 20:58 GMT+02:00, sean darcy <[email protected]>: >>>>> >>>>>> Also, I used ffprobe: >>>>>> >>>>>> ffprobe -show_frames -select_streams v -i in.mpg 2>&1 | grep -c >>>>>> interlaced_frame=1 >>>>>> 2052 >>>>>> ffprobe -show_frames -select_streams v -i in.mpg 2>&1 | grep -c >>>>>> interlaced_frame=0 >>>>>> 30347 >>>>>> >>>>>> This means there are at least some interlaced frames >>>>> >>>>> No, unfortunately ffprobe cannot tell you (the information above >>>>> is mostly unrelated to the question if the content is interlaced, >>>>> telecined or progressive). >>>>> >>>>> Either use the idet filter or do a visual inspection. >>>>> >>>>> Carl Eugen >>>>> _______________________________________________ >>>> >>>> Never used idet filter before, so don't know how to make use of the >>>> info. >>>> >>>> ffmpeg -vf idet -frames:v 5000 -an -f rawvideo -y /dev/null -i in.mpg >>>> ffmpeg version git-snapshot-20180928-RPMFusion Copyright (c) 2000-2018 >>>> the FFmpeg developers >>>> built with gcc 8 (GCC) >>>> configuration: --prefix=/usr --bindir=/usr/bin >>>> --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg >>>> --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 >>>> --optflags='-O2 -ffast-math -march=native -ftree-vectorize >>>> -fomit-frame-pointer -pipe -fPIC' --enable-bzlib --disable-crystalhd >>>> --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls >>>> --enable-ladspa --enable-libass --enable-libbluray --enable-libcdio >>>> --enable-libfdk-aac --enable-nonfree --enable-indev=jack >>>> --enable-libfreetype --enable-libfribidi --enable-libgsm >>>> --enable-libmp3lame --enable-openal --enable-opencl --disable-libopencv >>>> --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse >>>> --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis >>>> --enable-libv4l2 --enable-libvpx --enable-libwebp --enable-libx264 >>>> --enable-libx265 --enable-avfilter --enable-postproc --enable-pthreads >>>> --disable-static --enable-shared --enable-gpl --enable-version3 >>>> --enable-nonfree --disable-debug --enable-stripping >>>> --shlibdir=/usr/lib64 --enable-runtime-cpudetect >>>> libavutil 56. 19.101 / 56. 19.101 >>>> libavcodec 58. 31.101 / 58. 31.101 >>>> libavformat 58. 18.103 / 58. 18.103 >>>> libavdevice 58. 4.104 / 58. 4.104 >>>> libavfilter 7. 33.100 / 7. 33.100 >>>> libswscale 5. 2.100 / 5. 2.100 >>>> libswresample 3. 2.100 / 3. 2.100 >>>> libpostproc 55. 2.100 / 55. 2.100 >>>> [mpeg2video @ 0x1eef200] Invalid frame dimensions 0x0. >>>> Last message repeated 10 times >>>> Input #0, mpeg, from 'in.mpg': >>>> Duration: 26:09:34.50, start: 1305.384367, bitrate: 91 kb/s >>>> Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, >>>> progressive), 720x480 [SAR 8:9 DAR 4:3], Closed Captions, 29.97 fps, >>>> 59.94 tbr, 90k tbn, 59.94 tbc >>>> Stream #0:1[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s >>>> Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s >>>> Stream #0:3[0x1bf]: Data: dvd_nav_packet >>>> Stream #0:4[0x22]: Subtitle: dvd_subtitle >>>> Stream #0:5[0x21]: Subtitle: dvd_subtitle >>>> Stream #0:6[0x20]: Subtitle: dvd_subtitle >>>> Stream mapping: >>>> Stream #0:0 -> #0:0 (mpeg2video (native) -> rawvideo (native)) >>>> Press [q] to stop, [?] for help >>>> Output #0, rawvideo, to '/dev/null': >>>> Metadata: >>>> encoder : Lavf58.18.103 >>>> Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 >>>> [SAR 8:9 DAR 4:3], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc >>>> Metadata: >>>> encoder : Lavc58.31.101 rawvideo >>>> More than 1000 frames duplicated= 2191360kB time=00:02:24.44 >>>> bitrate=124280.6kbits/s dup=867 drop=0 speed=72.2x >>>> frame= 5000 fps=2162 q=-0.0 Lsize= 2531250kB time=00:02:46.83 >>>> bitrate=124291.7kbits/s dup=1001 drop=0 speed=72.1x >>>> video:2531250kB audio:0kB subtitle:0kB other streams:0kB global >>>> headers:0kB muxing overhead: 0.000000% >>>> [Parsed_idet_0 @ 0x21f7dc0] Repeated Fields: Neither: 4000 Top: 0 >>>> Bottom: 0 >>>> [Parsed_idet_0 @ 0x21f7dc0] Single frame detection: TFF: 0 BFF: >>>> 0 Progressive: 3894 Undetermined: 106 >>>> [Parsed_idet_0 @ 0x21f7dc0] Multi frame detection: TFF: 0 BFF: 0 >>>> Progressive: 4000 Undetermined: 0 >>>> >>>> As I read this, the idet filter only saw 4000 out of the 5000 frames, of >>>> which 106 couldn't be classified. What about the 1001 duplicated >>>> frames ? >>> >>> This indicates soft-telecine of progressive original. >>> >>> Please test with output option "-r 24000/1001". If that >>> leads to (many) duplicated and dropped frames, there >>> are ways to work-around iirc. >>> >>> Carl Eugen >> >> You are the man ! >> >> Ran the entire clip at 24000/1001, only 11 duplicated frames.
This imo indicates that the command line is correct. >> What did you see in the idet output that told you that the progressive >> original (~24fps, correct ? ) had been telecined ? I saw that it was not telecined (since all frames are progressive). Therefore the only explanation that made sense was soft-telecine: The actual framerate was always 24000/1001 but since old American televisions required 30000/1001, the stream contains information that frames have to be duplicated (what FFmpeg did originally). Maybe unrelated: Note that FFmpeg's mpeg-ps muxer is unable to add this information to its output streams, MEncoder can do it. > I've been googling soft telecine. Some have suggested using "-re" > as the frame rate. Why would 24000/1001 be preferred ? That does not sound correct, "-re" allows FFmpeg to encode in real-time (instead of faster), it should not change the output frame rate. Does it? Carl Eugen _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
