On 04/17/2020 03:56 AM, Michael Koch wrote:
Am 17.04.2020 um 09:44 schrieb Mark Filipak:
On 04/17/2020 02:41 AM, Michael Koch wrote:
Am 17.04.2020 um 08:02 schrieb Mark Filipak:
Thanks to pdr0 -at- shaw.ca, My quest for the (nearly perfect) p24-to-p60 
transcode has concluded.

But remaining is an ffmpeg behavior that seems (to me) to be key to understanding ffmpeg architecture, to wit: The characteristics of frame traversal through a filter chain.

From a prior topic:
-----
Filter graph:

split[A]    select='not(eq(mod(n+1\,5)\,3))' [C]interleave
     [B]split[D]select='eq(mod(n+1\,5)\,2)'[F]blend[D]
             [E]select='eq(mod(n+1\,5)\,3)'[G]

What I expected/hoped:

split[A]         0 1 _ 3 4         [C]interleave 0 1 B 3 4 //5 frames
     [B]split[D] _ 1 _ _ _ [F]blend[D]               |
             [E] _ _ 2 _ _ [G]                       blend of 1+2

What appears to be happening:

split[A]         0 1 _ 3 4         [C]interleave 0 1 _ 3 4 //4 frames
     [B]split[D] _ _ _ _ _ [F]blend[D]
             [E] _ _ 2 _ _ [G]

The behavior is as though because frame 1 (see Note) can take the [A][C] path, it does take it & that leaves nothing left to also take the [B][D][F] path, so blend never outputs.

Only an untested idea, what happens when you change the order of the inputs of the blend filter, first [G] and then [F]?

This would be an important topic for someone writing a book, eh?

I assume you mean this, Michael:

split[A]    select='not(eq(mod(n+1\,5)\,3))'       [C]interleave
     [B]split[D]select='eq(mod(n+1\,5)\,2)'[F]blend[D]
             [E]select='eq(mod(n+1\,5)\,3)'[G]

split[A]         0 1 _ 3 4         [C]interleave 0 1 _ 3 4  //4 frames
     [B]split[D] _ _ 2 _ _ [F]blend[D]
             [E] _ _ _ _ _ [G]


no, I meant replace [F][G]blend[D] by [G][F]blend[D] and leave everything else 
as it is.

Michael

I found my old command lines in a log file.
=====
: Run original filter chain
SET FFREPORT=file=FOO-HG.LOG:level=32

ffmpeg -i %1 -filter_complex "telecine=pattern=46,split[A][B],[A]select='not(eq(mod(n+1\,5)\,3))'[C],[B]split[E][F],[E]select='eq(mod(n+1\,5)\,2)'[G],[F]select='eq(mod(n+1\,5)\,3)'[H],[H][G]blend[D],[C][D]interleave" -map 0 -c:v libx264 -crf 20 -an -sn "C:\AVOut\FOO-HG.MKV"

: Run reversed 'blend' inputs
SET FFREPORT=file=FOO-GH.LOG:level=32

ffmpeg -i %1 -filter_complex "telecine=pattern=46,split[A][B],[A]select='not(eq(mod(n+1\,5)\,3))'[C],[B]split[E][F],[E]select='eq(mod(n+1\,5)\,2)'[G],[F]select='eq(mod(n+1\,5)\,3)'[H],[G][H]blend[D],[C][D]interleave" -map 0 -c:v libx264 -crf 20 -an -sn "C:\AVOut\FOO-GH.MKV"
=====
There is a difference. Here are the logs

ffmpeg started on 2020-04-17 at 06:36:11
Report written to "FOO-HG.LOG"
Log level: 32
Command line:
ffmpeg -i "M:\\Test Videos\\23.976p.mkv" -filter_complex "telecine=pattern=46,split[A][B],[A]select='not(eq(mod(n+1\\,5)\\,3))'[C],[B]split[E][F],[E]select='eq(mod(n+1\\,5)\\,2)'[G],[F]select='eq(mod(n+1\\,5)\\,3)'[H],[H][G]blend[D],[C][D]interleave" -map 0 -c:v libx264 -crf 20 -an -sn "C:\\AVOut\\FOO-HG.MKV"
ffmpeg version git-2020-04-03-52523b6 Copyright (c) 2000-2020 the FFmpeg 
developers
  built with gcc 9.3.1 (GCC) 20200328
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 42.102 / 56. 42.102
  libavcodec     58. 77.101 / 58. 77.101
  libavformat    58. 42.100 / 58. 42.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.101 /  7. 77.101
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, matroska,webm, from 'M:\Test Videos\23.976p.mkv':
  Metadata:
    encoder         : libebml v1.3.9 + libmatroska v1.5.2
    creation_time   : 2020-04-04T03:44:24.000000Z
  Duration: 00:00:10.01, start: 0.000000, bitrate: 544 kb/s
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      BPS-eng         : 538378
      DURATION-eng    : 00:00:10.010000000
      NUMBER_OF_FRAMES-eng: 240
      NUMBER_OF_BYTES-eng: 673646
      _STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-04-04 03:44:24
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[Parsed_telecine_0 @ 000001c0aff784c0] Telecine pattern 46 yields up to 3 frames per frame, pts advance factor: 4/10
Stream mapping:
  Stream #0:0 (h264) -> telecine
  interleave -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[Parsed_telecine_0 @ 000001c0afb7bec0] Telecine pattern 46 yields up to 3 frames per frame, pts advance factor: 4/10
