NAS&SDD
  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

여러 확장자를 가진 동영상을 일괄 인코딩 해보자.

들고양이님의 기기정보
보유한 기기가 없습니다

안녕하세요.

이 글을 어디에 쓰는게 적당할까 고민하다가...일전에 비슷한 글을 적은 적도 있고 해서.......이곳에 올려둡니다.

처음부터 직접 본인이 원본 파일을 직접 인코딩해서 소장하고 있거나 한 경우라면......잘 정리정돈 되어 있겠지만......그렇지 않고 인터넷 등에서 다운받거나 할 경우, 각 동영상마다 확장자가 제각각인 경우가 흔히 있는 거 같습니다.

이럴때, 한방에 하나의 통일된 확장자(일단, 저는 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. 터미널에 첨부파일 드래그 [엔터]

"파일이 들어있는 폴더를 드래그해 주세요." 라고 글이 뜨면.....

인코딩하기 원하는 폴더를 터미널에 드래그해서 놓고 [엔터]

23-05-48.png

이렇게 물으면, 숫자 1 또는 2 넣고 [엔터]

기본적으로는 h264(우리가 흔히 접하는 동영상들 대부분에 사용되는 코덱...)으로 해도 질좋게 인코딩이 됩니다.

h265는 파일의 크기가 좀 더 작아집니다만..이 스크립트에 설정된 셋팅값이 상당히 높아서......화질은 좋습니다만......가급적이면 사용하지 마세요.(시간 무진장 오래 걸립니다.....) - 혹시 사용하시려면, 파일 5분 내외짜리 한개 놓고 시간 가늠해보시고 사용하시기를....(5분짜리 아마도....1~2시간 걸리지 않을까 싶습니다.)

실행하게 되면...아래 보시는 것처럼....해당 타겟 디렉토리에는 인코딩목록 파일이 만들어지고 그것을 기준으로 순서대로 하나씩 인코딩 작업이 진행됩니다.

각각의 파일마다 파일명.log 파일이 생성되서 인코딩 속도, 시간 등 등...확인하실 수 있고...logfile_날짜.txt 파일은 처음 시작부터 모든 파일이 인코딩 완료하기까지의 시간 등...간단한 정보들 담습니다.

LG 2017-12-30 23-14-43.png

인코딩목록.txt랑....원본 파일 등....삭제을 원하시면 스크립트에서 주석처리한 #을 제거 해 주시면 되겠습니다.

한가지 더....기본적으로 mp4 파일을 기준으로 인코딩을 하기 때문에, 해당 타겟 폴더안에 파일이 mp4 확장자를 가지고 있으면 인코딩 건너 뜁니다.

위 그림에서도 2.mp4, 7.mp4 등의 이름을 가진 파일은 인코딩하지 않고 넘어간 겁니다.

 

들고양이
18 Lv. 18822/19000P

댓글 2

참여를 하시면 세상을 바꿉니다.
profile image
1등 iStyle 2018.01.04. 17:08 |댓주소:#1931153
들고양이

안녕하세요.

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% 수준으로 줄어들긴 합니다.

들고양이 작성자 2018.01.04. 23:27 |댓주소:#1931825
iStyle

안녕하세요.  저는 핸드브레이크를 잘 안써봐서 자세히는 모릅니다..

인코딩 후 화질 비교해 보시면 의도대로  인코딩되었는지 알 수 있지 않나요?

crf는 h264하고 265는 값이 다르다고 얼핏 글을 본 거 같습니다만...즉, h264의 20값하고 h265의 20값은 다르다고 들었습니다. 

자세한 건 구글님께 문의해 보심이....

그렇다 치더라도 거의 1배속 수준으로 인코딩 속도가 나온다면....상당히 빠른 것으로 알고 있습니다. 최신 cpu에 하이시에라 hevc지원기능의 효과인건지는 모르겠지만요. 

댓글 쓰기

선택 삭제 전체 선택
익명상태

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?