x264의 --qpfile 옵션을 사용하면 특정 프레임의 프레임 종류와 QP값을 사용자가 직접 지정해서 인코딩할 수 있습니다.

보통은 x264가 알아서 키프레임이나 P, B프레임 등을 적절한 곳에, 적절한 개수로 사용하게 되지만 --qpfile 옵션을 이용하면

사용자가 원하는 지점에 원하는 프레임 종류를 사용할 수 있게 되는 것이죠. 물론 이름처럼 QP값도 같이 조절할 수 있고요.


--qpfile 옵션은 텍스트 파일을 직접 만들어서 입력시키는 방식으로 작동합니다.

예를 들어 500번 프레임은 P프레임에 QP=20으로 인코딩하고 1000번 프레임은 IDR프레임에 QP=15로 인코딩하고 싶다면

우선 아래와 같은 내용으로 텍스트 파일을 만들어서 저장합니다. (파일 이름은 아무래도 상관없습니다.)

500 P 20

1000 I 15


프레임 번호, 프레임 종류, QP 순으로 원하는 값을 입력하면 됩니다.

프레임 번호와 종류는 꼭 적어야 하지만 QP는 필수가 아닙니다. QP를 적어주지 않으면 x264가 알아서 적절한 값을 사용합니다.


이렇게 저장된 텍스트 파일을 qpfile.txt라고 한다면 아래와 같이 x264 옵션을 추가해주면 됩니다.

(MeGUI에서는 x264 설정창의 Misc 탭에서 Use qp File에 체크하고 qpfile.txt를 지정해주면 됩니다.)

x264 --qpfile qpfile.txt --output test.264 test.avs


이 --qpfile 옵션은 인코딩 영상에 챕터 파일을 삽입할 때 유용하게 사용될 수 있습니다.

챕터의 시작지점에 키프레임이 있으면 챕터 간 이동을 빠르게 할 수 있기 때문에

챕터 파일의 구간별 시작지점에 --qpfile 옵션으로 키프레임을 넣어주는 것이죠.

(Ordered Chapter를 사용할 때에도 마찬가지로 --qpfile 옵션을 사용해주면 좋습니다.)


또한 인코딩된 영상을 특정 지점에서 잘라야하는 경우에도 --qpfile 옵션으로 키프레임을 삽입해 놓으면 좋습니다.

예를 들면 mp4box나 mkvmerge 같은 툴로 영상을 자를 때에는 항상 키프레임에서만 잘리기 때문에 정확한 편집이 어려운 경우가 많은데

이때 --qpfile 옵션을 사용해서 특정 지점에 키프레임을 삽입해 놓으면 정확히 원하는 위치에서 자를 수 있겠죠.


참고로 --qpfile 옵션에서 사용할 수 있는 프레임 종류는 다음과 같습니다.

K : 키프레임. Open GOP 사용 여부에 따라서 IDR프레임과 RPS가 자동으로 적용됩니다.

I : IDR-I프레임

i : Non IDR-I프레임

P : P프레임

B : 참조 B프레임

b : B프레임





Posted by 김코덱