반응형

전체 글 234

[MistServer] 스트림 관리 API 실습 (Python)

MistServer 스트림 관리 API 실습 (Python)"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 인증과 준비 - API 인증 방식, 요청 포맷, 공통 유틸2. 등록과 업데이트 - addstream3. 제어와 정리 - 삭제/강제종료/자동정리/세션종료4. 조회와 모니터링 - active_streams, stats_streams✔ 마무리 1. 인증과 준비▸ API2 스타일은 하나의 JSON에 "authorize": {...} 블록과 원하는 동작을 함께 보냅니다.▸ 비밀번호는 challenge 기반 이중 MD5를 사용합니다:password = MD5( MD5(원문비번) + challenge )(challenge는 서버가 ..

[MistServer] API 인증 방식과 HTTP·WebSocket API 비교

MistServer API 인증 방식과 HTTP·WebSocket API 비교"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. MistServer API 개요2. MistServer API 인증 방식 이해3. HTTP API vs WebSocket API✔ 마무리 1. MistServer API 개요MistServer는 HTTP API와 WebSocket API 두 가지 형태의 원격 제어 인터페이스를 제공합니다.모든 데이터는 JSON 형식으로 주고받으며, 기본 통신 포트는 4242입니다.API 엔드포인트는 다음과 같이 두 가지 버전이 있습니다. 🔸 /api▸ 전체 상태·설정·로그 등 모든 정보를 포함한 응답을 반환합니다.▸ ..

[MistServer] OBS Studio와 MistServer 3.8을 이용한 라이브 방송 실습(RTMP,WHIP)

OBS Studio와 MistServer 3.8을 이용한 라이브 방송 실습(RTMP,WHIP)"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 실습 준비하기2. OBS Studio → MistServer RTMP 송출 설정3. OBS Studio → MistServer WHIP 송출 설정4. MistServer에서 송출 확인 및 HLS/RTSP 변환✔ 마무리 1. 실습 준비하기이번 실습은 Windows PC에 설치된 OBS Studio를 사용해, Windows에 이미 설치된 MistServer 3.8로 RTMP 스트림을 송출하고, 이를 HLS/DASH로 변환해 재생까지 해보는 과정입니다.MistServer는 이미 설치 및 구동..

[MistServer] DVR(Time-Shift) 설정과 재생 실습

MistServer DVR(Time-Shift) 설정과 재생 실습"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. DVR 기능 개요와 활용 시나리오2. DVR 녹화 환경 구성하기3. DVR 저장 및 관리 설정 예시4. 녹화 스트림 재생하기5. Time-Shift 기능으로 과거 영상 재생✔ 마무리 1. DVR 기능 개요와 활용 시나리오MistServer의 DVR(Digital Video Recorder) 기능은 단순 녹화 기능을 넘어, 실시간 스트림과 과거 영상의 경계를 허무는 핵심 기술입니다. 라이브로 송출되는 스트림을 .ts(Transport Stream) 형식의 작은 조각(세그먼트)으로 나누어 저장하고, 이를 연결한 .m3..

[MistServer] Push 기능을 이용한 스트림 녹화 설정

MistServer에서 Push 기능을 이용한 스트림 녹화 설정"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 스트림 녹화와 Push 기능 개요2. Push 방식 비교: Regular Push vs Automatic Push3. 자동 녹화 파일명 변수 활용4. Automatic Push(자동 녹화) 설정 및 테스트5. 수동 녹화(Regular Push) 활용✔ 마무리 1. 스트림 녹화와 Push 기능 개요MistServer의 Push 기능은 수신한 스트림을 외부로 전송하거나 디스크에 저장하는 역할을 합니다.이를 통해 라이브 방송을 자동으로 녹화하여 VOD 파일로 보관하거나, 수신 스트림을 다른 서버/CDN으로 실시간 전송하는..

[MistServer] Input 실습: 다양한 입력 방식 설정과 스트림 결과 확인

MistServer Input 실습: 다양한 입력 방식 설정과 스트림 결과 확인"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. MistServer 스트림 입력 구조 이해하기2. Push Input 실습 - 외부 송출 장비 연동(FFmpeg 기반)3. File input 실습 - 로컬 저장 파일로 스트리밍 구성4. Pull Input 실습 - 외부 RTSP 소스 자동 수신 구성5. 다양한 Output URL로 스트림 결과 확인하기✔ 마무리 - 실무 환경에 맞는 Input 구성 전략 1. MistServer 스트림 입력 구조 이해하기MistServer의 스트리밍 파이프라인은 다음과 같은 세 단계로 구성됩니다.[Inputs] → ..

