VisioForge

C# 및 .NET 크로스 플랫폼 화면 녹화

Windows, macOS, Linux, Android, iOS에서 하나의 API로 C# 화면 녹화 프로그램을 만드세요. 전체 화면, 창 또는 영역을 소리, 커서, 클릭 강조와 함께 MP4나 라이브 스트림으로 출력합니다. Video Capture SDK .NET과 Media Blocks SDK .NET은 각 플랫폼의 네이티브 캡처 API를 사용합니다.

연 €250부터 · Lifetime 라이선스 €750부터

스크린샷 루프는 화면 녹화 프로그램이 아닙니다

Graphics.CopyFromScreen은 Windows에서 비트맵 한 장을 줄 뿐입니다. 녹화 프로그램에는 안정적인 프레임 레이트, 커서, 소리, 인코더, 그리고 오디오가 비디오와 동기화된 파일도 필요합니다. 게다가 다른 운영 체제마다 캡처 API가 또 다릅니다. macOS는 AVFoundation 또는 ScreenCaptureKit, Linux는 X11, Android는 MediaProjection, iOS는 ReplayKit입니다. VisioForge SDK에서 화면은 웹캠과 같은 비디오 소스입니다. ScreenSourceBlock은 실행 중인 플랫폼의 네이티브 API를 사용하며, 인코더, 파일, 스트림은 어디서나 같은 코드입니다.

크로스 플랫폼 화면 녹화 프로그램 직접 구축과 SDK 사용 비교

일반적인 직접 구축 방식VisioForge Video Capture SDK .NET 및 Media Blocks SDK .NET
화면 캡처OS마다 다른 네이티브 API를 각각 직접 작성한 상호 운용 코드로 사용: Windows는 Desktop Duplication 또는 Windows Graphics Capture, macOS는 ScreenCaptureKit 또는 AVFoundation, Linux는 X11 또는 PipeWire, Android는 MediaProjection, iOS는 ReplayKit플랫폼마다 설정 클래스 하나를 갖는 ScreenSourceBlock. 인수 없는 ScreenSourceBlock()은 플랫폼 기본 소스를 사용
창 하나 또는 영역OS마다 다른 창 식별자와 자르기 코드: Windows는 HWND, Linux는 X11 창 ID창은 Windows에서 WindowHandle, Linux에서 XID, 영역은 Rectangle, 모니터는 Windows에서 MonitorIndex, macOS에서 Monitor
커서와 클릭커서와 클릭 표시를 프레임마다 직접 합성Windows, macOS, Linux에서 CaptureCursor. MouseHighlight는 클릭할 때마다 퍼지는 원을 그리며, 클릭은 Windows에서는 전역 마우스 훅에서 받고 다른 플랫폼에서는 앱 코드가 전달
소리마이크용으로 OS마다 별도의 오디오 API, Windows 시스템 사운드에는 WASAPI 루프백, 비디오와의 동기화는 직접 작성한 코드모든 플랫폼의 마이크에 SystemAudioSourceBlock, Windows 시스템 사운드에 LoopbackAudioCaptureDeviceSourceSettings, 비디오와 같은 타임라인에서 처리
인코딩과 파일Media Foundation, VideoToolbox, MediaCodec을 하나씩 래핑하거나 앱마다 FFmpeg 빌드를 함께 배포H264EncoderBlock이 MediaCodec, VideoToolbox 또는 NVENC, AMF, Quick Sync를 선택하고 대체 수단은 OpenH264. MP4, WebM, MKV, MOV, AVI, MPEG-TS 출력
유지 관리할 코드작성하고 테스트하며 서로 맞춰야 하는 다섯 개의 플랫폼 구현C# 파이프라인 하나. 플랫폼마다 달라지는 것은 소스 설정뿐

플랫폼별 화면 캡처

인수 없는 ScreenSourceBlock()은 플랫폼의 기본 소스를 선택합니다. API, 창 또는 영역을 지정하려면 설정 객체를 전달하세요.

