나는 youtube-dl 문서를 따랐다. 내가 원했던 것이 정확히 무엇이라고 생각했는지 찾았지만 문제가 생겼고 youtube-dl의 고급 옵션이 내 문제를 해결하는 데 도움이 될 수 있는지 궁금합니다. 고급 옵션 중 일부에 대해서는 문서가 많지 않으며 여전히 Python을 배우고 있으므로 소스 코드를 살펴 보는 것이 노력이었습니다. ㅋ.
목표:
내 현재 명령 :
youtube-dl -f "bestvideo+bestaudio[ext=m4a]/best" --embed-thumbnail --add-metadata [url]
문제 :
"bestvideo"가 webm 파일 인 경우 ... WEBM + M4A가 호환되지 않고 MP4가 아닌 MKV 파일로 병합 될 것임을 감지합니다 (일반적으로). 이 단계는 AtomicParsley를 통해 썸네일 임베딩 전에 수행되므로 ... MKV는 썸네일 임베딩에 지원되지 않기 때문에 오류가 발생합니다.
업데이트 : 나중에 위의 진술이 정확하지 않다는 것을 기억했습니다. 실제로 일어난 일은 WEBM 비디오가 제대로 작동하고 있었지만 문제를 일으키는 것은 WEBM 오디오였습니다. YouTube는 WEBM 오디오에 Opus 인코딩을 사용하는데, youtube-dl이 두 파일을 병합하려고하면 ffmpeg가 MP4 컨테이너 내에서 WEBM / Opus를 안전하게 허용하지 않기 때문에 MP4 대신 MKV 컨테이너를 사용해야합니다. 이 변환을 강제하려면 ffmpeg에 "--strict 2"를 추가해야합니다 (youtube-dl 매개 변수를 통해 전달할 수 있음). 내 해결책은 "bestaudio [ext = m4a]"를 사용하여 WEBM 오디오 형식을 제외하는 것이 었습니다. 이 작업을 수행 한 후에는 youtube-dl 명령에 "--merge-output-format mp4"를 추가하기 만하면되었습니다 (표시된 답변에서 권장 됨).
그러나 ... 비디오 전용 webm 파일이 처음에 MP4로 변환 된 경우이 중 어느 것도 문제가되지 않습니다.
그래서 ... YouTube-dl에게 비디오 파일을 다운로드 할 때 다른 작업을 수행하기 전에 즉시 지정된 유형 (MP4)으로 변환하도록 지시하는 방법이 있는지 아는 사람이 있습니까?
일명 :
그렇지 않다면 ...이 모든 것을 powershell로 직접 작성하는 길로 갈 수 있다고 생각합니다. youtube-dl이 오디오, 비디오, 메타 데이터 및 썸네일을 파일로 다운로드 한 다음 필요한 모든 작업을 수행하는 powershell 스크립트를 작성하도록 할 수 있습니다. youtube-dl이 각 반복 후에 powershell 스크립트를 호출하도록 할 수 있습니다.
--merge-output-format mp4
명령에 옵션 을 추가하십시오 .
youtube-dl --merge-output-format mp4 -f "bestvideo+bestaudio[ext=m4a]/best" --embed-thumbnail --add-metadata [url]
매뉴얼에서 :
--merge-output-format
FORMAT
병합이 필요한 경우 (예 : bestvideo + bestaudio) 지정된 컨테이너 형식으로 출력합니다. mkv, mp4, ogg, webm, flv 중 하나입니다. 병합이 필요하지 않으면 무시됩니다.
webm
오디오 형식 으로이 작업을 수행하려면 :
youtube-dl --merge-output-format mp4 --postprocessor-args "-strict experimental" -f "bestvideo+bestaudio/best" --embed-thumbnail --add-metadata [url]
opus
에서 mp4
컨테이너 형식 "실험"입니다, 몇몇 선수는 다시 같은 파일을 재생 문제가있을 수 있습니다이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다