[MistServer] 설치 후 필수 기본 설정 가이드 (v3.8 기준)

MistServer 설치 후 필수 기본 설정 가이드 (v3.8 기준)"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 관리자 계정 생성 및 로그인2. 기본 프로토콜 활성화 및 설정 흐름3. 웹 UI 구성 요소 설명 (3.8 기준)4. MistServer 설정 저장 구조 이해5. 스트리밍 환경별 프로토콜 정리✔ 마무리 - 실무 운영을 위한 핵심 정리 1. 관리자 계정 생성 및 로그인MistServer는 설치 직후에는 관리자 계정이 없는 상태로 실행됩니다. 최초로 웹 UI에 접속하면 자동으로 관리자 계정 생성 화면으로 이동하게 됩니다. MistServer는 기본적으로 포트 4242를 사용하며, 설치 방식에 따라 다음과 같이 접속합..

[MistServer] 설치 실습 - Ubuntu에 직접 설치 vs Docker 컨테이너 실행

MistServer(3.8) 설치 실습 - Ubuntu에 직접 설치 vs Dokcer 컨테이너 실행"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. MistServer란? - 용도 및 지원 프로토콜, 주요 특징 소개2. MistServer 설치 실습 - Ubuntu3. MistServer 설치 실습 - Docker 환경 구성✔ 마무리 1. MistServer란? - 용도 및 지원 프로토콜, 주요 특징 소개MistServer는 실시간 라이브 스트리밍과 주문형 비디오(VOD) 기능을 모두 지원하는 고성능 오픈소스 미디어 서버입니다. 다양한 인풋 및 아웃풋 프로토콜을 유연하게 처리할 수 있으며, 모듈형 아키텍처를 기반으로 설계되어 ..

[FFmpeg] 인코딩 실습: CPU(libx264)와 CUDA(h264_nvenc) 비교

[FFmpeg] 인코딩 실습: CPU(libx264)와 CUDA(h264_nvenc) 비교 📚 목차1. libx264(CPU) 기반 트랜스코딩 실습2. h264_nvenc(CUDA) 기반 트랜스코딩 실습3. CPU(libx264)와 GPU(h264_nvenc) preset 비교✔ 마무리 - 실시간 인코딩 전략 실시간 RTSP 스트림을 초저지연 환경에서 다른 장치로 송출하려면 인코딩 지연 최소화가 핵심입니다.하지만 인코딩 방식에 따라 시스템 부하와 지연 시간이 크게 달라집니다.libx264 (CPU 기반): ▸ 별도 하드웨어 없이 누구나 쉽게 실행 가능.▸ 하지만 고화질·다중 스트림에서는 CPU 부하가 폭증. h264_nvenc (GPU 기반): ▸ NVIDIA GPU를 활용한 하드웨어 인코딩. 초저지연..

[FFmpeg] RTSP 스트림을 fMP4로 변환해 초저지연 TCP 전송하기

[FFmpeg] RTSP 스트림을 fMP4로 변환해 초저지연 TCP 전송하기 📚 목차1. RTSP 입력 스트림을 안정적으로 수신하는 FFmpeg 옵션 구성법2. 실시간 스트리밍에 최적화된 fMP4 포맷 설정 방법3. fMP4 스트림 송출하기 (TCP 소켓 vs Pipe 출력 방식 비교)✔ 마무리 - 실시간 스트림 파이프라인의 완성 이 글에서는 FFmpeg 7.x를 활용해 RTSP 입력을 받고, 지연 시간을 최소화하면서 TCP 소켓으로 fMP4 스트림을 내보내는 과정을 명령어 중심으로 실습합니다.복잡한 개념은 최소화하고, 바로 적용 가능한 명령어와 결과를 중심으로 정리합니다. 1. RTSP 입력 스트림을 안정적으로 수신하는 FFmpeg 옵션 구성법실시간 파이프라인을 구성할 때 가장 먼저 챙겨야 할 부분..

[FFmpeg] SHA-256 Digest 인증 대응 FFmpeg 7.1 정적 빌드 – MinGW64 + CUDA + 인증 로직 패치