플랫폼캡처 API설정 클래스소리참고
WindowsWindows Graphics Capture, DXGI Desktop Duplication, DirectX 9, GDIScreenCaptureD3D11SourceSettings, ScreenCaptureDX9SourceSettings, ScreenCaptureGDISourceSettings시스템 사운드(WASAPI 루프백) 또는 마이크모니터, 영역 또는 창 하나. 클릭 강조
macOSAVFoundationScreenCaptureMacOSSourceSettings마이크화면 기록 권한 필요: ScreenSourceBlock.AskPermissions()
Mac Catalyst (.NET MAUI)ScreenCaptureKitScreenCaptureMacOSSourceSettings마이크macOS와 같은 설정 클래스
LinuxX11ScreenCaptureXDisplaySourceSettings마이크X11 세션 필요. XID 또는 XName으로 창 선택
AndroidMediaProjectionAndroidScreenCaptureSourceSettings마이크사용자가 시스템 프롬프트를 수락. 녹화는 포그라운드 서비스에서 실행
iOSReplayKitIOSScreenSourceSettings, IOSBroadcastSourceSettings마이크자체 앱, 또는 Broadcast Upload Extension을 통한 기기 전체

SDK가 화면 녹화 프로그램을 위해 하는 일

화면 및 데스크톱 녹화는 VideoCaptureCoreX(Video Capture SDK .NET)에서는 비디오 소스이고 Media Blocks SDK .NET에서는 ScreenSourceBlock입니다. 소스 이후의 모든 처리는 카메라와 똑같이 동작합니다. 미리 보기, 녹화, 스트리밍, 비디오 효과입니다.

  • 세 가지 캡처 모드: 모든 모니터의 전체 화면, 핸들로 지정한 애플리케이션 창 하나, 데스크톱의 사각형 영역
  • Windows 10 버전 1803 이상에서는 Windows Graphics Capture가 기본으로 선택됩니다. DXGI Desktop Duplication, DirectX 9, GDI 소스도 사용할 수 있습니다
  • WASAPI 루프백을 통한 PC 사운드 또는 마이크. Media Blocks SDK .NET에서는 AudioMixerBlock이 둘을 하나의 트랙으로 믹싱
  • 튜토리얼과 데모를 위한 커서 캡처와 클릭 강조, 색상, 반경, 지속 시간 설정 가능. Windows에서는 클릭을 전역 마우스 훅에서 받습니다. MouseHighlight가 설정되면 VideoCaptureCoreX는 시작할 때 훅을 설치하고, Media Blocks에서는 MouseHighlightSubscribe()를 호출합니다. 다른 플랫폼에서는 앱 코드가 각 클릭을 MouseHighlightAddClickEvent(VideoCaptureCoreX에서는 MouseHighlight_AddClickEvent)에 전달합니다
  • 하드웨어 H.264: Android는 MediaCodec, Apple 플랫폼은 VideoToolbox. Windows에서는 SDK가 NVENC, AMF, Quick Sync를 시도하고 없으면 OpenH264를 사용
  • 여러 출력을 동시에: 같은 화면을 RTMP, SRT 또는 NDI로 YouTube에 스트리밍하면서 MP4로 녹화. 미리 보기를 멈추지 않고 녹화를 일시 중지하고 재개하거나 새 파일을 시작
  • Windows, macOS, Linux, Android, iOS에서 하나의 API. WinForms, WPF, .NET MAUI와 네이티브 macOS, Android, iOS 앱에서 사용 가능하며 각각 샘플 제공

활용 사례

튜토리얼 및 이러닝 녹화

내레이션과 클릭 강조를 포함해 창이나 전체 화면을 녹화하고 강의를 MP4로 저장합니다.

지원 및 세션 녹화

문제가 생기기 전에 사용자가 한 작업을 녹화하고 그 동영상을 지원 티켓에 첨부합니다.

QA 및 테스트 자동화

자동화된 UI 테스트 실행을 모두 녹화하고 실패한 테스트의 동영상을 증거로 보관합니다.

프레젠테이션 및 라이브 스트림

화면을 YouTube나 NDI 수신기로 스트리밍하고, 같은 캡처에서 로컬 MP4 사본도 보관합니다.

코드 예제

Video Capture SDK .NET과 Media Blocks SDK .NET의 Screen Capture 데모를 요약한 것입니다. 처음 두 개는 WinForms 폼에서, 세 번째는 .NET MAUI 페이지에서 실행되며, 각각 videoView1 또는 videoView라는 VisioForge VideoView가 있습니다.

화면과 시스템 사운드를 MP4로 녹화

