여러 확장자를 가진 동영상을 일괄 인코딩 해보자.
- 들고양이
- 961
- 2
들고양이님의 기기정보
안녕하세요.
이 글을 어디에 쓰는게 적당할까 고민하다가...일전에 비슷한 글을 적은 적도 있고 해서.......이곳에 올려둡니다.
처음부터 직접 본인이 원본 파일을 직접 인코딩해서 소장하고 있거나 한 경우라면......잘 정리정돈 되어 있겠지만......그렇지 않고 인터넷 등에서 다운받거나 할 경우, 각 동영상마다 확장자가 제각각인 경우가 흔히 있는 거 같습니다.
이럴때, 한방에 하나의 통일된 확장자(일단, 저는 mp4로 보통 통일해 둡니다만...)로 전부 인코딩시키는 스크립트를 정리해서 올려 봅니다.
준비 되어야 할 사전 환경:
*** 나스당에 글을 올립니다만.....기본적으로 커스텀맥, 순정 맥, 리눅스 등에서(윈도우도 가능하겠지만....좀 번거롭...) 사용합니다.
1. 사용할 맥(또는 커스텀 맥 등...)에 ffmpeg가 설치되어 있어야 합니다.
설치 방법은 다음과 같습니다. (https://trac.ffmpeg.org/wiki/CompilationGuide/macOS) 참고
아래의 글을 터미널을 열어서 복사해서 붙여넣고 엔터
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
그러면, brew가 설치됩니다. 설치가 다 끝났으면,
brew install ffmpeg \ --with-tools \ --with-fdk-aac \ --with-freetype \ --with-fontconfig \ --with-libass \ --with-libvorbis \ --with-libvpx \ --with-opus \ --with-x265
위의 글을 터미널에서 이어서 복사해서 붙여넣고 엔터......ffmpeg가 쭉~설치가 됩니다.
그 다음은 간단합니다.
1. 첨부한 파일 다운로드
2. 권한 수정
sudo chown -R 0:0 첨부파일드래그 [엔터]
sudo chmod -755 첨부파일드래그 [엔터]
해주시면 되겠습니다. (당연하겠지만, sudo 명령어로 비번 물어올겁니다만....비번치고 엔터치면 되겠죠.)
3. 아무 폴더에 인코딩하기 원하는 파일들 모아서 넣어두기.
4. 터미널에 첨부파일 드래그 [엔터]
"파일이 들어있는 폴더를 드래그해 주세요." 라고 글이 뜨면.....
인코딩하기 원하는 폴더를 터미널에 드래그해서 놓고 [엔터]
이렇게 물으면, 숫자 1 또는 2 넣고 [엔터]
기본적으로는 h264(우리가 흔히 접하는 동영상들 대부분에 사용되는 코덱...)으로 해도 질좋게 인코딩이 됩니다.
h265는 파일의 크기가 좀 더 작아집니다만..이 스크립트에 설정된 셋팅값이 상당히 높아서......화질은 좋습니다만......가급적이면 사용하지 마세요.(시간 무진장 오래 걸립니다.....) - 혹시 사용하시려면, 파일 5분 내외짜리 한개 놓고 시간 가늠해보시고 사용하시기를....(5분짜리 아마도....1~2시간 걸리지 않을까 싶습니다.)
실행하게 되면...아래 보시는 것처럼....해당 타겟 디렉토리에는 인코딩목록 파일이 만들어지고 그것을 기준으로 순서대로 하나씩 인코딩 작업이 진행됩니다.
각각의 파일마다 파일명.log 파일이 생성되서 인코딩 속도, 시간 등 등...확인하실 수 있고...logfile_날짜.txt 파일은 처음 시작부터 모든 파일이 인코딩 완료하기까지의 시간 등...간단한 정보들 담습니다.
인코딩목록.txt랑....원본 파일 등....삭제을 원하시면 스크립트에서 주석처리한 #을 제거 해 주시면 되겠습니다.
한가지 더....기본적으로 mp4 파일을 기준으로 인코딩을 하기 때문에, 해당 타겟 폴더안에 파일이 mp4 확장자를 가지고 있으면 인코딩 건너 뜁니다.
위 그림에서도 2.mp4, 7.mp4 등의 이름을 가진 파일은 인코딩하지 않고 넘어간 겁니다.
들고양이
댓글 2
안녕하세요. 저는 핸드브레이크를 잘 안써봐서 자세히는 모릅니다..
인코딩 후 화질 비교해 보시면 의도대로 인코딩되었는지 알 수 있지 않나요?
crf는 h264하고 265는 값이 다르다고 얼핏 글을 본 거 같습니다만...즉, h264의 20값하고 h265의 20값은 다르다고 들었습니다.
자세한 건 구글님께 문의해 보심이....
그렇다 치더라도 거의 1배속 수준으로 인코딩 속도가 나온다면....상당히 빠른 것으로 알고 있습니다. 최신 cpu에 하이시에라 hevc지원기능의 효과인건지는 모르겠지만요.
안녕하세요.
ffmpeg 관련 내용이 있어서 질문좀 드릴께요.
i5-8400 6코어 / Intel UHD Graphics 630 / 하이시에라인데요,
미드 h.264 1920✕1080, 5,000kbps 정도 되는 영상을
핸드브레이크에서 h.265 세팅으로 해상도/프레임레이트 원본 그대로 하고, 퀄리티에서 Constant Quality 20으로 돌리면
인코딩속도가 초당 약 24프레임(1배속 정도) 수준으로 나오던데, 맞는 건가요?
h.265 인코딩 돌리면 뻑이 가게 느린 속도에 환장할거라고들 하던데, 뭔가 설정을 잘못 한건가 궁금합니다.
참고로, 인코딩 후의 용량은 원본의 40~60% 수준으로 줄어들긴 합니다.