[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