터미널에서 비디오 + 오디오 회의!

그래 나도 알아 너희들이 "왜?", "왜 그러는거야?", 뭐 "그냥 재미로?"그리고 "실시간 병렬 처리"를 마스터하는 방법, 이것은 또한 내가 만든 첫 번째 POST입니다!

그것에 뛰어 들자!
우선, 화상 회의 시스템은 최소한의 대기 시간으로 다른 모든 참가자의 오디오 및 비디오 스트림을 연결된 각 사람에게 방송하는 실시간 응용 프로그램입니다!



터미널에서 작업해야 했기 때문에 데이터 입력을 위한 문자와 "바이트"만 있었습니다!

첫 번째 질문: 이미지를 터미널에서 인지할 수 있는 문자열로 변환하는 방법은 무엇입니까?



내 알고리즘은 매우 간단합니다. 먼저 OpenCv를 사용하여 카메라/dev/0 장치가 제공하는 이미지를 검색한 다음 OpenCV의 cvtColor 메서드를 사용하여 흰색 바탕에 검은색으로 변환합니다. 그런 다음 이 이미지를 0에서 255까지의 사각형으로 색상 대비를 제공하는 일종의 그리드로 자릅니다. 각 픽셀의 정렬 배열 등가가 있습니다! ""에서 "B"까지의 다른 문자 배열을 설정하여 픽셀의 점유율과 일치합니다!
복잡하게 ?


다시 설명하겠습니다. 픽셀이 어두울수록 문자의 밀도가 낮아지므로 "."또는 10 또는 12에 더 가까운 "B"또는 "K"와 달리 색상 값이 250 또는 255인 ","거기에서 문자로 컬러 이미지를 전사할 수 있습니다. 터미널에서 !

두 번째 질문: 오디오 스트림을 검색하고 전송하는 방법은 무엇입니까?



이를 위해 마이크에 연결하는 PyAudio를 사용하여 오디오 스트림을 검색한 다음 시퀀스당 바이트 형식으로 전송하고 수신 시 비트 전송률에 따라 리모델링을 수행합니다!

세 번째 질문: 각 세션에 대한 스트림(비디오 및 오디오)을 보내고 검색하는 방법은 무엇입니까?



여기서는 클라이언트가 데이터를 검색하고 분석한 다음 패키지의 내용을 검색할 때 보내는 항목과 보내는 세션을 식별할 수 있는 요소를 추가하여 json에서 바이트 서식 지정 시스템을 사용하고 있습니다.

네 번째 질문: 이러한 시스템에서 보안은 어떻게 작동합니까?



두 가지 유형의 데이터 암호화, 비대칭 암호화 및 대칭 암호화를 구현했습니다. 두 시스템 모두 키 공유를 먼저 수행해야 하지만 테스트 중인 버전에서는 최종 렌더링에 영향을 미치므로 모든 암호화를 비활성화했습니다. 품질!


AES(대칭 암호화)
RSA(비대칭 암호화)






s2c를 사용하려면 pip를 통해 설치하십시오!

pip install s2c


서버 시작:

s2c_server -p 1122


그런 다음 클라이언트를 시작합니다.

s2c -s session1 -c darker -i 127.0.0.1 -p 1122


또는 도움말을 사용하여 설명서를 볼 수 있습니다.


물론 이 모든 기사는 데모 없이는 쓸모가 없습니다: WATCH ME

s2c는 오픈 소스이며 무료입니다!

소스 코드 : https://github.com/sanix-darker/s2c
Pypi-패키지 : https://pypi.org/project/s2c/

추신: 어떤 의견이나 건설적인 조언도 환영합니다!

좋은 웹페이지 즐겨찾기