C#

클릭 강조와 함께 창 하나 녹화

C#

Windows, macOS, Android, iOS용 녹화 프로그램 하나(.NET MAUI)

C#

파이프라인

창 예제와 .NET MAUI 예제는 같은 네 개의 블록을 사용합니다. ScreenSourceBlock이 플랫폼 API로 화면을 캡처하고, TeeBlock이 프레임을 미리 보기와 인코더로 나누며, MP4SinkBlock이 파일을 씁니다. 플랫폼마다 바뀌는 것은 소스 설정뿐입니다.

ScreenSourceBlock
TeeBlock
H264EncoderBlock
MP4SinkBlock

자주 묻는 질문

PC에서 재생 중인 소리를 어떻게 녹음하나요?▼
DeviceEnumerator.Shared.AudioOutputsAsync(AudioOutputDeviceAPI.WASAPI2)에서 가져온 출력 장치로 LoopbackAudioCaptureDeviceSourceSettings를 사용하고, 첫 번째 예제처럼 Audio_Record를 true로 설정하세요. 내레이션에는 대신 AudioSourcesAsync의 마이크를 사용합니다. 둘 다 녹음하려면 Media Blocks SDK .NET의 AudioMixerBlock으로 믹싱하세요.
다른 창에 가려진 창을 녹화할 수 있나요?▼
네, Windows Graphics Capture로 가능합니다. API를 D3D11ScreenCaptureAPI.WGC로, WindowHandle을 창의 핸들로 설정하세요. WGC는 창 자체의 내용을 캡처하므로 겹친 창은 녹화에 나타나지 않습니다. 최소화된 창은 그릴 내용이 없어 캡처되지 않습니다.
macOS와 Linux에서도 작동하나요?▼
네. macOS에서 화면 소스는 AVFoundation을 사용하며 화면 기록 권한이 필요합니다. ScreenSourceBlock.AskPermissions()가 시스템 프롬프트를 표시하고, macOS는 앱을 다시 시작한 후 새 권한을 적용합니다. Linux에서는 ScreenCaptureXDisplaySourceSettings가 X11 디스플레이를 캡처하므로 앱에 X11 세션이 필요합니다. 인코더, 파일, 스트림은 Windows와 같습니다. 시스템 사운드 루프백은 Windows 전용이므로 이 플랫폼에서는 마이크를 녹음하세요.
Android와 iOS에서 화면을 녹화할 수 있나요?▼
네, Media Blocks SDK .NET으로 가능합니다. Android에서는 사용자가 시스템 프롬프트를 수락한 뒤 앱이 받는 MediaProjection을 AndroidScreenCaptureSourceSettings에 전달합니다. iOS에서는 IOSScreenSourceSettings가 ReplayKit으로 자체 앱을 녹화하고, IOSBroadcastSourceSettings가 Broadcast Upload Extension으로 기기 전체를 녹화합니다.
녹화 화면이 검게 나오는 이유는 무엇인가요?▼
DRM 동영상 같은 보호된 콘텐츠는 운영 체제가 캡처를 차단합니다. 그 밖의 검은 프레임에는 다른 캡처 API(WGC 또는 DXGI Desktop Duplication)나 DirectX 9 소스를 시도해 보세요. GPU가 두 개인 노트북에서는 Desktop Duplication이 디스플레이를 구동하는 어댑터에서 실행되어야 하며, DXGIAdapter로 그 어댑터를 선택합니다.
어떤 SDK가 필요한가요?▼
바로 쓸 수 있는 캡처 엔진이 필요하면 Video Capture SDK .NET입니다. Video_Source, Audio_Source, 출력을 설정하고 StartAsync를 호출하세요. 블록으로 파이프라인을 구성하는 경우, 예를 들어 화면과 인코더 사이에 자체 처리를 추가하려면 Media Blocks SDK .NET입니다. 두 SDK 모두 같은 화면 소스를 사용합니다.

화면 녹화를 시작하세요

모든 기능을 갖춘 30일 평가판을 다운로드하고 Screen Capture 데모를 실행해 보세요. 엔진과 출력에 따라 워터마크나 미등록 버전 알림이 표시될 수 있습니다.

화면 녹화를 지원하는 SDK

연 €250부터 · Lifetime 라이선스 €750부터