gpt4 book ai didi

android - 如何转换视频并以合理的处理时间导出新文件

转载 作者:行者123 更新时间:2023-12-04 23:10:40 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我需要对 mp4 视频应用一些转换(缩放/裁剪)。
我尝试使用 FFMPEG 库,但执行时间非常慢(平均速度为 1x),因为它需要在使用过滤时重新编码视频。这是我使用的命令

-y -ss ${startTimeString} -i ${inputPath} -t ${durationTimeString} -vf "scale='min(720,iw)':'min(1280,ih)'" -preset ultrafast ${outPath}
处理一个 15 分钟的视频大约需要 15 分钟。这对我的用户来说是无法忍受的。
我需要一个解决方案来应用我的转换,而无需重新编码视频。还有哪些其他解决方案可以达到我的期望?
请注意,在 iOS 上,我仅通过对视频层应用转换(因此无需任何重新编码)就设法使用 native AVFoundation 库来做到这一点,在 Android 上是否有任何等价物?
仅供引用,这是 FFMPEG 堆栈跟踪
    I/mobile-ffmpeg: Loading mobile-ffmpeg.
I/Choreographer: Skipped 264 frames! The application may be doing too much work on its main thread.
I/OpenGLRenderer: Davey! duration=4413ms; Flags=0, IntendedVsync=12249774698887, Vsync=12254174698711, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=12254182592086, AnimationStart=12254182609837, PerformTraversalsStart=12254183464633, DrawStart=12254183595751, SyncQueued=12254185475418, SyncStart=12254185925872, IssueDrawCommandsStart=12254185967779, SwapBuffers=12254187013958, FrameCompleted=12254188427920, DequeueBufferDuration=499000, QueueBufferDuration=378000,
I/mobile-ffmpeg: Loaded mobile-ffmpeg-min-gpl-x86-4.4-lts-20210207.
D/mobile-ffmpeg: Callback thread started.
I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I/mobile-ffmpeg: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/storage/light/projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --disable-sdl2 --enable-zlib --enable-mediacodec
libavutil 56. 55.100 / 56. 55.100
libavcodec 58. 96.100 / 58. 96.100
I/mobile-ffmpeg: libavformat 58. 48.100 / 58. 48.100
libavdevice 58. 11.101 / 58. 11.101
libavfilter 7. 87.100 / 7. 87.100
I/mobile-ffmpeg: libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I/mobile-ffmpeg: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/storage/light/projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --disable-sdl2 --enable-zlib --enable-mediacodec
libavutil 56. 55.100 / 56. 55.100
libavcodec 58. 96.100 / 58. 96.100
I/mobile-ffmpeg: libavformat 58. 48.100 / 58. 48.100
libavdevice 58. 11.101 / 58. 11.101
libavfilter 7. 87.100 / 7. 87.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:///data/user/0/com.myapp/cache/videos-clip/8ed5e6dd7f2191f219776916ee7f08e5':
Metadata:
I/mobile-ffmpeg: major_brand :
isom
minor_version :
512
I/mobile-ffmpeg: compatible_brands:
isomiso2avc1mp41
encoder :
Lavf58.20.100
Duration:
I/mobile-ffmpeg: 00:14:54.94
, start:
0.000000
I/mobile-ffmpeg: , bitrate:
2817 kb/s
Stream #0:0
(und)
I/mobile-ffmpeg: : Video: h264 (avc1 / 0x31637661), yuv420p, 1080x1920, 2682 kb/s
,
25 fps,
25 tbr,
12800 tbn,
I/mobile-ffmpeg: 50 tbc
(default)
I/mobile-ffmpeg: Metadata:
handler_name :
I/mobile-ffmpeg: Core Media Video
Stream #0:1
(und)
: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s
(default)
Metadata:
I/mobile-ffmpeg: handler_name :
Core Media Audio
Stream mapping:
Stream #0:0 -> #0:0
(h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1
(aac (native) -> aac (native))
Press [q] to stop, [?] for help
I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:///data/user/0/com.myapp/cache/videos-clip/8ed5e6dd7f2191f219776916ee7f08e5':
Metadata:
I/mobile-ffmpeg: major_brand :
isom
minor_version :
512
compatible_brands:
isomiso2avc1mp41
I/mobile-ffmpeg: encoder :
Lavf58.20.100
Duration:
I/mobile-ffmpeg: 00:14:54.94
, start:
0.000000
, bitrate:
2817 kb/s
I/mobile-ffmpeg: Stream #0:0
(und)
: Video: h264 (avc1 / 0x31637661), yuv420p, 1080x1920, 2682 kb/s
,
25 fps,
25 tbr,
12800 tbn,
50 tbc
(default)
I/mobile-ffmpeg: Metadata:
handler_name :
Core Media Video
Stream #0:1
(und)
I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s
(default)
Metadata:
handler_name :
Core Media Audio
Stream mapping:
Stream #0:0 -> #0:0
(h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1
I/mobile-ffmpeg: (aac (native) -> aac (native))
Press [q] to stop, [?] for help
W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0xbe5ef7e0] sws_param option is deprecated and ignored
W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0xbfb47260] sws_param option is deprecated and ignored
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] using cpu capabilities: none!
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
I/mobile-ffmpeg: [libx264 @ 0xbe7f3800] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, mp4, to '/storage/emulated/0/Android/data/com.myapp/files/Movies/clipVideo42414368565467115200.mp4':
I/mobile-ffmpeg: Metadata:
I/mobile-ffmpeg: major_brand :
isom
minor_version :
512
I/mobile-ffmpeg: compatible_brands:
isomiso2avc1mp41
I/mobile-ffmpeg: encoder :
Lavf58.48.100
I/mobile-ffmpeg: Stream #0:0
(und)
: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x1280, q=-1--1
,
25 fps,
I/mobile-ffmpeg: 12800 tbn,
25 tbc
(default)
Metadata:
handler_name :
Core Media Video
encoder :
Lavc58.96.100 libx264
Side data:

