피드로 돌아가기
Dev.toBackend
원문 읽기
DASH 스트림 분석과 FFmpeg Muxing을 통한 TTFB 60% 개선
Ingeniería Detrás de un Descargador de Bilibili: Desafíos con DASH, M4S y Procesamiento de Media en Python
AI 요약
Context
Bilibili의 복잡한 DASH 아키텍처로 인한 비디오-오디오 분리 전송 및 Base-58 인코딩 기반 BV ID 시스템의 분석 난이도 증가. 단순 스크래핑으로는 403 Forbidden 에러 및 저화질 강제 전환이라는 기술적 제약 존재.
Technical Solution
- Base-58 디코딩 및 Bitwise XOR 연산을 통한 AV/BV ID 간의 양방향 변환 로직 구현
- DASH 프로토콜 분석을 통해 분리된 M4S 비디오 및 오디오 스트림의 개별 Endpoint 추출 및 병렬 다운로드 구조 설계
- Referer 검증 및 User-Agent Pool 적용과 SESSDATA 쿠키 관리를 통한 CDN의 Anti-Scraping 우회 및 고화질 권한 확보
- Httpx 및 Asyncio 기반 Event Loop 도입으로 메타데이터 조회 및 스트림 검증 단계의 I/O 병목 제거
- FFmpeg의
-c copy플래그를 활용한 Stream Copy 방식의 Muxing으로 재인코딩 없는 Lossless MP4 병합 공정 구축
실천 포인트
- 미디어 병합 시 재인코딩이 불필요한 경우 FFmpeg의 `-c copy` 옵션 검토 - 외부 API 호출 단계가 많은 시스템은 Asyncio/Httpx를 통한 병렬 요청 구조 설계 - CDN 우회를 위한 Header Spoofing 및 세션 쿠키 관리 전략 수립