[libx264 @ 000001c0af952d40] using SAR=1/1
[libx264 @ 000001c0af952d40] MB rate (8160000000) > level limit (16711680)
[libx264 @ 000001c0af952d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 
AVX FMA3 BMI2 AVX2
[libx264 @ 000001c0af952d40] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 000001c0af952d40] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'C:\AVOut\FOO-HG.MKV':
  Metadata:
    encoder         : Lavf58.42.100
Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 1k tbn, 1000k tbc (default)
    Metadata:
      encoder         : Lavc58.77.101 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=   36 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A speed=   
0x
frame=   94 fps= 93 q=28.0 size=       1kB time=00:00:00.58 bitrate=   
8.4kbits/s speed=0.58x
frame=  177 fps=117 q=28.0 size=       1kB time=00:00:01.97 bitrate=   
2.5kbits/s speed=1.31x
frame=  260 fps=129 q=28.0 size=       1kB time=00:00:03.35 bitrate=   
1.5kbits/s speed=1.66x
frame=  328 fps=130 q=28.0 size=     180kB time=00:00:04.48 bitrate= 
327.6kbits/s speed=1.78x
frame=  408 fps=135 q=28.0 size=     180kB time=00:00:05.82 bitrate= 
252.6kbits/s speed=1.93x
frame=  485 fps=138 q=28.0 size=     180kB time=00:00:07.10 bitrate= 
206.9kbits/s speed=2.02x
frame=  568 fps=141 q=28.0 size=     256kB time=00:00:08.49 bitrate= 
246.9kbits/s speed=2.11x
frame=  594 fps=131 q=28.0 size=     256kB time=00:00:08.92 bitrate= 
234.9kbits/s speed=1.97x
frame=  594 fps= 36 q=-1.0 Lsize=     442kB time=00:00:09.86 bitrate= 
366.8kbits/s speed=0.595x
video:437kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing 
overhead: 1.073745%
[libx264 @ 000001c0af952d40] frame I:3     Avg QP: 6.19  size: 11408
[libx264 @ 000001c0af952d40] frame P:186   Avg QP:19.13  size:  1739
[libx264 @ 000001c0af952d40] frame B:405   Avg QP:16.99  size:   220
[libx264 @ 000001c0af952d40] consecutive B-frames:  0.7% 16.2% 27.3% 55.9%
[libx264 @ 000001c0af952d40] mb I  I16..4: 96.1%  0.9%  2.9%
[libx264 @ 000001c0af952d40] mb P I16..4: 0.6% 0.4% 0.2% P16..4: 2.2% 0.7% 0.2% 0.0% 0.0% skip:95.7% [libx264 @ 000001c0af952d40] mb B I16..4: 0.1% 0.0% 0.0% B16..8: 1.4% 0.1% 0.0% direct: 0.0% skip:98.5% L0:42.8% L1:55.4% BI: 1.8%
[libx264 @ 000001c0af952d40] 8x8 transform intra:14.6% inter:40.6%
[libx264 @ 000001c0af952d40] coded y,uvDC,uvAC intra: 3.9% 14.9% 12.4% inter: 
0.1% 0.4% 0.2%
[libx264 @ 000001c0af952d40] i16 v,h,dc,p: 89% 10%  1%  0%
[libx264 @ 000001c0af952d40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  6%  4% 90%  0%  0% 
 0%  0%  0%  0%
[libx264 @ 000001c0af952d40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 44% 25% 24%  2%  1% 
 2%  0%  2%  0%
[libx264 @ 000001c0af952d40] i8c dc,h,v,p: 67% 13% 21%  0%
[libx264 @ 000001c0af952d40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001c0af952d40] ref P L0: 75.3%  2.0% 12.2% 10.4%
[libx264 @ 000001c0af952d40] ref B L0: 79.5% 13.9%  6.6%
[libx264 @ 000001c0af952d40] ref B L1: 98.4%  1.6%
[libx264 @ 000001c0af952d40] kb/s:355.76


ffmpeg started on 2020-04-17 at 06:35:28
Report written to "FOO-GH.LOG"
Log level: 32
Command line:
ffmpeg -i "M:\\Test Videos\\23.976p.mkv" -filter_complex "telecine=pattern=46,split[A][B],[A]select='not(eq(mod(n+1\\,5)\\,3))'[C],[B]split[E][F],[E]select='eq(mod(n+1\\,5)\\,2)'[G],[F]select='eq(mod(n+1\\,5)\\,3)'[H],[G][H]blend[D],[C][D]interleave" -map 0 -c:v libx264 -crf 20 -an -sn "C:\\AVOut\\FOO-GH.MKV"
ffmpeg version git-2020-04-03-52523b6 Copyright (c) 2000-2020 the FFmpeg 
developers
  built with gcc 9.3.1 (GCC) 20200328
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 42.102 / 56. 42.102
  libavcodec     58. 77.101 / 58. 77.101
  libavformat    58. 42.100 / 58. 42.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 77.101 /  7. 77.101
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, matroska,webm, from 'M:\Test Videos\23.976p.mkv':
  Metadata:
    encoder         : libebml v1.3.9 + libmatroska v1.5.2
    creation_time   : 2020-04-04T03:44:24.000000Z
  Duration: 00:00:10.01, start: 0.000000, bitrate: 544 kb/s
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      BPS-eng         : 538378
      DURATION-eng    : 00:00:10.010000000
      NUMBER_OF_FRAMES-eng: 240
      NUMBER_OF_BYTES-eng: 673646
      _STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2020-04-04 03:44:24
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[Parsed_telecine_0 @ 000001aa1b2384c0] Telecine pattern 46 yields up to 3 frames per frame, pts advance factor: 4/10
Stream mapping:
  Stream #0:0 (h264) -> telecine
  interleave -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[Parsed_telecine_0 @ 000001aa18f0e700] Telecine pattern 46 yields up to 3 frames per frame, pts advance factor: 4/10
[libx264 @ 000001aa18ee2d40] using SAR=1/1
[libx264 @ 000001aa18ee2d40] MB rate (8160000000) > level limit (16711680)
[libx264 @ 000001aa18ee2d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 
AVX FMA3 BMI2 AVX2
[libx264 @ 000001aa18ee2d40] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 000001aa18ee2d40] 264 - core 159 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'C:\AVOut\FOO-GH.MKV':
  Metadata:
    encoder         : Lavf58.42.100
Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 1k tbn, 1000k tbc (default)
    Metadata:
      encoder         : Lavc58.77.101 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=   46 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A dup=0 
drop=11 speed=   0x
frame= 116 fps=111 q=28.0 size= 1kB time=00:00:01.18 bitrate= 4.1kbits/s dup=0 drop=29 speed=1.14x frame= 195 fps=126 q=26.0 size= 1kB time=00:00:02.83 bitrate= 1.7kbits/s dup=0 drop=49 speed=1.83x frame= 262 fps=128 q=28.0 size= 1kB time=00:00:04.23 bitrate= 1.2kbits/s dup=0 drop=65 speed=2.07x frame= 333 fps=131 q=27.0 size= 211kB time=00:00:05.72 bitrate= 302.5kbits/s dup=0 drop=83 speed=2.25x frame= 408 fps=133 q=28.0 size= 211kB time=00:00:07.27 bitrate= 238.0kbits/s dup=0 drop=102 speed=2.38x frame= 479 fps=135 q=27.0 size= 211kB time=00:00:08.76 bitrate= 197.6kbits/s dup=0 drop=120 speed=2.46x frame= 479 fps=118 q=27.0 size= 211kB time=00:00:08.76 bitrate= 197.6kbits/s dup=0 drop=120 speed=2.15x
video:401kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing 
overhead: 0.988793%
[libx264 @ 000001aa18ee2d40] frame I:2     Avg QP: 8.81  size: 10038
[libx264 @ 000001aa18ee2d40] frame P:178   Avg QP:18.73  size:  1750
[libx264 @ 000001aa18ee2d40] frame B:299   Avg QP:18.46  size:   261
[libx264 @ 000001aa18ee2d40] consecutive B-frames:  0.4% 48.4%  1.9% 49.3%
[libx264 @ 000001aa18ee2d40] mb I  I16..4: 79.3% 18.2%  2.5%
[libx264 @ 000001aa18ee2d40] mb P I16..4: 0.7% 0.4% 0.2% P16..4: 2.3% 0.7% 0.2% 0.0% 0.0% skip:95.7% [libx264 @ 000001aa18ee2d40] mb B I16..4: 0.1% 0.0% 0.0% B16..8: 1.6% 0.1% 0.0% direct: 0.0% skip:98.2% L0:26.8% L1:71.3% BI: 2.0%
[libx264 @ 000001aa18ee2d40] 8x8 transform intra:24.7% inter:40.6%
[libx264 @ 000001aa18ee2d40] coded y,uvDC,uvAC intra: 4.3% 16.3% 13.6% inter: 
0.1% 0.4% 0.3%
[libx264 @ 000001aa18ee2d40] i16 v,h,dc,p: 85% 14%  1%  0%
[libx264 @ 000001aa18ee2d40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34%  3% 63%  0%  0% 
 0%  0%  0%  0%
[libx264 @ 000001aa18ee2d40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 46% 25% 24%  1%  1% 
 1%  0%  1%  0%
[libx264 @ 000001aa18ee2d40] i8c dc,h,v,p: 61% 14% 24%  0%
[libx264 @ 000001aa18ee2d40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001aa18ee2d40] ref P L0: 69.3%  1.7% 16.8% 12.1%
[libx264 @ 000001aa18ee2d40] ref B L0: 69.3% 13.6% 17.1%
[libx264 @ 000001aa18ee2d40] ref B L1: 98.4%  1.6%
[libx264 @ 000001aa18ee2d40] kb/s:328.46
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to