cpb:
I/mobile-ffmpeg: bitrate max/min/avg: 0/0/0 buffer size: 0
vbv_delay: N/A
I/mobile-ffmpeg: Stream #0:1
I/mobile-ffmpeg: (und)
I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
(default)
I/mobile-ffmpeg: Metadata:
handler_name :
I/mobile-ffmpeg: Core Media Audio
I/mobile-ffmpeg: encoder :
Lavc58.96.100 aac
[libx264 @ 0xb9bde000] using cpu capabilities: none!
I/mobile-ffmpeg: [libx264 @ 0xb9bde000] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit
I/mobile-ffmpeg: [libx264 @ 0xb9bde000] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
I/mobile-ffmpeg: Output #0, mp4, to '/storage/emulated/0/Android/data/com.myapp/files/Movies/clipVideo44177005536261563226.mp4':
Metadata:
major_brand :
isom
minor_version :
512
compatible_brands:
isomiso2avc1mp41
encoder :
Lavf58.48.100
Stream #0:0
(und)
: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x1280, q=-1--1
,
25 fps,
12800 tbn,
25 tbc
(default)
Metadata:
handler_name :
Core Media Video
encoder :
I/mobile-ffmpeg: Lavc58.96.100 libx264
Side data:

cpb:
I/mobile-ffmpeg: bitrate max/min/avg: 0/0/0 buffer size: 0
vbv_delay: N/A
Stream #0:1
(und)
: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
(default)
Metadata:
handler_name :
Core Media Audio
encoder :
Lavc58.96.100 aac
I/mobile-ffmpeg: frame= 6 fps=0.0 q=0.0 size= 0kB time=00:00:00.34 bitrate= 1.1kbits/s speed=0.628x
I/mobile-ffmpeg: frame= 14 fps= 13 q=21.0 size= 0kB time=00:00:00.67 bitrate= 0.6kbits/s speed=0.641x
I/mobile-ffmpeg: frame= 30 fps= 19 q=19.0 size= 256kB time=00:00:01.30 bitrate=1613.1kbits/s speed=0.82x
I/mobile-ffmpeg: frame= 44 fps= 21 q=21.0 size= 512kB time=00:00:01.85 bitrate=2258.1kbits/s speed=0.89x
I/mobile-ffmpeg: frame= 54 fps= 21 q=20.0 size= 768kB time=00:00:02.27 bitrate=2765.0kbits/s speed=0.88x
I/mobile-ffmpeg: frame= 68 fps= 22 q=22.0 size= 1024kB time=00:00:02.83 bitrate=2961.3kbits/s speed=0.916x
I/mobile-ffmpeg: frame= 88 fps= 24 q=22.0 size= 1536kB time=00:00:03.62 bitrate=3473.8kbits/s speed= 1x
I/mobile-ffmpeg: frame= 103 fps= 25 q=22.0 size= 1792kB time=00:00:04.22 bitrate=3473.8kbits/s speed=1.02x
I/mobile-ffmpeg: frame= 119 fps= 26 q=20.0 size= 2048kB time=00:00:04.87 bitrate=3440.7kbits/s speed=1.04x
I/mobile-ffmpeg: frame= 127 fps= 25 q=19.0 size= 2304kB time=00:00:05.17 bitrate=3645.1kbits/s speed= 1x
I/mobile-ffmpeg: frame= 142 fps= 25 q=21.0 size= 2560kB time=00:00:05.78 bitrate=3627.2kbits/s speed=1.02x
I/mobile-ffmpeg: frame= 161 fps= 26 q=20.0 size= 2816kB time=00:00:06.54 bitrate=3523.1kbits/s speed=1.06x
I/mobile-ffmpeg: frame= 177 fps= 26 q=22.0 size= 3072kB time=00:00:07.19 bitrate=3496.2kbits/s speed=1.07x
I/mobile-ffmpeg: frame= 184 fps= 26 q=22.0 size= 3328kB time=00:00:07.47 bitrate=3646.4kbits/s speed=1.04x
I/mobile-ffmpeg: frame= 196 fps= 25 q=22.0 size= 3584kB time=00:00:07.94 bitrate=3697.2kbits/s speed=1.03x
I/mobile-ffmpeg: frame= 202 fps= 24 q=22.0 size= 3584kB time=00:00:08.19 bitrate=3582.0kbits/s speed=0.994x
I/mobile-ffmpeg: frame= 209 fps= 24 q=20.0 size= 3840kB time=00:00:08.47 bitrate=3711.7kbits/s speed=0.968x
I/mobile-ffmpeg: frame= 218 fps= 24 q=20.0 size= 3840kB time=00:00:08.82 bitrate=3565.2kbits/s speed=0.953x
I/mobile-ffmpeg: frame= 219 fps= 22 q=20.0 size= 3840kB time=00:00:08.89 bitrate=3537.3kbits/s speed=0.912x
I/mobile-ffmpeg: frame= 235 fps= 23 q=20.0 size= 4096kB time=00:00:09.49 bitrate=3533.2kbits/s speed=0.922x
I/mobile-ffmpeg: frame= 236 fps= 22 q=21.0 size= 4096kB time=00:00:09.54 bitrate=3516.0kbits/s speed=0.884x
I/mobile-ffmpeg: frame= 246 fps= 22 q=21.0 size= 4352kB time=00:00:09.93 bitrate=3587.4kbits/s speed=0.878x
I/mobile-ffmpeg: frame= 255 fps= 21 q=23.0 size= 4352kB time=00:00:10.30 bitrate=3458.1kbits/s speed=0.869x
I/mobile-ffmpeg: frame= 262 fps= 21 q=21.0 size= 4608kB time=00:00:10.58 bitrate=3565.2kbits/s speed=0.856x
I/mobile-ffmpeg: frame= 268 fps= 21 q=21.0 size= 4608kB time=00:00:10.82 bitrate=3488.7kbits/s speed=0.839x
I/mobile-ffmpeg: frame= 277 fps= 21 q=20.0 size= 4864kB time=00:00:11.19 bitrate=3560.2kbits/s speed=0.835x
I/mobile-ffmpeg: frame= 285 fps= 20 q=22.0 size= 4864kB time=00:00:11.51 bitrate=3459.7kbits/s speed=0.828x
I/mobile-ffmpeg: frame= 291 fps= 20 q=22.0 size= 5120kB time=00:00:11.74 bitrate=3569.9kbits/s speed=0.813x
I/mobile-ffmpeg: frame= 311 fps= 21 q=20.0 size= 5376kB time=00:00:12.53 bitrate=3512.4kbits/s speed=0.839x
I/mobile-ffmpeg: frame= 314 fps= 20 q=19.0 size= 5376kB time=00:00:12.67 bitrate=3473.8kbits/s speed=0.819x
I/mobile-ffmpeg: frame= 328 fps= 21 q=21.0 size= 5632kB time=00:00:13.23 bitrate=3485.9kbits/s speed=0.828x
I/mobile-ffmpeg: frame= 351 fps= 21 q=19.0 size= 6144kB time=00:00:14.14 bitrate=3559.3kbits/s speed=0.858x
I/mobile-ffmpeg: frame= 363 fps= 21 q=20.0 size= 6144kB time=00:00:14.62 bitrate=3440.7kbits/s speed=0.861x
I/mobile-ffmpeg: frame= 368 fps= 21 q=22.0 size= 6400kB time=00:00:14.83 bitrate=3533.5kbits/s speed=0.847x
I/mobile-ffmpeg: frame= 383 fps= 21 q=20.0 size= 6656kB time=00:00:15.41 bitrate=3536.5kbits/s speed=0.856x
I/mobile-ffmpeg: frame= 402 fps= 22 q=19.0 size= 6912kB time=00:00:16.18 bitrate=3498.7kbits/s speed=0.874x
I/mobile-ffmpeg: frame= 410 fps= 22 q=18.0 size= 6912kB time=00:00:16.50 bitrate=3429.8kbits/s speed=0.866x
I/mobile-ffmpeg: frame= 424 fps= 22 q=20.0 size= 7168kB time=00:00:17.06 bitrate=3440.7kbits/s speed=0.871x
I/mobile-ffmpeg: frame= 436 fps= 22 q=20.0 size= 7424kB time=00:00:17.55 bitrate=3464.6kbits/s speed=0.873x
I/mobile-ffmpeg: frame= 458 fps= 22 q=20.0 size= 7680kB time=00:00:18.43 bitrate=3412.5kbits/s speed=0.895x
I/mobile-ffmpeg: frame= 461 fps= 22 q=21.0 size= 7680kB time=00:00:18.55 bitrate=3391.1kbits/s speed=0.878x
I/mobile-ffmpeg: frame= 484 fps= 22 q=20.0 size= 8192kB time=00:00:19.45 bitrate=3448.9kbits/s speed= 0.9x
I/mobile-ffmpeg: frame= 489 fps= 22 q=20.0 size= 8192kB time=00:00:19.66 bitrate=3412.2kbits/s speed=0.888x
I/mobile-ffmpeg: frame= 503 fps= 22 q=17.0 size= 8448kB time=00:00:20.22 bitrate=3421.9kbits/s speed=0.893x
I/mobile-ffmpeg: frame= 524 fps= 23 q=20.0 size= 8960kB time=00:00:21.06 bitrate=3485.2kbits/s speed=0.909x
I/mobile-ffmpeg: frame= 537 fps= 23 q=19.0 size= 8960kB time=00:00:21.59 bitrate=3399.0kbits/s speed=0.912x
I/mobile-ffmpeg: frame= 548 fps= 23 q=20.0 size= 9216kB time=00:00:22.03 bitrate=3426.2kbits/s speed=0.91x
I/mobile-ffmpeg: frame= 554 fps= 22 q=20.0 size= 9216kB time=00:00:22.26 bitrate=3390.4kbits/s speed=0.901x
I/mobile-ffmpeg: frame= 566 fps= 22 q=21.0 size= 9472kB time=00:00:22.75 bitrate=3409.9kbits/s speed=0.902x
I/mobile-ffmpeg: frame= 585 fps= 23 q=19.0 size= 9728kB time=00:00:23.49 bitrate=3391.4kbits/s speed=0.913x
I/mobile-ffmpeg: frame= 598 fps= 23 q=20.0 size= 9984kB time=00:00:24.03 bitrate=3403.3kbits/s speed=0.916x
I/mobile-ffmpeg: frame= 606 fps= 23 q=20.0 size= 9984kB time=00:00:24.35 bitrate=3357.8kbits/s speed=0.91x
I/mobile-ffmpeg: frame= 624 fps= 23 q=20.0 size= 10496kB time=00:00:25.07 bitrate=3428.7kbits/s speed=0.92x
I/mobile-ffmpeg: frame= 631 fps= 23 q=20.0 size= 10496kB time=00:00:25.35 bitrate=3391.0kbits/s speed=0.912x
I/mobile-ffmpeg: frame= 649 fps= 23 q=20.0 size= 10752kB time=00:00:26.07 bitrate=3377.8kbits/s speed=0.922x
I/mobile-ffmpeg: frame= 654 fps= 23 q=21.0 size= 10752kB time=00:00:26.26 bitrate=3354.0kbits/s speed=0.912x
I/mobile-ffmpeg: frame= 674 fps= 23 q=20.0 size= 11264kB time=00:00:27.07 bitrate=3408.2kbits/s speed=0.924x
I/mobile-ffmpeg: frame= 688 fps= 23 q=22.0 size= 11520kB time=00:00:27.63

最佳答案

我发现的唯一替代方法是使用 MediaCoder 库,但使用起来相当粗糙。我发现为我们处理所有繁重工作的伟大 repo :https://github.com/MasayukiSuda/Mp4Composer-android
它允许完美地缩放 mp4 并测试 1 分钟视频的 7 秒执行时间。所以比 FFMPEG 更好,更接近我的预期。

关于android - 如何转换视频并以合理的处理时间导出新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69538944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com