MixedReality-WebRTC는 혼합 현실 앱 개발자가 P2P 실시간 오디오 및 비디오 통신을 애플리케이션에 통합하고 협업 환경을 개선하는 데 도움이 되는 라이브러리 모음입니다.
MixedReality-WebRTC는 혼합 현실 공유 팀에서 개발하고 유지 관리하는 저장소 컬렉션의 일부입니다.
MR-WebRTC는 더 이상 사용되지 않습니다. 우리는 더 이상 이에 대한 개발 리소스를 투입하지 않고, 이에 대한 풀 요청을 받지 않으며, 이에 대한 교체를 계획하지도 않습니다.
NuGet(C++, C#) 및 UPM(Unity) 패키지는 안정적인 릴리스( release/*
분기)에 사용할 수 있습니다. 자세한 내용은 GitHub의 릴리스 페이지 또는 설명서 다운로드 페이지를 참조하세요.
참고 : master
브랜치에는 최신 안정 릴리스의 주요 API 변경 사항이 포함될 수 있습니다. 따라서 안정적인 릴리스에만 사용할 수 있는 NuGet 패키지와의 작동이 보장되지 않습니다. 특히 Unity 라이브러리 스크립트는 release/*
분기에서 복사한 경우에만 NuGet 패키지와의 호환성이 보장되지만 대신 UPM 패키지를 사용하는 것이 좋습니다.
release/2.0
분기에는 NuGet 및 UPM 패키지가 게시되는 API의 안정적인 최신 버전이 포함되어 있습니다.
master
브랜치에는 최신 개발 내용이 포함되어 있습니다. 이 분기를 상당히 깨끗한 상태(분기 빌드 가능, 테스트 통과)로 유지하기 위해 주의를 기울였습니다. 그러나 master
분기에는 최신 릴리스와 비교하여 API 주요 변경 사항이 포함되어 있으므로 NuGet/UPM 패키지와 호환되지 않으며 대신 소스에서 빌드해야 합니다(소스 문서에서 빌드 참조).
공식 문서는 https://microsoft.github.io/MixedReality-WebRTC/에 호스팅되어 있습니다.
사용자 매뉴얼에는 프로젝트의 다양한 라이브러리에 대한 일반적인 개요와 이를 사용하는 방법에 대한 몇 가지 튜토리얼이 포함되어 있습니다.
C# 라이브러리 및 Unity 통합에 대한 API 참조가 제공됩니다.
전체적인 아키텍처는 다음과 같습니다.
도서관 | 랑 | 설명 |
---|---|---|
mrwebrtc | C/C++ | Google의 기본 WebRTC 구현에 대한 하위 수준 인터페이스를 제공하는 기본 C/C++ 라이브러리입니다. Google 구현( PeerConnection )에 의해 노출된 API와 비교하여 현재 인터페이스는 설정 및 구성 부담을 없애기 위해 단순화되었습니다. 또한 UWP 래퍼에서 일반적인 스레딩 오류를 방지하려고 시도합니다. 이 라이브러리는 모든 C/C++ 애플리케이션에 쉽게 통합되는 순수 C API입니다. |
Microsoft.MixedReality.WebRTC | C#7.3 | C# .Net Standard 2.0 라이브러리는 네이티브 C 라이브러리와 동일한 API에 대한 액세스를 제공하며 async / await 및 Task 와 같은 친숙한 C# 개념으로 노출됩니다. |
Microsoft.MixedReality.WebRTC.Unity | C#7.3 | Unity3D 통합 - 설정이 거의 필요 없는 Unity MonoBehaviour 구성 요소 세트로, 신속한 프로토타이핑을 지원하고 기존 앱에 대한 통합을 단순화합니다. |
Microsoft.MixedReality.WebRTC.Unity.Examples | C#7.3 | P2P 영상 채팅 앱과 같은 일반적인 사용 시나리오를 보여주는 Unity3D 샘플입니다. |
MixedReality-WebRTC는 현재 Unity 유무에 관계없이 Windows 10 데스크톱 및 UWP와 Android(Unity만 해당)에서 사용할 수 있습니다.
참고 - 다음과 이 저장소의 다른 곳에서 "Win32"라는 용어는 "Windows 데스크톱", 데스크톱 응용 프로그램 개발을 위한 기존 Windows API의 동의어로 사용되며 "Windows UWP" API와 반대되는 의미로 사용됩니다. 그러나 Windows SDK 17134(2018년 4월 업데이트, 1803)가 포함된 Windows 10 이전의 Microsoft Windows 버전은 이 프로젝트에서 공식적으로 지원되지 않습니다. 특히 이전 버전의 Windows(Windows 7, Windows 8 등)는 명시적으로 지원되지 않습니다.
이 저장소는 계층 구조를 표준화하기 위해 Pitchfork 레이아웃을 따릅니다.
bin/ # Binary outputs (generated)
build/ # Intermediate build artifacts (generated)
docs/ # Documentation sources
+ manual/ # User manual sources
examples/ # Examples of use and sample apps
external/ # Third-party external dependencies (git submodules)
libs/ # Source code for the individual libraries
tests/ # Source code for feature tests
tools/ # Utility scripts
+ build/ # Build scripts for the various platforms
+ android/ # Android Studio project to build libmrwebrtc.so
+ libwebrtc/ # Android build scripts for Google's WebRTC library
+ mrwebrtc/ # Windows build tools to build mrwebrtc.dll
+ ci/ # CI Azure pipelines
리포지토리 루트에 있는 Microsoft.MixedReality.WebRTC.sln
Visual Studio 2019 솔루션에는 여러 프로젝트가 포함되어 있습니다.
mrwebrtc
:mrwebrtc-win32
프로젝트가 있는 Windows 데스크톱용mrwebrtc-uwp
프로젝트를 사용한 UWP용mrwebrtc-win32-tests
Microsoft.MixedReality.WebRTC
Microsoft.MixedReality.WebRTC.Tests
Microsoft.MixedReality.WebRTC.TestAppUWP
입니다. 참고 - 현재 CI 제한으로 인해 일부 프로젝트는 VS 2017로 다운그레이드됩니다. master
및 release/1.0
분기가 구축 중인 Google M71 마일스톤은 VS 2019를 지원하지 않고 Azure DevOps CI 에이전트는 여러 Visual Studio 버전을 지원하지 않기 때문입니다. 같은 대리인. 이는 결국 VS 2019로 되돌아갈 것입니다(#14 참조).
소스에서 빌드에 대한 사용자 매뉴얼 섹션을 참조하세요.
VideoRecording
또는 VideoConferencing
과 같은 다른 비디오 프로필을 사용해야 합니다. WebcamSrouce.FormatMode = Automatic
(기본값)인 경우 Unity 통합 레이어(여기 참조)에서 자동으로 처리되지만 C# 라이브러리를 직접 사용하는 경우 수동으로 처리해야 합니다.screenDuplication
제한 기능에 해당합니다. 즉, 공유 앱에는 MRC를 사용할 수 없습니다. 이는 OS 제한 사항입니다.PreferredVideoCodec = "H264"
사용해야 합니다. 예를 들어 VP8 또는 VP9 코덱을 사용한 소프트웨어 인코딩은 CPU를 많이 사용하므로 사용하지 않는 것이 좋습니다. 현재 버전은 알려진 문제가 포함된 공개 미리 보기입니다.
Microsoft.MixedReality.WebRTC.Native
용 NuGet 패키지(v1.x)에는 Google 저장소의 일부 WebRTC 헤더가 포함되어 있습니다. 이는 NuGet 패키지 자체와 함께 제공되지 않지만 대신 이 저장소와 해당 종속성을 복제해야 합니다. (#123 참조).또한 WebRTC 코어 구현의 디버그 구성은 일부 고급 PC를 포함한 대부분의 장치에서 일부 성능 문제를 나타내는 것으로 알려져 있습니다. 핵심 WebRTC 구현의 릴리스 구성을 사용하면 일반적으로 이를 방지할 수 있으며 디버깅하지 않을 때 강력히 권장됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있는 경우 [email protected]으로 문의하세요.
MixedReality-WebRTC는 Google에서 제공하는 WebRTC 구현을 기반으로 구축됩니다. 이 구현과 관련된 보안 문제 및 버그는 Google에 보고되어야 합니다.
MixedReality-WebRTC 자체 또는 WebRTC UWP SDK와 관련된 보안 문제 및 버그는 전자 메일을 통해 MSRC(Microsoft 보안 대응 센터) [email protected]에 비공개로 보고해야 합니다. 24시간 이내에 답변을 받으실 수 있습니다. 어떤 이유로든 그렇지 않은 경우 원본 메시지가 수신되었는지 확인하기 위해 이메일을 통해 후속 조치를 취하시기 바랍니다. MSRC PGP 키를 포함한 추가 정보는 Security TechCenter에서 확인할 수 있습니다.