이전에 FFMPEG를 이용해 URL을 받아서 미리 영상을 잘라낸 뒤
원하는 부분만 다운받는 방법을 찾아봤었는데
유튜브의 경우는 조금 더 복잡해서 따로 기록해둔다
우선 이전에 사용했던 yt-dlp를 이용해 원하는 유튜브 영상의 정보를 가져온다
yt-dlp -g [영상 링크]
그러면 주소값이 두개가 출력되는걸 볼 수 있다
왜 두개인가 하면 영상파일과 음성파일이 분리되어 있기 때문이다
위에가 영상 링크이고 아래가 음성 링크이다
이보다 더 자세하게 링크를 가져오고 싶으면 아래의 명령어를 쓴다
yt-dlp -F [영상 링크]
그러면 해당 영상의 각 해상도별 영상 파일의 ID값을 포함한 정보 등이 나온다
audio only와 video only에서 원하는 해상도와 비트레이트를 찾아 왼쪽의 ID 값을 확인한 뒤
아래처럼 입력해주면 원하는 화질과 음질로 다운받을 수 있다.
yt-dlp -f [ID]+[ID] [URL]
#예시 1280x720 30fpds mp4 영상과 129kbps 음성을 합친 뒤 출력
yt-dlp -f 136+140 https://youtu.be/JL_GJShS4fU?si=jYcpT303JjgxFOca
하지만 내가 원하는건 해당 링크를 가져오는것이니 아래처럼 입력해준다.
yt-dlp -f [ID]+[ID] [URL] --get-url
그 후 얻어낸 링크로 ffmpeg에 적용하기 전에 문제가 있다.
링크에 보면 특수문자 &가 여러번 들어간게 보이는데 링크에 이 문자가 포함되어 있으면
실행중 에러를 뱉어낸다.
그러니 미리 &를 찾아 모두 "&"로 바꿔준다.
이제 ffmpeg에서 아래와 같이 써준다.
ffmpeg -ss [시작 시간] -to [끝나는 시간] -i [영상 링크] -ss [시작 시간] -to [끝나는 시간] -i [음성 링크] -c copy -map 0:v:0 -map 1:a:0 output.mp4
각 링크의 파일을 잘라낸 뒤 -c copy로 재인코딩 없이 복사 한 후
-map으로 첫번째 파일의 비디오 스트림과 두번째 파일의 오디오 스트림을 출력파일에 매핑하는 것이다.
반응형
'VIDEO' 카테고리의 다른 글
[FFMPEG] 치지직 부분 다운로드 시 발생하던 문제들 (0) | 2025.02.23 |
---|---|
[FFMPEG] 영상 일부분만 다운받기 (0) | 2024.05.31 |
[프리미어 프로] 노래방 자막처럼 만들기 (2) | 2024.05.29 |