피드로 돌아가기
Dev.toInfrastructure
원문 읽기
FFmpeg 바이너리 관리 제거를 통한 Cloud API 기반 비디오 트랜스코딩 전환
How to Use FFmpeg with C# (No Installation Required)
AI 요약
Context
C# 환경에서 Xabe.FFmpeg 등 Wrapper 라이브러리를 통한 로컬 바이너리 제어 방식의 한계 분석. 환경별 바이너리 버전 불일치와 CPU 집약적 작업으로 인한 서버 리소스 고갈 및 배포 복잡성 문제 발생.
Technical Solution
- 로컬 Process.Start() 방식에서 REST API 기반의 Managed Infrastructure 구조로 전환
- HttpClient를 통한 비동기 Job 요청 및 Polling 메커니즘 기반의 상태 추적 설계
- Allowlisted flags 적용을 통한 커맨드 인젝션 방지 및 서버 사이드 검증 체계 구축
- 100MB 초과 대용량 파일 처리를 위한 Presigned URL 기반 3단계 업로드 워크플로우 도입
- 다중 입력 배열 처리를 통한 복잡한 Filter Graph 없이 비디오 Concatenation 구현
- API Key 기반 인증 및 서버 사이드 전용 호출 구조를 통한 보안 강화
실천 포인트
- Serverless 환경이나 Managed Hosting 사용 시 외부 바이너리 의존성 제거 검토 - CPU 부하가 큰 미디어 처리 작업의 경우 별도 API 또는 Microservice로 분리하여 스케일링 최적화 - 외부 API 호출 시 무한 루프 방지를 위한 Polling Timeout 및 Max Retry 횟수 설정 - 클라이언트 사이드(WASM, JS)가 아닌 Backend-to-Backend 통신으로 API Key 노출 방지