본문 바로가기

전체 글

(1186)
RTSP 정리 RTSP를 통한 스트리밍 단계1. 서버는 DESCRIBE 요청 받으면 미디어 상세 규격을 SDP (Session Description Protocol) 포맷으로 반환함2. 클라이언트와 서버가 RTP 데이터를 주고받을 전송 방식과 포트 번호 협상하고 세션 ID 결정하는 SETUP 요청 전송3. PLAY 요청 시 서버가 지정된 포트로 RTP 패킷 송출4. 이후 UDP/TCP로 구분되어 RTCP 주기적 전송TCP의 경우 RTP를 전송하는 포트의 단일 파이프라인에서 RTP와 RTCP를 인터리브드로 전송 / TCP의 경우는 연결형이므로 포트하나 열기 위해서 handshake를 RTSP, RTP, RTCP 용으로 3번 맺어야 함UDP의 경우 RTP 전용과 RTCP 전용을 따로 구분해서 전송gstreamer rtsp..
Gstreamer Tracing RTSP 수신 -> (pad) -> depay -> (pad) -> parse -> (pad) -> decode -> (pad) -> convert -> (pad) -> sink위와 같은 동작에서 예를 들어 디코더가 프레임 출력할 때는 내부적으로 아래와 같은 흐름임decoder src pad -> gst_pad_push(buffer) -> 다음 element의 sink pad여기에서 gst_pad_push는 버퍼 하나를 다음 요소로 전달하는 gstreamer의 핵심 동작,core tracing은 이와 같은 핵심 경로에 hook을 둬서 아래처럼 진행하게 함gst_pad_push(buffer) 실행 ├─ 원래의 버퍼 전달 처리 └─ 활성화된 tracer가 있으면 “pad-push 발생”을 tracer에 ..
WebrtcSource / WebrtcSink Module WebRtcVideoSink[입력] -> [h264/265 NALU 파싱] -> [RTP 패킷화] -> [RTP Caps 설정] -> [Queue (지연 제어/ 드롭)] -> [WebrtcBin (암호화 및 ICE 전송)]17: struct WebrtcSinkOptions {18: std::string stun_server = "";19: std::string turn_server = "";20: std::string codec = "h264"; // "h264" or "h265"21: 22: // 지연(Latency) 관련 옵션23: bool sync = false; // 프레임 동기화 여부 (false면 초저지연 즉시 전송)24: ..
필독 공식 문서 및 기술 레퍼런스 GStreamer Design: Latency and Synchronization핵심 내용: 라이브 소스(is-live=true)가 레이턴시 쿼리를 보내는 원리, 파이프라인이 전역 지연시간을 계산하여 싱크 엘리먼트에 분배하는 메커니즘, sync=false의 내부 동작 원리가 상세히 설명된 핵심 설계 문서입니다.GStreamer Design: Tracing Subsystem Guide핵심 내용: 코드 수정 없이 GST_TRACERS="latency" 환경변수로 각 엘리먼트 간 버퍼 체류 시간을 나노초 단위로 계측하는 공식 트레이서 매뉴얼입니다.RidgeRun GstShark Profiler Wiki핵심 내용: GStreamer 파이프라인 내부의 구간별 레이턴시와 프레임레이트를 실시간 그래프로 시각화해 주는..
Unity View Scene 개발자 편집 공간 Game 카메라가 비추는 모든 오브젝트가 보여지는 공간 실제 게임이 실행되는 공간 Hierarchy 모든 오브젝트를 이름으로 가지고 있음 오브젝트간 계층 관계 가능 자식은 부모의 이동에 따라 종속적으로 움직임 Inspecetor 오브젝트를 클릭 시 상세 정보를 나타내는 뷰 Project 리소스 파일을 관리 Console 오류 디버깅
Structural Testing 보호되어 있는 글입니다.
Unit Test 보호되어 있는 글입니다.
SW Dev and Testing Levels 보호되어 있는 글입니다.
Automated Software 검증 기술 보호되어 있는 글입니다.
Software Testing 보호되어 있는 글입니다.
HTML 파일 포맷 검출 로직 HTML HTML 파일은 악성코드 URL 등이 삽입되어서 호출 될 때 취약점 발생가능 공백 하나라도 바뀔 시, 다른 악성코드 URL로 수정될 시 MD5가 계속 바뀌므로 패턴 DB 수정이 계속 일어남 따라서 MD5 해시 값으로 악성코드 검사 불가능 정규 표현식 사용 r'\w+@\w.\w+' r은 파이썬에서 문자열을 임의로 해석하지 말라는 의미 없으면 \n을 엔터키로 해석 w는 영문자(소문자/대문자), 숫자, _(언더바) 표현 +는 1번 이상 등장 python에서 re 모듈로 정규식 적용 간편 re.findall(정규식, 문자열) 문자열에서 정규식 적용된 부분만 찾아서 반환 텍스트 파일인지 확인 파일은 텍스트 파일 or 바이너리 파일 p_text = re.compile(r'[\w\s!"#$%^\'()*+,\..
압축 파일과 임베딩 파일 압축 프로그램은 여러 개의 파일을 비손실 압축을 통해 하나의 파일로 만든다. 어떤 파일 내부에 또 다른 파일이 존재할 경우 임베딩 파일이라는 표현을 사용하기도 한다. 임베딩 파일을 압축 파일의 상위 개념으로 생각해도 좋음. hello 라는 문자열을 압축하면 문자열 길이가 5에서 13으로 증가하는 현상 발생. 이미 충분히 짧은 문자열은 압축을 하지 않고 압축 파일의 헤더만을 추가함. : 솔리드 압축 OpenAV 문서에서 압축 파일을 처리하는 방식 압축 파일들을 Virtual File System으로 취급 Virtual File System은 디렉토리, 파일의 개념이 존재함 Virtual File System Interface를 통해 폴더 내부로 이동하여 파일 I/O 처리 키콤 백신에서는 압축 파일을 임베딩..