사용자가 webapp에서 자신의 PC를 제어하는 원격 데스크톱 응용 프로그램을 만들려고합니다 (예 : logmein). 데스크탑 부분에서 C#을 사용하고 webapp에서 NodeJS를 사용하여 Socket.IO를 사용하여 통신했습니다.RTP 화면 스트리밍
첫 번째 시도는 스크린 샷 (단 5fps)을 캡쳐 한 다음 이전 스크린 샷과 비교하여 8 비트 이미지 색상의 차이 만 전송하여 800 * 600 해상도의 가상 데스크톱을 만들었습니다. 첫 번째 이미지를 입력 한 다음 화면의 변경 사항에 따라 5KB에서 60KB로 변경합니다.
가상 머신을 제어하는 내 로컬 머신으로 모든 것이 완벽했지만 웹 애플리케이션을 온라인으로 호스팅했을 때 그 결과는 비극적이었고, 지연은 거의 일어나지 않았습니다.
몇 가지 조사가 끝난 후 이런 종류의 앱이 내 방식으로는 불가능했으며 클라이언트 화면에서 실시간 프로토콜을 사용하고 실시간 스트리밍을해야한다는 것을 알게되었습니다.
내 질문은 :
어떤 자유/오픈 소스가되어 사용할 준비 RTP 라이브러리?
열린 앱이없는 클라이언트 측에서 오는 라이브 앱 스트리밍을 데스크 앱에서 webapp로 전송하는 방법은 무엇입니까? 나는 서버에서 실행될 다른 데스크탑 응용 프로그램 (웹 응용 프로그램 호스팅)을 생각한 다음 동일한 내용을 다시 스트리밍 한 다음 webapp에서 RTP 포트를 사용하여 로컬 IP에 액세스하여 내용을 간단하게 표시 할 수 있습니다. 라이브 스트리밍을 클라이언트에서 서버로 전송하는 수수께끼를 해결하지 못합니까?
대단히 고맙습니다. 몇 가지 질문이 있습니다. sayd ** 나는 각 끝이 클라이언트이고 웹 서비스에 '올라갈 것'입니다. **, 당신은 클라이언트를 의미합니까? 웹 서비스에 도달하는 스크린 샷을 캡처합니까? 그래서 RTP가 없습니까? 그리고 코멘트의 두 번째 부분을 기반으로, RTP는 정말로 도움이되지 않습니다. 레이턴시에 관해서는 특별한 것이 없습니다. 맞습니까? 그래서 나는 현재의 방법을 고수하고 압축/스크린 샷에 집중할 것인가? (따라야 할) –
현재 DPA는 Win7을 지원하지 않는다고 생각하고 수동으로 캡처하고 있습니다. zlib을 시도하고 압축하는 데 너무 많은 시간이 걸리므로 압축 방법을 사용하지 않고 있습니다. 나는 초고속 인 lz4net을 시도했지만 그 결과는별로 만족스럽지 않았습니다 (60kb 이미지는 50kb가됩니다). 어떻게 생각하십니까? –
내 현재 스크린 샷 실행 시간이 ~ .05s입니다. 편집 : 현재 캡처 한 스크린 샷과 이전 스크린 샷의 차이를 확인하고 차이 비트 맵을 저장하는 전체 프로세스는 ~ .1 초 ~ .13 초까지 소요됩니다. 너무 많이 믿는다. 나는 DDA를 시도해 볼 것이다. –