[FFmpeg] SHA-256 Digest 인증 대응 FFmpeg 7.1 정적 빌드 – MinGW64 + CUDA + 인증 로직 패치"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. RTSP Digest 인증 오류 원인: SHA-256 미지원 이슈 분석2. FFmpeg 소스 코드 수정: SHA-256 Digest 인증 알고리즘 수동 구현3. MinGW64 환경에서 FFmpeg 정적 빌드: CUDA 및 코덱 포함 구성4. RTSP 서버 인증 테스트: SHA-256 Digest 인증 처리 결과 확인✔ 마무리 1. RTSP Digest 인증 오류 원인: SHA-256 미지원 이슈 분석FFmpeg 7.1 버전에서 RTSP 프로토콜을 ..

[FFmpeg] CUDA 가속 포함 FFmpeg 7.1 정적 빌드 – MinGW64 + libx264/x265 + NVENC

[FFmpeg] CUDA 가속 포함 FFmpeg 7.1 정적 빌드 – MinGW64 + libx264/x265 + NVENC"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 개발 환경 구성 및 CUDA Toolkit 설정2. Clang 컴파일러 설치: mingw-w64-x86_64-clang3. nv-codec-headers 다운그레이드 및 수동 설치4. FFmpeg 7.1 빌드 설정: CUDA 가속 + 정적 링크5. 빌드 완료 및 ffmpeg.exe 생성 확인6. CUDA 인코딩 테스트: HEVC_NVENC 실습 예제✔ 마무리 1. 개발 환경 구성 및 CUDA Toolkit 설정본 실습의 목표는 MSYS2 기반의 MinGW6..

[Python요약]7. Python 자료형 정리 : List, Tuple, Dictionary, Set, Sequence, Range

Python 자료형 정리 : List, Tuple, Dictionary, Set, Sequence, Range목차 1. 리스트(List) : 순서 있는 변경 가능한 컬렉션 2. 튜플(Tuple) : 불변의 순서 있는 컬렉션 3. 딕셔너리(Dictionary) : 키-값 쌍의 저장소 4. 집합(Set) : 중복 없는 데이터 모음 5. List vs Tuple vs Set vs Dictionary 비교 6. 시퀀스(Sequence) : 순서가 있는 자료형의 공통 기반 7. range 객체로 숫자 시퀀스 만들기 8. del 키워드로 항목 제거하기 관련 글 링크 1. 리스트(List) : 순서 있는 변경 가능한 컬렉션리스트는 여러 개의 값을 순서대로 저장할 수 있는 가변(mutable) 시퀀스 자료형입니다.파..

3.SW개발/Python 2025.11.05

[Python요약]6. Python 병렬 처리 : GIL, threading, asyncio, multiprocessing

Python 병렬 처리 : GIL, threading, asyncio, multiprocessing 목차 1. 병렬처리란? 2. GIL(Global Interpreter Lock) 개념 3. Threading의 장단점 및 사용 예시 4. Asyncio의 장단점 및 사용 예시 5. Multiprocessing의 장단점 및 사용 예시 6. Threading vs Asyncio vs Multiprocessing 비교 관련 글 링크 1. 병렬처리란?병렬 처리(Parallel Processing)란 여러 작업을 동시에 실행시켜 전체 작업의 처리 속도를 높이는 기법입니다.현대 컴퓨터는 멀티코어 CPU와 고속 I/O 장치를 제공하기 때문에, 이 성능을 제대로 활용하려면 병렬 처리 구조가 필수적입니다.Python에..

3.SW개발/Python 2025.11.05

[Python요약]5. Python 예외(Exception) 처리 : try-except-finally, with

예외 처리는 프로그램의 안정성과 복원력을 높이는 데 핵심적인 역할을 합니다. 하지만 try-except 구문을 잘못 사용하면 오히려 버그를 숨기거나 성능 저하를 유발할 수 있습니다. Python 예외(Exception) 처리 : try-except-finally, with목차 1. 기본구조: try-except-finally 2. 사용자 정의 예외(Custom Exception) 만들기 3. 잘못된 예외 처리 예시와 개선 방법 4. finally 사용법과 예시 5. with 사용법과 예시 : Context Manager 6. 사용자 정의 context manager(with) 만들기: __enter__, __exit__ 7. with vs try-finally 비교 관련 글 링크 1. 기본구조: ..

3.SW개발/Python 2025.11.05

[Python요약]4. Python 함수구조, 함수인자, 람다함수, 클로저, 고차함수, 데코레이터

