전체 글 (154) 썸네일형 리스트형 적응형 비트레이트 스트리밍(Adaptive Bitrate Streaming) 설계 적응형 비트레이트 스트리밍(Adaptive Bitrate Streaming) 프로토콜공통 구조 요약구성요소설명Manifest (플레이리스트)어떤 세그먼트들이 있는지 정의한 메타파일. 예: .m3u8, .mpdSegment (세그먼트)실제 미디어 데이터 (영상/음성). 일반적으로 짧은 시간 단위로 나눔 (예: 4~10초) 적응형 스트리밍 동작방식개념 : "같은 시점"의 영상에 대해 서로 다른 비트레이트 버전의 세그먼트들이 존재하고, 네트워크 상태에 따라 클라이언트가 선택해서 요청하는 방식이에요. 세그먼트 구조 (Sequence 번호는 동일, 비트레이트별로 따로 존재)예를 들어, 다음과 같이 여러 화질 버전이 있을 수 있어요:비트레이트세그먼트 이름 (예시)240p (300kbps)chunk_001_240.m.. 테스트의 종류와 선택 일반적으로는 단위 테스트, 통합 테스트, API 테스트 모두 시행하는 것이 이상적인 테스트 전략입니다. 왜 세 가지를 모두 사용하는가? 테스트 종류 목적어떤 걸 확인하나?단위 테스트개별 클래스나 메서드의 로직이 정확한지 검증비즈니스 로직, 조건 분기, 예외처리 등통합 테스트여러 빈(서비스 ↔ 레포지토리 ↔ 설정)이 잘 연결됐는지 검증Bean 주입, 설정값, 실제 외부 의존성과의 통합 작동API 테스트외부 사용자의 시각에서 API가 제대로 동작하는지 검증요청/응답 포맷, HTTP 상태코드, 검증 오류 등 이상적인 테스트 방향 규모 / 상황 테스트 전략 현실화1인 개발 / 사이드 프로젝트단위 + API 테스트 위주. 통합 테스트는 최소한으로.스타트업 / MVP 단계빠른 개발을 위해 단위 or API.. HLS 프로토콜 튜닝 FFmpeg HLS 튜닝 플래그-hls_time : 각 .ts 세그먼트의 길이(초),-hls_time 4 → 4초 단위 분할-hls_list_size : .m3u8에 유지할 세그먼트 개수-hls_list_size 5 → 마지막 5개만 유지 Frame-based I-frame Spacing-g 30 : Setting maximum distance between I-frames. Setting GOP size (Group of Pictures). Insert a keyframe every 30 frames -keyint_min 30 : Sets the minimum number of frames before another keyframe can appear. Time-based I-frame Spacin.. Encoding, Decoding, Frames 개념 효율적인 비디오 파이프라인 정리단계설명필요한 요소🎥 캡처 (입력)카메라에서 실시간 영상 데이터를 가져옴빠른 접근 가능한 장치 (예: /dev/video0, v4l2, avfoundation)🎞 인코딩원본 영상을 압축해서 전송/저장하기 좋게 변환고효율 코덱 사용 (예: libx264, nvenc, vaapi 등 하드웨어 가속)🧠 디코딩압축된 영상 데이터를 다시 프레임으로 복원하드웨어 가속 디코더 사용 시 성능 향상🔄 트랜스코딩 / 스트리밍스트리밍 형식(HLS 등)으로 재가공적절한 키프레임 간격, GOP 설정, 버퍼 조절 등📤 전달 (브라우저/플레이어로).ts 세그먼트와 .m3u8 재생 목록을 클라이언트에 제공HLS 세그먼트 생성, 재생 목록 실시간 What Are Video Frames?When.. 영상 ffmpeg 인코딩 후 HLS 송출시 Latency 문제 개선 현상 : 실시간 관제를 위한 서비스에서 관제 영상이 HLS로 송출될때 1분이상 지연된 영상이 송출됨원인 : ffmpeg에서 인코딩할 시에 영상segment가 25초짜리 3개의 ts 파일로 인코딩 되어 있어 75초 이전의 영상이 송출됨심층원인 : 인코딩 전의 영상소스가 rtsp로 25초당 1번꼴로 keyframe이 삽입되어 파일 인코딩을 25초 단위로 할 수 밖에 없었음해결책 : 실시간 관제 서비스이기때문에 연결의 안정성보다는 실시간성이 중요하기때문에 끊김을 감수하더라도 ts파일을 2초, 2개로 설정심층원인 해결책 : ffmpeg를 사용해서 keyframe을 1초당 30번으로 강제변환하여as is ffmpeg -i rtsp://127.0.0.1:7682/Test-01 \-c:v copy -c:a copy.. 영상 스트리밍 처리과정 스트리밍 구조사용자가 데이터를 한꺼번에 받지 않고, 순차적으로 실시간에 가깝게 받아보는 시스템의 전체 구성“스트리밍 구조”는 단순히 영상만이 아니라,"데이터(특히 미디어)가 지속적으로 흐르는 시스템 구조"를 말합니다.일반 HTTP vs 스트리밍"스트리밍"은 단순 HTTP처럼 한 번에 요청/응답하는 구조가 아니라,데이터가 계속 흘러가는(지속 전달되는) 구조를 의미해요.그리고 이 흐름은 "실시간성"과 아주 밀접한 관계를 맺고 있습니다.항목일반HTTP 스트리밍구조요청 → 응답 → 끝연결 후 지속적으로 데이터 전송데이터 흐름한 번에 받음조각/이벤트 단위로 나눠서 받음연결 방식단발성 (short-lived)장기 연결 or 연속 요청예시게시글 API, 로그인영상, 채팅, 주식, 실시간 지도 등 사용예시영상 스트리밍.. 쉘 커맨드 , 쉘 스크립트 리눅스 쉘 쉘은 사용자가 운영체제와 상호작용할 수 있도록 명령어를 입력받아 실행해주는 프로그램입니다.모든 것은 파일이라는 철학 아래에서 인터렉션이 파일을 읽고 쓰는 것처럼 이루어져있음 (마우스, 키보드 디바이스 관련 기술도 포함)리눅스의 철학은 여러 기본단위의 프로그램들이 유기적으로 각자의 역할을 하면서, 이를 조합하여 전체 시스템이 동작하도록함.(ls | grep의 경우에도, lsgrep이란 명령어가 아닌 ls와 grep을 유기적으로 조합하여 사용함)리눅스에는 여러가지 shell이 있지만 ubuntu에서도 그렇고 bash shell이 범용으로 쓰이기에 bash 명령어 위주로 학습할것.Bash: 기본적인 쉘로, 많은 시스템에서 기본으로 제공됩니다. 간단하고 강력하지만, Zsh에 비해 기능이 제한적입니다... 프론트엔드 환경설정 및 배포 1. NVM (Node Version Management)한 컴퓨터에서 여러 버전의 Node.js를 사용 가능하게 해주는 버전 관리 도구Node.js는 글로벌 설치가 기본이나 프로젝트마다 요구하는 버전이 다를 수 있음. 프로젝트마다 다른 Node 버전을 요구할 때 필수 도구입니다. 2.Node.js정의: JavaScript 런타임 환경 (브라우저가 아닌 환경에서 JS 실행 가능하게 해줌)역할:yarn, npm 같은 패키지 매니저 실행yarn dev, yarn build 같은 스크립트 실행프론트 빌드(예: yarn build)와 dev 서버 실행(예: yarn dev)을 가능하게 함.관리 방법: nvm 사용해서 버전 컨트롤 (.nvmrc로 특정 버전을 명시하여 사용 선언됨)3. 패키지 매니저정의: 외부 .. 이전 1 2 3 4 ··· 20 다음