AVS를 직접 작성해서 인코딩하시는 분이라면 MeGUI를 사용하는 것보다 cmd 창에서 x264 인코딩을 하는 것이 더 편할 수도 있습니다.

저는 예전 싱글코어를 사용할 때 조금이라도 가볍게 해보려고 cmd 창에서 인코딩하기 시작했었는데

명령어를 직접 써넣고 하는 것이 처음엔 어색하고 어려워 보이지만 막상 하다보면 이쪽이 더 편하더군요.

x264에 어느정도 익숙해지면 cmd 창에서 실행하는 다른 프로그램들(ffmpeg, eac3to 등등)도 비교적 쉽게 이해하고 사용할 수가 있습니다.

그리고 배치파일을 이용하면 MeGUI처럼 여러개의 인코딩을 순서대로 또는 동시에 처리할 수도 있습니다.


먼저 cmd 창을 실행해야 하는데 윈도우7 사용자는 아무곳에서나 Shift + 우클릭 하면 아래와 같이 "여기서 명령 창 열기(W)" 라는 메뉴가 뜹니다.


이렇게 Shift + 우클릭을 사용하는 방법도 있고 윈도우 시작 버튼에 cmd.exe를 등록해서 사용하는 방법도 있습니다.

윈도우 시스템 폴더에 있는 cmd.exe 파일을 우클릭해서 "시작 메뉴에 고정(U)" 메뉴를 클릭하면 "명령 프롬프트"라는 이름으로 등록됩니다.

그런데 시작 버튼에서 cmd 창을 실행하면 시스템 폴더 위치에서 시작되기 때문에 시작 위치를 x264.exe 파일이 있는 폴더로 바꿔주면 편합니다.

시작 버튼에 고정된 "명령 프롬프트"를 우클릭해서 "속성" 메뉴를 선택하면 아래와 같은 화면이 뜨는데


저렇게 시작 위치를 x264.exe 파일이 있는 폴더로 바꿔주면 다음부터 명령 프롬프트(cmd)를 실행할 때 해당 위치에서 시작됩니다.

작업 폴더를 하나 만들어 놓고 x264 뿐만 아니라 다른 프로그램들(ffmpeg 등등)도 전부 이곳에 모아놓으면 편하게 사용할 수 있겠죠.

그리고 "글꼴" "레이아웃" 등 cmd 창의 여러가지 속성들도 쓰기 편한대로 바꿔주면 좋습니다.


준비는 이정도로 마무리하고 이제 cmd 창에서 x264의 사용법을 알아보면,

가장 기본적으로 아래와 같이 명령어를 써 주면 됩니다.

x264 --output output.264 input.avs


각각의 옵션들은 빈 칸으로 구분되고 순서는 상관이 없습니다.

--output 옵션은 출력 파일 위치와 포맷을 정해주는데 확장자를 264로 하면 컨테이너에 담지 않은 raw 스트림으로 출력합니다.

mp4, mkv, flv 등으로 확장자를 써 주면 해당 컨테이너에 담아서 출력합니다.

이 외에 직접 적어주지 않은 다른 옵션들은 모두 기본값으로 적용되는데 --output output.264와 input.avs 처럼 아웃풋, 인풋은 꼭 적어줘야 합니다.

인코딩 중에는 아래와 같이 마지막 줄에 [진행 상황 %] 현재 프레임/전체 프레임, 인코딩 속도 fps, 비트레이트 kbps, 남은 시간이 표시됩니다.



다른 옵션들을 더 추가하고 싶으면 앞서 말씀드린대로 순서에 상관없이 직접 입력해 주기만 하면 됩니다.

예를 들어 crf 수치를 바꾸고 싶으면 아래와 같이 원하는 수치를 적어주면 됩니다.

x264 --crf 20 --output test.264 test.avs


순서는 상관이 없기 때문에 아래와 같이 --output 옵션과 --crf 옵션의 순서가 바뀌어도 결과는 똑같습니다.

x264 --output test.264 --crf 20 test.avs


그리고 옵션을 많이 입력하다보면 실수로 똑같은 옵션이 여러번 입력될 때도 있는데 이때는 마지막에 적어준 옵션이 적용됩니다.

아래와 같이 입력하면 가장 마지막에 있는 --crf 30 이 적용되겠죠.

x264 --crf 10 --crf 20 --crf 30 --output test.264 test.avs


기본적인 사용법은 이정도만 알고 있어도 충분할 것 같습니다.

x264는 여러가지 옵션들의 집합을 인코딩 속도와 인풋 영상의 종류에 따라서 분류해놓은 프리셋튜닝 시스템을 제공하기 때문에

굳이 수많은 옵션들을 모두 입력할 필요는 없습니다.

예를 들면 아래와 같이 프리셋, 튜닝을 사용하면 개발자들이 미리 정해놓은 옵션들이 적절하게 사용됩니다.

x264 --preset slower --tune film --crf 20 --output test.264 test.avs


프리셋은 ultrafast 부터 placebo 까지 있지만 주로 사용되는 것은 veryfast - faster - fast - medium - slow - slower - veryslow 등입니다.

프리셋 이름도 외우기 쉽게 잘 만들어 놓았죠. 모든 옵션이 기본값으로 적용되는 medium을 기준으로 빠르고 느린 프리셋을 적절히 사용하면 되겠습니다.

튜닝도 animation, film, grain 등등이 있는데 인풋 영상의 종류에 따라 선택해서 사용하면 됩니다.

프리셋, 튜닝을 포함한 모든 옵션들의 자세한 설명은 x264 --fullhelp 를 입력하면 확인하실 수 있습니다.


마지막으로 x264 의 필터링 옵션 사용법입니다.

x264는 크롭, 리사이즈 등의 기본적인 필터를 내장하고 있고 ffms, lavf 등의 소스필터로 자체 디먹싱, 디코딩이 가능하기 때문에

별도의 프로그램 없이도 대부분의 동영상들을 인코딩할 수 있습니다. 잘만 사용하면 정말 편하게 인코딩할 수 있죠.

예를 들어 1920x1080p 의 mkv 영상을 일부 잘라내고(crop) 1280x720p 로 리사이즈해서 인코딩하려고 한다면 아래와 같이 입력하면 됩니다.

x264 --preset slow --crf 20 --vf crop:2,2,2,0/resize:1280,720,sar=1:1,method=spline --output test.264 test.mkv


여기에서 --vf 가 필터링 옵션입니다. 각각의 필터는 / 로 구분해 줍니다.

필터 별 옵션을 살펴보면

crop:2,2,2,0 은 순서대로 왼쪽,위쪽,오른쪽,아래쪽을 픽셀 단위로 입력합니다.

resize:1280,720 은 리사이즈하려는 해상도를 resize:가로,세로 형식으로 입력합니다.

sar=1:1 은 리사이즈 필터의 옵션인데 사용자가 입력하지 않으면 인풋 영상의 해상도와 리사이즈 후의 해상도를 비교해서 x264가 계산한 값이

자동으로 적용됩니다. 따라서 화면 비율에 상관없이 원하는 해상도로 리사이즈 하려면 1:1을 입력합니다.

method=spline 은 리사이즈 방식을 정해줍니다. spline, lanczos, bicubic 등등을 사용할 수 있습니다.




Posted by 김코덱