Python 함수구조, 함수인자, 람다함수, 클로저, 고차함수, 데코레이터 목차 1. 함수 구조 2. 함수의 인자(Arguments) 3. 전역변수와 지역변수 4. 람다함수(Lambda function) 5. 클로저(Closure) 6. 고차 함수(High-Order Function) 7. 함수 데코레이터(Decorator) 관련 글 링크 1. 함수 구조Python에서 함수는 입력값을 받아 로직을 수행하고, 출력값을 반환하는 코드 블록입니다.반복되는 코드를 줄이고, 코드를 모듈화하여 유지보수를 쉽게 해줍니다.▶ 함수 정의 문법def 함수이름(매개변수1, 매개변수2, ...): """선택적으로 함수 설명""" 실행할 코드 return 결과값 ▶ 함수 호출 방법함수이름(인자1, 인자2) ▶..

3.SW개발/Python 2025.11.05

[Python요약]3. Python 클래스 정리: 클래스, 상속, 메서드, 접근제어

Python 클래스의 기본 구조부터 생성자, 메서드, 상속, 소멸자까지 핵심 개념을 정리했습니다.실무에 바로 적용 가능한 예제와 함께 __init__, self, __del__, __enter__, __exit__까지 전체 흐름을 이해할 수 있습니다.Python 클래스 정리: 클래스, 상속, 메서드, 접근제어 목차 1. Python 클래스 기본 구조 2. 생성자(__init__), 소멸자(__del__), self 이해하기 3. 인스턴스 변수 vs 클래스 변수 4. 메서드 종류(인스턴스, 클래스, 정적) 5. 상속과 메서드 오버라이딩 6. 캡슐화와 접근 제어(_와 __ 차이) 7. 특수 메서드(__str__, __repr__, __eq__, __lt__, __len__, __contains__) 8. 컨..

3.SW개발/Python 2025.11.05

[Python요약]2. Python 변수 정리: 지역변수, 전역변수, global, 클래스 변수

Python 변수 정리: 지역변수, 전역변수, global, 클래스 변수목차 1. 지역변수 vs 전역변수 2. global 키워드의 역할과 주의사항 3. nonlocal 키워드 4. 변수처럼 다루는 함수-일급객체로서의 함수 5. 클래스 변수 vs 인스턴스 변수 관련 글 링크 1. 지역변수 vs 전역변수Python에서 변수는 어디에서 선언되었는지에 따라 사용 가능한 범위(Scope)가 결정됩니다.이 범위에 따라 변수는 전역변수(Global Variable)와 지역변수(Local Variable)로 나뉘며, 각각 다음과 같은 특징이 있습니다. ◆ 전역변수(Global Variable)함수 외부에서 선언된 변수입니다.해당 모듈(파일) 전체에서 어디서든 접근할 수 있습니다.다른 함수나 블록에서도 읽기(rea..

3.SW개발/Python 2025.11.05

[Python요약]1. Python 모듈, 패키지, import 개념 정리: __init__.py

Python 프로젝트를 구조화하거나 규모가 커질수록 모듈, 패키지, 그리고 import에 대한 정확한 이해가 필수입니다. 이 글에서는 모듈과 패키지의 개념부터 __init__.py의 역할, import 에러가 발생하는 이유를 예제와 함께 정리합니다.모듈, 패키지, import 개념 정리: __init__.py목차 1. 모듈(Module)과 패키지(Package)란? 2. __init__.py의 의미와 역할 3. import 대상 및 문법 정리 4. 디렉토리 import 구조 예시 관련 글 링크 1. 모듈(Module)과 패키지(Package)란?“모듈(Module)”과 “패키지(Package)” 개념은 Python 코드의 구조화와 재사용성 향상에 핵심적인 역할을 합니다◆ 모듈(Module)Python ..

3.SW개발/Python 2025.11.05

[FFmpeg] FFmpeg 7.1 + H.265(libx265) 지원 정적 빌드 – 기존 MinGW64 환경 확장

[FFmpeg] FFmpeg 7.1 + H.265(libx265) 지원 정적 빌드 – 기존 MinGW64 환경 확장"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다." 📚 목차1. 목표 및 환경 개요: FFmpeg 정적빌드 + H.265 지원2. 패키지 설치 실패 원인 분석: mingw-w64-x86_64-x265와 버전 충돌3. libx265 4.0 직접 빌드: 정적 라이브러리로 컴파일하기4. FFmpeg 7.1 정적 빌드: libx265 포함 구성 및 설치5. 정적 링크 오류 해결: x265.pc 수정으로 DLL 종속 제거6. 정상 빌드 확인 및 H.265 스트리밍 인코딩 테스트✔ 마무리 1. 목표 및 환경 개요: FFmpeg 정적 빌드 ..

반응형