feat(import): cap downloaded video at FHD (1920x1080)
User wants YouTube imports capped at FHD: below-FHD sources stay as-is, above-FHD sources are forcefully downscaled to FHD preserving aspect. Two layers: - yt-dlp `-f bv*[height<=1080]+ba/b[height<=1080]/bv*+ba/b` strictly picks ≤1080 formats when available; falls back to anything otherwise. - ffmpeg post-process: probeVideoResolution checks output; if >FHD, add scale='min(1920,iw)':'min(1080,ih)':force_original_aspect_ratio=decrease to the existing 60fps vfilter chain (no extra encode pass — combined into the one we already run). trunc(/2)*2 ensures even dims for libx264. The post-process now triggers when either (fps<60) OR (res>FHD), so a 60fps 4K source that previously skipped re-encoding will now get downscaled. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -187,6 +187,9 @@ async function runJob(job: DownloadJob, bin: string): Promise<void> {
|
||||
'--no-warnings',
|
||||
'--no-playlist',
|
||||
'--newline',
|
||||
// 해상도 캡: FHD(≤1080p) 안에서만 비디오를 선택. FHD 가 아예 없는 영상은
|
||||
// 마지막 fallback 으로 무제한 best 를 받는다 (그 경우 후처리에서 FHD 로 다운스케일).
|
||||
'-f', 'bv*[height<=1080]+ba/b[height<=1080]/bv*+ba/b',
|
||||
// 가능한 한 부드러운 영상을 받기 위해 fps 를 최우선으로 정렬한다.
|
||||
// yt-dlp 기본 정렬은 fps 를 가중치로 안 써서 60fps 가 있어도 30fps 를 잡아오는 일이 잦다.
|
||||
// 우선순위: fps → 해상도 → 비트레이트 → 확장자.
|
||||
|
||||
Reference in New Issue
Block a user