기술 · 실용 가이드
yt-dlp로 받은 동영상에 소리가 없나요? 다시 받기 전에 스트림과 FFmpeg를 점검하세요
yt-dlp 결과물에 소리가 없다고 해서 다운로드가 실패한 것은 아닙니다. 파일과 상세 로그를 보존하고 실제로 존재하는 스트림을 확인한 다음, 영상 전용 형식 선택, 생략된 병합, 재생 호환성 문제를 구분한 뒤 다시 다운로드할지 결정하세요.

다운로드한 동영상이 무음이라면 가장 안전한 첫 조치는 다시 다운로드하는 것이 아닙니다. 기존 결과물, 분리된 오디오·비디오 구성 파일, 정확한 명령어, 상세 로그를 모두 보관하세요. 이 자료를 함께 보면 영상 전용 형식을 골랐는지, yt-dlp가 FFmpeg를 찾아 병합을 시도했는지, 최종 파일에 오디오는 있지만 특정 플레이어가 디코딩하지 못하는지 판단할 수 있습니다.
yt-dlp 문서는 여러 사이트가 더 높은 품질의 영상과 오디오를 별도 스트림으로 제공한다고 설명합니다. 형식 표에는 이 스트림들이 따로 표시되며, 합치려면 FFmpeg가 필요합니다. 실제 프로젝트 이슈도 FFmpeg가 설치되어 있어도 영상 전용 형식 ID 하나를 명시적으로 선택하면 소리 없는 동영상이 나올 수 있음을 보여 줍니다. FFmpeg는 선택되지 않은 오디오 스트림을 만들어 낼 수 없습니다.
이 가이드는 저장할 권한이 있는 미디어를 대상으로 합니다. DRM이나 접근 통제 우회는 다루지 않습니다. 목표는 짧은 증거 기록과 최소한의 다음 조치를 정하는 것이며, 모든 사이트에 맞는 단 하나의 선택자를 약속하는 것이 아닙니다.
1. 명령어를 바꾸기 전에 증거를 고정하세요
무음 결과물과 같은 기본 이름을 가진 오디오·비디오 구성 파일을 작업 폴더로 복사합니다. .f137, .f140, .video, .audio, .webm, .m4a 같은 접미사가 붙은 파일을 덮어쓰거나 지우지 마세요. 이름은 달라질 수 있지만, 남아 있는 한 쌍을 미디어를 다시 받지 않고 재사용할 수 있습니다.
정확한 yt-dlp 명령어, 페이지 URL, yt-dlp 버전, 운영체제, 처음 시험한 플레이어를 기록합니다. 가능하면 정보 조회 명령만 상세 출력으로 다시 실행하세요: `yt-dlp -v -F URL`. `-F` 표는 읽기 전용이며 사용 가능한 행을 나열하고, 상세 헤더는 FFmpeg와 ffprobe를 찾았는지도 보여 줍니다.
지원 글에 계정 쿠키, 서명된 미디어 URL 또는 다른 인증 정보를 붙이지 마세요. 증거 기록에서 비밀 정보를 제외하세요.
2. 이미 디스크에 있는 파일을 검사하세요
확장자만 보고 컨테이너 내용을 판단하지 말고 스트림을 검사합니다. ffprobe를 사용할 수 있다면 `ffprobe -hide_banner -show_streams -show_format "FILE"` 을 실행하세요. 출력에서 `codec_type=video` 스트림과 `codec_type=audio` 스트림이 각각 하나 이상 있는지 찾습니다. MP4, MKV, WebM 같은 컨테이너에는 둘 다, 하나만, 또는 어느 것도 없을 수 있습니다.
파일에 영상은 있지만 오디오 스트림이 없다면 플레이어를 먼저 의심할 이유가 적습니다. 형식 선택과 병합 증거로 넘어가세요. 오디오 스트림이 있다면 다시 받기 전에 다른 최신 플레이어에서도 시험하고, 스트림이 비활성화되었거나 지원되지 않거나 비정상적으로 매핑됐는지 확인하세요.
ffprobe가 파일 잘림이나 읽기 실패를 보고하면 별도의 무결성 분기로 보존하세요. 손상된 컨테이너와 정상적인 영상 전용 스트림은 같은 진단이 아닙니다.
3. 형식 ID만 보지 말고 선택된 행을 읽으세요
`yt-dlp -F URL` 에서 `-f` 뒤에 사용한 각 ID의 행을 찾아 오디오와 비디오 열을 읽습니다. video only로 표시된 행에는 그 자체로 병합할 오디오 트랙이 없고, audio only 행만으로는 화면을 만들 수 없습니다. 이 가이드에서 검토한 프로젝트 이슈는 FFmpeg가 이미 감지된 상태에서도 영상 전용 ID를 명시해 정확히 이런 문제가 발생한 사례입니다.
영상 전용 ID 하나를 선택했다면 `VIDEO_ID+AUDIO_ID` 같은 선택자로 오디오 행과 짝을 이루거나, 해당 URL에서 무엇으로 해석되는지 확인한 뒤 `bv*+ba/b` 같은 문서화된 정책 선택자를 사용하세요. 복사한 숫자 ID가 다른 사이트나 업로드에서도 같은 코덱과 구성을 뜻한다고 가정하지 마세요.
실제로 다시 받기 전에 `yt-dlp -v -f "SELECTOR" --simulate URL` 로 선택 결과를 미리 보고 상세 출력의 선택 행을 저장하세요. 시뮬레이션은 미디어를 다운로드하지 않고 선택 로직을 확인할 수 있습니다.
4. 형식 선택과 FFmpeg 탐색·병합을 분리하세요
영상과 오디오를 더하는 선택자도 일반적인 병합 경로에는 FFmpeg가 필요합니다. 상세 출력에서 yt-dlp가 감지한 FFmpeg와 ffprobe 버전을 표시하는지 확인하세요. FFmpeg가 없다고 나오면 yt-dlp를 실행하는 것과 같은 셸에서 `ffmpeg -version` 과 `ffprobe -version` 을 확인합니다. 그래픽 터미널, 스케줄러, 서비스는 대화형 셸과 PATH가 다를 수 있습니다.
FFmpeg가 PATH 밖에 설치되어 있다면 yt-dlp의 문서화된 `--ffmpeg-location` 에 디렉터리 또는 실행 파일 경로를 지정하세요. 메시지만 없애려고 관계없는 바이너리의 이름을 바꾸거나 검증되지 않은 실행 파일을 받지 마세요.
FFmpeg를 찾았는데도 병합하지 않았다면 로그에서 두 구성 스트림의 다운로드 기록과 merger/postprocessor 줄을 확인하세요. 의도적으로 결합 형식 한 행을 선택한 명령은 병합이 필요 없을 수 있습니다. 반대로 영상만 선택한 명령은 FFmpeg를 다시 설치해도 고칠 수 없습니다.
5. 다시 받기 전에 완전한 구성 파일을 재사용하세요
작업 폴더에 같은 항목의 완전한 영상 전용 파일과 오디오 전용 파일이 있다면 둘 다 검사하세요. 하나에는 영상, 다른 하나에는 오디오가 있고 어느 것도 잘리지 않았는지 확인합니다. 실험하기 전에 안정적인 이름으로 복사하세요.
수동 리먹싱으로 기존 스트림을 사용할 수 있는지 시험할 수 있습니다: `ffmpeg -i "VIDEO_FILE" -i "AUDIO_FILE" -map 0:v:0 -map 1:a:0 -c copy "merged-test.mkv"`. 새 출력 파일명을 사용하세요. MKV는 스트림 복사로 재인코딩을 피하고 많은 코덱 조합을 담을 수 있어 진단용으로 유용하지만, 모든 대상 기기에서 해당 코덱을 지원한다는 보장은 아닙니다.
`merged-test.mkv` 를 검사하고 두 개의 최신 플레이어에서 재생하세요. 두 스트림이 모두 있고 소리가 난다면 네트워크 다운로드를 반복할 필요가 없을 수 있습니다. FFmpeg가 호환되지 않거나 손상된 입력을 보고하면 오류를 보존하고 무결성 분기로 돌아갑니다.
6. 증상 표로 다음 조치를 고르세요
관찰한 파일마다 한 행씩 기록합니다. “오디오 없음”은 ffprobe가 오디오 스트림을 찾지 못했다는 뜻이어야 하며, “오디오는 있지만 한 플레이어에서 무음”은 다른 행입니다. 이렇게 구분하면 플레이어 문제를 선택 문제로 잘못 처리하지 않습니다.
선택 행이 영상 전용이고 오디오 구성 파일도 없다면 선택자를 고치고 시뮬레이션한 뒤 통제된 재시도를 한 번만 하세요. 짝을 이루는 구성 파일이 있고 검사 결과가 정상이면 복사본을 먼저 리먹싱합니다. 최종 파일에 오디오가 있지만 한 플레이어에서만 무음이라면 플레이어와 코덱 호환성을 시험하세요. 로그에서 두 스트림을 모두 선택했지만 병합이 실패했다면 형식을 무작위로 바꾸지 말고 FFmpeg 탐색 또는 후처리의 정확한 오류를 고칩니다.
증거 | 가장 가능성 높은 분기 | 가장 작은 다음 조치 최종 파일에는 영상만 있고 선택 행도 video only | 형식 선택 | 영상+오디오 정책을 선택하거나 시뮬레이션 완전한 영상 파일과 오디오 파일이 따로 남아 있음 | 병합 생략 또는 실패 | 복사본을 검사해 새 파일로 리먹싱 최종 파일에 두 스트림이 있지만 한 플레이어에서 무음 | 재생 또는 코덱 호환성 | 다른 플레이어에서 시험하고 오디오 코덱·매핑 검사 상세 헤더가 FFmpeg를 찾지 못함 | 도구 탐색 | 같은 셸의 PATH를 확인하거나 --ffmpeg-location 지정 검사에서 잘림 또는 유효하지 않은 데이터가 보고됨 | 파일 무결성 | 오류를 보존하고 유일한 복사본을 덮어쓰지 않음
7. 중단 조건과 지원 요청용 기록
선택된 형식 행을 모르거나, 원본 URL이 더 이상 같은 항목을 가리키지 않거나, 기존 구성 파일을 복사하지 않았거나, 상세 로그에서 인증 정보를 제거하지 않았다면 재시도 전에 멈추세요. 미디어를 저장할 권한이 없다면 중단하고 허가를 구합니다.
지원 요청에는 비밀 정보를 제거한 명령어, yt-dlp 버전, 운영체제, 관련 `-F` 행, FFmpeg 감지 줄, ffprobe 스트림 요약, 구성 파일명, 첫 병합 또는 재생 오류를 포함하세요. 관찰과 결론은 따로 적습니다.
통제된 수정 뒤에는 최종 파일을 다시 검사하고 두 개의 최신 플레이어에서 재생하세요. 파일명이 생겼다는 사실만으로 다운로드가 검증되지는 않습니다. 합격 조건은 읽을 수 있는 영상 스트림 하나, 읽을 수 있는 오디오 스트림 하나, 의도한 환경에서의 정상 재생입니다.
자주 묻는 질문
FFmpeg가 설치되어 있는데도 yt-dlp가 소리 없는 동영상을 받은 이유는 무엇인가요? 명시한 형식 ID가 영상 전용일 수 있습니다. FFmpeg는 선택된 스트림을 합칠 수 있지만 선택자가 요구하지 않은 오디오를 추가할 수는 없습니다. 선택 행과 상세 로그를 먼저 확인하세요.
분리된 오디오와 비디오 파일을 삭제해야 하나요? 아니요. 먼저 검사하고 복사하세요. 둘 다 완전하고 같은 항목에 속한다면 네트워크 다운로드를 반복하지 않고 리먹싱할 수 있습니다.
MP4 확장자는 파일에 오디오가 있다는 증거인가요? 아닙니다. 컨테이너 이름은 어떤 스트림이 들어 있는지 증명하지 않습니다. ffprobe나 다른 스트림 검사기를 사용하세요.
`bestvideo+bestaudio` 가 항상 올바른 선택자인가요? 모든 경우에 맞는 선택자는 없습니다. 현재 형식 표를 확인하고 특정 항목과 대상 기기에 맞는 yt-dlp의 문서화된 선택 정책과 대체 규칙을 사용하세요.
