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 | 설정 클래스 | 소리 | 참고 |
|---|---|---|---|---|
| Windows | Windows Graphics Capture, DXGI Desktop Duplication, DirectX 9, GDI | ScreenCaptureD3D11SourceSettings, ScreenCaptureDX9SourceSettings, ScreenCaptureGDISourceSettings | 시스템 사운드(WASAPI 루프백) 또는 마이크 | 모니터, 영역 또는 창 하나. 클릭 강조 |
| macOS | AVFoundation | ScreenCaptureMacOSSourceSettings | 마이크 | 화면 기록 권한 필요: ScreenSourceBlock.AskPermissions() |
| Mac Catalyst (.NET MAUI) | ScreenCaptureKit | ScreenCaptureMacOSSourceSettings | 마이크 | macOS와 같은 설정 클래스 |
| Linux | X11 | ScreenCaptureXDisplaySourceSettings | 마이크 | X11 세션 필요. XID 또는 XName으로 창 선택 |
| Android | MediaProjection | AndroidScreenCaptureSourceSettings | 마이크 | 사용자가 시스템 프롬프트를 수락. 녹화는 포그라운드 서비스에서 실행 |
| iOS | ReplayKit | IOSScreenSourceSettings, 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이 파일을 씁니다. 플랫폼마다 바뀌는 것은 소스 설정뿐입니다.
자주 묻는 질문
PC에서 재생 중인 소리를 어떻게 녹음하나요?▼
다른 창에 가려진 창을 녹화할 수 있나요?▼
macOS와 Linux에서도 작동하나요?▼
Android와 iOS에서 화면을 녹화할 수 있나요?▼
녹화 화면이 검게 나오는 이유는 무엇인가요?▼
어떤 SDK가 필요한가요?▼
문서 및 샘플
화면 캡처 가이드
VideoCaptureCore와 VideoCaptureCoreX를 사용한 전체 화면, 영역, 창 캡처, 멀티 모니터 구성과 문제 해결.
화면 캡처를 MP4로 저장하는 튜토리얼
동영상이 포함된 단계별 C# 튜토리얼: 콘솔 녹화 프로그램, 시스템 오디오, GPU 인코더.
Screen Capture X Demo (WPF)
Video Capture SDK .NET 샘플: 화면, 영역 또는 창, 마이크 또는 루프백 오디오, MP4, WebM, AVI, MOV, MPEG-TS 출력.
Screen Capture MB Demo (WPF)
Media Blocks SDK .NET 샘플: 클릭 강조가 있는 화면 또는 창 캡처, 미리 보기, MP4 녹화.
Media Blocks의 화면 소스
ScreenSourceBlock 참조: 플랫폼별 설정 클래스와 그 뒤에 있는 캡처 기술.
ScreenCaptureMB (.NET MAUI)
Windows, Mac Catalyst, Android, iOS용 Media Blocks SDK .NET 샘플: 화면 미리 보기와 MP4 녹화, Android의 MediaProjection 프롬프트 포함.
화면 녹화를 시작하세요
모든 기능을 갖춘 30일 평가판을 다운로드하고 Screen Capture 데모를 실행해 보세요. 엔진과 출력에 따라 워터마크나 미등록 버전 알림이 표시될 수 있습니다.
화면 녹화를 지원하는 SDK
Video Capture SDK .NET
캡처 엔진: 시스템 사운드나 마이크와 함께 화면, 창 또는 영역을 파일로 녹화하거나 스트리밍, 미리 보기 포함.
자세히 보기 →Media Blocks SDK .NET
파이프라인 SDK: Windows, macOS, Linux, Android, iOS의 ScreenSourceBlock을 자체 처리, 믹싱, 출력과 결합.
자세히 보기 →연 €250부터 · Lifetime 라이선스 €750부터
