[FFmpeg-trac] #9558(undetermined:new): Videotoolbox extremely slow (even much slower than software encoding

FFmpeg trac at avcodec.org
Sun Dec 19 11:22:10 EET 2021


#9558: Videotoolbox extremely slow (even much slower than software encoding
-------------------------------------+-------------------------------------
             Reporter:  Atarikid     |                     Type:  defect
               Status:  new          |                 Priority:  critical
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 On macOS '''Monterey 12.1''' using Videotoolbox is extremely slow. Both
 for H264 and H265.

 Below one take using X264 encoder and one take with using Videotoolbox.
 Using x264 or x265 is between 3-5 faster compared to using videotoolbox.

 This was not the case before which Videotoolbox was always about 5-to10
 times faster.


 ####
 HERE THE TAKE USING X264 encoder. Which took approx. 5 seconds to encode.
 ####

 /Users/atarikid/Desktop/ffmpegdaily -i /Users/atarikid/Desktop/Rock.mp4
 -an -c:v h264 -b:v 700k -y /Users/atarikid/Movies/Rock.mp4
 ffmpeg version N-104939-g98f87c3d29 Copyright (c) 2000-2021 the FFmpeg
 developers
   built with Apple clang version 13.0.0 (clang-1300.0.29.3)
   configuration: --prefix=/Volumes/tempdisk/sw --extra-cflags=-fno-stack-
 check --arch=arm64 --cc=/usr/bin/clang --enable-gpl --enable-libopenjpeg
 --enable-libopus --enable-libmp3lame --enable-libx264 --enable-libx265
 --enable-libvpx --enable-libwebp --enable-libass --enable-libfreetype
 --enable-libtheora --enable-libvorbis --enable-libsnappy --enable-libaom
 --enable-libvidstab --enable-libzimg --enable-libsvtav1 --enable-version3
 --pkg-config-flags=--static --disable-ffplay --enable-postproc --enable-
 nonfree --enable-neon --enable-runtime-cpudetect --disable-indev=qtkit
 --disable-indev=x11grab_xcb
   libavutil      57. 11.100 / 57. 11.100
   libavcodec     59. 14.100 / 59. 14.100
   libavformat    59. 10.100 / 59. 10.100
   libavdevice    59.  0.101 / 59.  0.101
   libavfilter     8. 20.100 /  8. 20.100
   libswscale      6.  1.101 /  6.  1.101
   libswresample   4.  0.100 /  4.  0.100
   libpostproc    56.  0.100 / 56.  0.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
 '/Users/atarikid/Desktop/Rock.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isomavc1mp42
     creation_time   : 2010-07-13T15:38:07.000000Z
   Duration: 00:03:48.08, start: 0.000000, bitrate: 565 kb/s
   Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 93 kb/s (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
   Stream #0:1[0x2](und): Video: h264 (Constrained Baseline) (avc1 /
 0x31637661), yuv420p(progressive), 480x270 [SAR 1:1 DAR 16:9], 469 kb/s,
 25 fps, 25 tbr, 25k tbn (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
 Stream mapping:
   Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [libx264 @ 0x147604960] using SAR=1/1
 [libx264 @ 0x147604960] using cpu capabilities: ARMv8 NEON
 [libx264 @ 0x147604960] profile High, level 2.1, 4:2:0, 8-bit
 [libx264 @ 0x147604960] 264 - core 164 r3075 66a5bc1 - H.264/MPEG-4 AVC
 codec - Copyleft 2003-2021 - 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=8
 lookahead_threads=1 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=abr mbtree=1 bitrate=700
 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 Output #0, mp4, to '/Users/atarikid/Movies/Rock.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isomavc1mp42
     encoder         : Lavf59.10.100
   Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive),
 480x270 [SAR 1:1 DAR 16:9], q=2-31, 700 kb/s, 25 fps, 12800 tbn (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
       encoder         : Lavc59.14.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/700000 buffer size: 0 vbv_delay: N/A
 frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A
 speed=   frame=  445 fps=0.0 q=24.0 size=    1280kB time=00:00:15.60
 bitrate= 672.2kbits/frame=  896 fps=894 q=22.0 size=    2560kB
 time=00:00:33.64 bitrate= 623.4kbits/frame= 1297 fps=863 q=25.0 size=
 4352kB time=00:00:49.68 bitrate= 717.6kbits/frame= 1727 fps=862 q=26.0
 size=    5888kB time=00:01:06.88 bitrate= 721.2kbits/frame= 2169 fps=865
 q=25.0 size=    7168kB time=00:01:24.56 bitrate= 694.4kbits/frame= 2634
 fps=876 q=22.0 size=    8448kB time=00:01:43.16 bitrate= 670.9kbits/frame=
 3052 fps=870 q=22.0 size=    9728kB time=00:01:59.88 bitrate=
 664.8kbits/frame= 3478 fps=867 q=22.0 size=   11264kB time=00:02:16.92
 bitrate= 673.9kbits/frame= 3910 fps=867 q=21.0 size=   12544kB
 time=00:02:34.20 bitrate= 666.4kbits/frame= 4327 fps=863 q=22.0 size=
 14336kB time=00:02:50.88 bitrate= 687.3kbits/frame= 4749 fps=862 q=21.0
 size=   15616kB time=00:03:07.76 bitrate= 681.3kbits/frame= 5164 fps=859
 q=21.0 size=   16896kB time=00:03:24.36 bitrate= 677.3kbits/frame= 5575
 fps=856 q=22.0 size=   18432kB time=00:03:40.80 bitrate= 683.9kbits/frame=
 5702 fps=846 q=-1.0 Lsize=   19332kB time=00:03:47.96 bitrate=
 694.7kbits/s speed=33.8x
 video:19270kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.321124%
 [libx264 @ 0x147604960] frame I:51    Avg QP:15.31  size: 15383
 [libx264 @ 0x147604960] frame P:2255  Avg QP:18.67  size:  5665
 [libx264 @ 0x147604960] frame B:3396  Avg QP:22.63  size:  1818
 [libx264 @ 0x147604960] consecutive B-frames: 16.7%  8.5%  9.1% 65.7%
 [libx264 @ 0x147604960] mb I  I16..4:  7.9% 19.1% 73.0%
 [libx264 @ 0x147604960] mb P  I16..4:  1.2%  5.1%  3.6%  P16..4: 36.3%
 31.3% 14.8%  0.0%  0.0%    skip: 7.7%
 [libx264 @ 0x147604960] mb B  I16..4:  0.2%  0.5%  0.6%  B16..8: 48.6%
 17.2%  4.6%  direct: 3.4%  skip:24.9%  L0:53.1% L1:32.3% BI:14.6%
 [libx264 @ 0x147604960] final ratefactor: 17.39
 [libx264 @ 0x147604960] 8x8 transform intra:45.2% inter:51.1%
 [libx264 @ 0x147604960] coded y,uvDC,uvAC intra: 82.3% 84.5% 43.5% inter:
 27.2% 25.2% 1.3%
 [libx264 @ 0x147604960] i16 v,h,dc,p: 32% 32%  8% 27%
 [libx264 @ 0x147604960] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 18% 12%  6%  8%
 9%  8% 11%  9%
 [libx264 @ 0x147604960] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 22% 10%  6%  9%
 9%  8%  8%  6%
 [libx264 @ 0x147604960] i8c dc,h,v,p: 45% 23% 23%  9%
 [libx264 @ 0x147604960] Weighted P-Frames: Y:2.2% UV:0.4%
 [libx264 @ 0x147604960] ref P L0: 76.8% 12.5%  8.5%  2.2%  0.1%
 [libx264 @ 0x147604960] ref B L0: 96.8%  2.7%  0.5%
 [libx264 @ 0x147604960] ref B L1: 98.7%  1.3%
 [libx264 @ 0x147604960] kb/s:692.09





 ####
 HERE THE TAKE USING h264_videotoolbox. Which took approx. 16 seconds to
 encode. (so 3 times slower)
 ####




 /Users/atarikid/Desktop/ffmpegdaily -i /Users/atarikid/Desktop/Rock.mp4
 -an -c:v h264_videotoolbox -b:v 700k -y /Users/atarikid/Movies/Rock.mp4
 ffmpeg version N-104939-g98f87c3d29 Copyright (c) 2000-2021 the FFmpeg
 developers
   built with Apple clang version 13.0.0 (clang-1300.0.29.3)
   configuration: --prefix=/Volumes/tempdisk/sw --extra-cflags=-fno-stack-
 check --arch=arm64 --cc=/usr/bin/clang --enable-gpl --enable-libopenjpeg
 --enable-libopus --enable-libmp3lame --enable-libx264 --enable-libx265
 --enable-libvpx --enable-libwebp --enable-libass --enable-libfreetype
 --enable-libtheora --enable-libvorbis --enable-libsnappy --enable-libaom
 --enable-libvidstab --enable-libzimg --enable-libsvtav1 --enable-version3
 --pkg-config-flags=--static --disable-ffplay --enable-postproc --enable-
 nonfree --enable-neon --enable-runtime-cpudetect --disable-indev=qtkit
 --disable-indev=x11grab_xcb
   libavutil      57. 11.100 / 57. 11.100
   libavcodec     59. 14.100 / 59. 14.100
   libavformat    59. 10.100 / 59. 10.100
   libavdevice    59.  0.101 / 59.  0.101
   libavfilter     8. 20.100 /  8. 20.100
   libswscale      6.  1.101 /  6.  1.101
   libswresample   4.  0.100 /  4.  0.100
   libpostproc    56.  0.100 / 56.  0.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
 '/Users/atarikid/Desktop/Rock.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isomavc1mp42
     creation_time   : 2010-07-13T15:38:07.000000Z
   Duration: 00:03:48.08, start: 0.000000, bitrate: 565 kb/s
   Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 93 kb/s (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
   Stream #0:1[0x2](und): Video: h264 (Constrained Baseline) (avc1 /
 0x31637661), yuv420p(progressive), 480x270 [SAR 1:1 DAR 16:9], 469 kb/s,
 25 fps, 25 tbr, 25k tbn (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
 Stream mapping:
   Stream #0:1 -> #0:0 (h264 (native) -> h264 (h264_videotoolbox))
 Press [q] to stop, [?] for help
 Output #0, mp4, to '/Users/atarikid/Movies/Rock.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: isomavc1mp42
     encoder         : Lavf59.10.100
   Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive),
 480x270 [SAR 1:1 DAR 16:9], q=2-31, 700 kb/s, 25 fps, 12800 tbn (default)
     Metadata:
       creation_time   : 2010-07-13T15:38:07.000000Z
       handler_name    : (C) 2007 Google Inc. v08.13.2007.
       vendor_id       : [0][0][0][0]
       encoder         : Lavc59.14.100 h264_videotoolbox
 [h264_videotoolbox @ 0x13b6173c0] Color range not set for yuv420p. Using
 MPEG range.
 frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A
 speed=   frame=  179 fps=0.0 q=-0.0 size=     512kB time=00:00:06.80
 bitrate= 616.9kbits/frame=  401 fps=400 q=-0.0 size=    1280kB
 time=00:00:15.68 bitrate= 668.8kbits/frame=  623 fps=414 q=-0.0 size=
 2048kB time=00:00:24.56 bitrate= 683.1kbits/frame=  846 fps=422 q=-0.0
 size=    2816kB time=00:00:33.48 bitrate= 689.0kbits/frame= 1073 fps=428
 q=-0.0 size=    3584kB time=00:00:42.56 bitrate= 689.9kbits/frame= 1300
 fps=432 q=-0.0 size=    4352kB time=00:00:51.64 bitrate= 690.4kbits/frame=
 1536 fps=438 q=-0.0 size=    5120kB time=00:01:01.08 bitrate=
 686.7kbits/frame= 1778 fps=443 q=-0.0 size=    5888kB time=00:01:10.76
 bitrate= 681.7kbits/frame= 2015 fps=446 q=-0.0 size=    6912kB
 time=00:01:20.24 bitrate= 705.7kbits/frame= 2252 fps=449 q=-0.0 size=
 7680kB time=00:01:29.72 bitrate= 701.2kbits/frame= 2483 fps=450 q=-0.0
 size=    8448kB time=00:01:38.96 bitrate= 699.3kbits/frame= 2712 fps=451
 q=-0.0 size=    9216kB time=00:01:48.12 bitrate= 698.3kbits/frame= 2934
 fps=450 q=-0.0 size=    9984kB time=00:01:57.00 bitrate= 699.1kbits/frame=
 3158 fps=450 q=-0.0 size=   10752kB time=00:02:05.96 bitrate=
 699.3kbits/frame= 3391 fps=451 q=-0.0 size=   11520kB time=00:02:15.28
 bitrate= 697.6kbits/frame= 3621 fps=451 q=-0.0 size=   12288kB
 time=00:02:24.48 bitrate= 696.7kbits/frame= 3852 fps=452 q=-0.0 size=
 13056kB time=00:02:33.72 bitrate= 695.8kbits/frame= 4083 fps=452 q=-0.0
 size=   13824kB time=00:02:42.96 bitrate= 694.9kbits/frame= 4312 fps=453
 q=-0.0 size=   14592kB time=00:02:52.12 bitrate= 694.5kbits/frame= 4544
 fps=453 q=-0.0 size=   15360kB time=00:03:01.40 bitrate= 693.7kbits/frame=
 4773 fps=453 q=-0.0 size=   16128kB time=00:03:10.56 bitrate=
 693.3kbits/frame= 5002 fps=454 q=-0.0 size=   16896kB time=00:03:19.72
 bitrate= 693.0kbits/frame= 5229 fps=453 q=-0.0 size=   17920kB
 time=00:03:28.80 bitrate= 703.1kbits/frame= 5465 fps=454 q=-0.0 size=
 18688kB time=00:03:38.24 bitrate= 701.5kbits/frame= 5695 fps=454 q=-0.0
 size=   19456kB time=00:03:47.44 bitrate= 700.8kbits/frame= 5702 fps=454
 q=-0.0 Lsize=   19584kB time=00:03:48.04 bitrate= 703.5kbits/s speed=18.1x
 video:19558kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.129136%
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9558>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list