Open wangsitudd opened 5 years ago
Do you have multiple GPUs on your system, like Intel integrated graphics + NVIDIA? Is your system a laptop or a desktop?
In that case, this problem generally can be solved by running Captura on the integrated GPU.
Do you have multiple GPUs on your system, like Intel integrated graphics + NVIDIA? Is your system a laptop or a desktop?
In that case, this problem generally can be solved by running Captura on the integrated GPU.
integrated graphics + NVIDIA Is laptop
In that case, this problem generally can be solved by running Captura on the integrated GPU.
Do you mean running Captura with integrated graphics? If it still goes wrong, it means I really can't use it? I can still record 8.0 normally!
The thing is from v9.0.0, Captura will use Desktop Duplication API
by default instead of GDI
which is used by v8.0.0. This gives a good performance increase.
Captura will fallback to GDI
on Windows 7 where Desktop Duplication
is not supported.
I'll try to add an option to Fallback to GDI
when doing the final v9 release but currently it is required to run Captura on integrated graphics when running on a laptop.
This problem is not specific to Captura and can be seen to occur with other softwares like OBS Studio.
The thing is from v9.0.0, Captura will use
Desktop Duplication API
by default instead ofGDI
which is used by v8.0.0. This gives a good performance increase. Captura will fallback toGDI
on Windows 7 whereDesktop Duplication
is not supported.I'll try to add an option to
Fallback to GDI
when doing the final v9 release but currently it is required to run Captura on integrated graphics when running on a laptop.This problem is not specific to Captura and can be seen to occur with other softwares like OBS Studio.
After running the integrated graphics card running software, the following error occurred. https://i.imgur.com/akSIyIN.png
Log
-thread_queue_size 512 -framerate 10 -f rawvideo -pix_fmt rgb32 -video_size 1920x1080 -i \.\pipe\captura-72db0316-bf32-4468-a5ec-bf63bf3f8728 -r 10 -vcodec libx264 -crf 15 -pix_fmt yuv420p -preset ultrafast "D:\我的文档\Documents\Captura\2019-07-27-06-53-29.mp4"
ffmpeg version N-94383-g3883c9d147 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190716
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-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-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 32.100 / 56. 32.100
libavcodec 58. 55.100 / 58. 55.100
libavformat 58. 30.100 / 58. 30.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.100 / 7. 58.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, rawvideo, from '\.\pipe\captura-72db0316-bf32-4468-a5ec-bf63bf3f8728':
Duration: N/A, start: 0.000000, bitrate: 663552 kb/s
Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1920x1080, 663552 kb/s, 10 tbr, 10 tbn, 10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0000027538d0f8c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000027538d0f8c0] profile Constrained Baseline, level 4.0, 4:2:0, 8-bit
[libx264 @ 0000027538d0f8c0] 264 - core 157 r2970 5493be8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - 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=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=10 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=15.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, mp4, to 'D:\鎴戠殑鏂囨。\Documents\Captura\2019-07-27-06-53-29.mp4':
Metadata:
encoder : Lavf58.30.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1920x1080, q=-1--1, 10 fps, 10240 tbn, 10 tbc
Metadata:
encoder : Lavc58.55.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 2 fps=0.0 q=-1.0 Lsize= 7kB time=00:00:00.10 bitrate= 607.5kbits/s speed=0.751x
video:7kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 12.191882%
[libx264 @ 0000027538d0f8c0] frame I:1 Avg QP:12.00 size: 6163
[libx264 @ 0000027538d0f8c0] frame P:1 Avg QP: 2.00 size: 12
[libx264 @ 0000027538d0f8c0] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0000027538d0f8c0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:100.0%
[libx264 @ 0000027538d0f8c0] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 0000027538d0f8c0] i16 v,h,dc,p: 99% 0% 1% 0%
[libx264 @ 0000027538d0f8c0] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0000027538d0f8c0] kb/s:247.00
SharpDX.SharpDXException: HRESULT: [0x8899000C], Module: [SharpDX.Direct2D1], ApiCode: [D2DERR_RECREATE_TARGET/RecreateTarget], Message: 存在可以恢复的演示错误。调用方需要重新创建、重新渲染整个帧,并重新尝试显示。
在 SharpDX.Result.CheckError()
在 DesktopDuplication.Direct2DEditorSession.EndDraw()
在 DesktopDuplication.Direct2DEditor.GenerateFrame()
在 Screna.Recorder.<>c__DisplayClass14_0.
+1
Describe the bug W10 system cannot record normally
To Reproduce Steps to reproduce the behavior:
Expected behavior Recording function is running normally
Screenshots https://i.imgur.com/jVRqtS2.png Desktop (please complete the following information):
Additional context System.NotSupportedException: Desktop Duplication is not supported on this system. If you have multiple graphic cards, try running Captura on integrated graphics. ---> SharpDX.SharpDXException: HRESULT: [0x887A0004], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_UNSUPPORTED/Unsupported], Message: 指定的设备接口或功能级别在此系统上不受支持。
在 SharpDX.Result.CheckError() 在 SharpDX.DXGI.Output1.DuplicateOutput(IUnknown deviceRef) 在 DesktopDuplication.DuplCapture.Init() --- 内部异常堆栈跟踪的结尾 --- 在 DesktopDuplication.DuplCapture.Init() 在 DesktopDuplication.DuplCapture..ctor(Output1 Output) 在 DesktopDuplication.FullScreenDesktopDuplicator.<>c__DisplayClass2_1.<.ctor>b__2(Output M) 在 System.Linq.Enumerable.WhereSelectArrayIterator
2.MoveNext() 在 System.Collections.Generic.List
1.InsertRange(Int32 index, IEnumerable`1 collection) 在 DesktopDuplication.FullScreenDesktopDuplicator..ctor(Boolean IncludeCursor, IPreviewWindow PreviewWindow, IPlatformServices PlatformServices) 在 Captura.Models.DeskDuplFullScreenImageProvider..ctor(Boolean IncludeCursor, IPreviewWindow PreviewWindow, IPlatformServices PlatformServices) 在 Captura.WindowsPlatformServices.GetAllScreensProvider(Boolean IncludeCursor) 在 Captura.Models.FullScreenItem.GetImageProvider(Boolean IncludeCursor) 在 Captura.ViewModels.RecordingModel.GetImageProvider(RecordingModelParams RecordingParams) 在 Captura.ViewModels.RecordingModel.SetupVideoRecorder(IAudioProvider AudioProvider, RecordingModelParams RecordingParams)System.NotSupportedException: Desktop Duplication is not supported on this system. If you have multiple graphic cards, try running Captura on integrated graphics. ---> SharpDX.SharpDXException: HRESULT: [0x887A0004], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_UNSUPPORTED/Unsupported], Message: 指定的设备接口或功能级别在此系统上不受支持。
在 SharpDX.Result.CheckError() 在 SharpDX.DXGI.Output1.DuplicateOutput(IUnknown deviceRef) 在 DesktopDuplication.DuplCapture.Init() --- 内部异常堆栈跟踪的结尾 --- 在 DesktopDuplication.DuplCapture.Init() 在 DesktopDuplication.DuplCapture..ctor(Output1 Output) 在 DesktopDuplication.FullScreenDesktopDuplicator.<>c__DisplayClass2_1.<.ctor>b__2(Output M) 在 System.Linq.Enumerable.WhereSelectArrayIterator
2.MoveNext() 在 System.Collections.Generic.List
1.InsertRange(Int32 index, IEnumerable`1 collection) 在 DesktopDuplication.FullScreenDesktopDuplicator..ctor(Boolean IncludeCursor, IPreviewWindow PreviewWindow, IPlatformServices PlatformServices) 在 Captura.Models.DeskDuplFullScreenImageProvider..ctor(Boolean IncludeCursor, IPreviewWindow PreviewWindow, IPlatformServices PlatformServices) 在 Captura.WindowsPlatformServices.GetAllScreensProvider(Boolean IncludeCursor) 在 Captura.Models.FullScreenItem.GetImageProvider(Boolean IncludeCursor) 在 Captura.ViewModels.RecordingModel.GetImageProvider(RecordingModelParams RecordingParams) 在 Captura.ViewModels.RecordingModel.SetupVideoRecorder(IAudioProvider AudioProvider, RecordingModelParams RecordingParams)