피드로 돌아가기
Dev.toBackend
원문 읽기
DASH 프로토콜 분석 및 FFmpeg Stream Copy를 통한 TTFB 60% 개선
Инженерия загрузчика Bilibili: Разбор протокола DASH, сегментации M4S и мультиплексирования через FFmpeg
AI 요약
Context
Bilibili의 동적 적응형 스트리밍 구조로 인한 단순 파일 다운로드 불가능 및 오디오-비디오 분리 송출 방식의 복잡성 존재. CDN의 공격적인 403 Forbidden 차단 정책 및 BV-ID 기반의 비정형 식별 체계로 인한 데이터 접근 제약 발생.
Technical Solution
- Base-58 인코딩 및 XOR 비트 연산을 통한 AV-BV ID 상호 변환 알고리즘 구현으로 메타데이터 접근 경로 확보
- DASH 프로토콜 분석을 통한 playurl API 호출 및 고화질 비디오-오디오 M4S 세그먼트의 병렬 추출 설계
- Referer 헤더 강제 지정 및 User-Agent 로테이션, SESSDATA 쿠키 관리를 통한 CDN 보안 레이어 우회 전략 수립
- Asyncio 및 Httpx 기반의 비동기 I/O 모델 도입으로 메타데이터 획득 및 스트림 검증 프로세스의 병렬화 달성
- FFmpeg의
-c copy플래그를 활용한 트랜스코딩 없는 Stream Copy 방식으로 M4S 컨테이너를 MP4로 무손실 병합
실천 포인트
- CDN 차단 발생 시 Referer 및 User-Agent 풀링 전략 검토 - 대용량 미디어 병합 시 Transcoding 대신 Stream Copy 가능 여부 확인 - 다수의 외부 API 연동 시 Sync-blocking 방지를 위한 Async I/O 라이브러리 채택