我正在尝试使用 ffmpeg 在 Win11 上录制我的游戏屏幕,方法如下:
ffmpeg -f gdigrab -framerate 20 -c:v libx264rgb -crf 0 -preset ultrafast -color_range 2 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -show_region 1 C:\Action!\Video\output.mkv
我在 ffmpeg 信息后收到一条错误消息,内容为:
未知解码器“libx264rgb”
错误打开输入文件桌面。
错误打开输入文件:未找到解码器
从信息来看,ffmpeg 似乎已经使用 libx264rgb 支持进行了编译:
ffmpeg 版本 N-118007-g2f95bc3cb3-20241204 版权所有 (c) 2000-2024 FFmpeg 开发人员使用 gcc 14.2.0(crosstool-NG 1.26.0.120_4d36f27)构建配置:--prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-lzma --启用字体配置 --启用 libharfbuzz --启用 libvorbis --启用 opencl --禁用 libpulse --启用 libvmaf --禁用 libxcb --禁用 xlib --启用 amf --启用 libaom --启用 libaribb24 --启用 avisynth --启用 chromaprint --启用 libdav1d --启用 libdavs2 --启用 libdvdread --启用 libdvdnav --禁用 libfdk-aac --启用 ffnvcodec --启用 cuda-llvm --启用 frei0r --启用 libgme --启用 libkvazaar --启用 libaribcaption --启用 libass --启用 libbluray --启用 libjxl --启用 libmp3lame --启用 libopus --启用 librist --启用 libssh --启用 libtheora --启用 libvpx --启用 libwebp --启用 libzmq --启用 lv2 --启用 libvpl --启用 openal --启用 libopencore-amrnb --启用 libopencore-amrwb --启用 libopenh264 --启用 libopenjpeg --启用 libopenmpt --启用 librav1e --启用 librubberband --启用 schannel --启用 sdl2 --启用 libsoxr --启用 libsrt --启用 libsvtav1 --启用 libtwolame --启用 libbuavs3d --禁用 libdrm --启用 vaapi --启用 libvidstab --启用 vulkan --启用 libshaderc --启用 libplacebo --启用 libvvenc --启用 libx264 --启用 libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20241204 libavutil 59. 47.101 / 59. 47.101 libavcodec 61. 26.100 / 61. 26.100 libavformat 61. 9.100 / 61. 9.100 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 12.100 / 8. 12.100 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100
运行“ffmpeg -codecs”后,我确实看到了以下行:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10(解码器:h264 h264_qsv libopenh264 h264_cuvid)(编码器:libx264 libx264rgb libopenh264 h264_amf h264_mf h264_nvenc h264_qsv h264_vaapi h264_vulkan)
如果我使用以下方法ffmpeg -f gdigrab -framerate 20 -i desktop C:\Action!\Video\output.mkv
,它可以正常工作,但是在观察帧速率时,它并没有达到 20fps,所以我想使用更快/更高效的编码选项来减少开销......
我在装有 Intel HD Graphics 620 显卡的笔记本电脑上对此进行了测试,然后再转移到装有 Nvidia 显卡的台式机上。
非常感谢
Glyn
------------- 编辑 -------------
错误信息已整理,感谢关于调整部分内容顺序的信息。然而,它并没有达到 25fps 的水平,而且丢帧了:
Duration: N/A, start: 1745794842.477476, bitrate: 1658890 kb/s Stream #0:0: Video: bmp, bgra, 1920x1080, 1658890 kb/s, 25 fps, 1000k tbr, 1000k tbn Stream mapping: Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264rgb)) Press [q] to stop, [?] for help [libx264rgb @ 000002943760d9c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264rgb @ 000002943760d9c0] profile High 4:4:4 Predictive, level 4.0, 4:4:4, 8-bit [libx264rgb @ 000002943760d9c0] 64 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0 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=cqp mbtree=0 qp=0 Output #0, matroska, to 'C:\Action!\Video\output.mkv': Metadata: encoder : Lavf61.9.100 Stream #0:0: Video: h264 (H264 / 0x34363248), rgb24(pc, gbr/unknown/unknown, progressive), 1920x1080, q=2-31, 25 fps, 1k tbn Metadata: encoder : Lavc61.26.100 libx264rgb Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 372 fps= 24 q=0.0 size= 3072KiB time=00:00:15.20 bitrate=1655.6kbits/s dup=0 drop=7 speed=0.982x
我认为使用 lib264rgb 编码器会更有效率...
Cheers Glyn
移至
-c:v libx264rgb -crf 0 -preset ultrafast -color_range 2
之后-i desktop
。移至
-show_region 1
之前。