피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Keyframe 정렬 기반 Stream Copy를 통한 무손실 비디오 분할 최적화
How to Split Video into Segments with FFmpeg (CLI + API)
AI 요약
Context
대용량 비디오 파일을 소셜 미디어 배포용 등 일정 길이의 세그먼트로 분할해야 하는 요구사항 발생. 일반적인 재인코딩 방식은 막대한 컴퓨팅 자원 소모와 처리 시간 증가라는 병목 지점 존재.
Technical Solution
- FFmpeg Segment Muxer(
-f segment)를 활용한 단일 패스 기반 멀티 파일 출력 구조 설계 -c copy옵션을 통한 Stream Copy 방식으로 디코딩 및 재인코딩 과정을 제거하여 처리 속도 극대화-reset_timestamps 1설정을 통해 각 세그먼트의 타임스탬프를 0으로 초기화함으로써 플레이어 재생 호환성 확보-segment_list기반의 CSV 매니페스트 생성을 통한 세그먼트 간 정밀한 시작/종료 시간 추적 메커니즘 구현- 정확한 분할 시간(Frame-accurate) 요구 시
-force_key_frames를 통한 강제 키프레임 삽입 및 재인코딩 전략 채택
실천 포인트
1. 처리 속도가 우선인 경우 `-c copy`와 Segment Muxer 조합 검토
2. 프레임 단위의 정밀한 컷팅이 필요한 경우 `-force_key_frames` 적용 및 재인코딩 비용 산정
3. 자동화 파이프라인 내 파일 충돌 방지를 위해 `-strftime 1` 기반의 타임스탬프 파일명 설계 적용
4. HTTP 타임아웃으로 인한 작업 중단을 방지하기 위해 롱런 작업(Long-running job)은 Async API 또는 Background Worker 구조로 분리