1920 x 1080p 30프레임의 .ts 의 원본 파일을
3840 x 2160p 60프레임의 .mp4 파일로 변환하려고 하는데요
화질유지를 하려면 비트레이트 설정을 어느정도로 해야 할까요?
원본파일은 비트레이트가 17,000k 정도 되는데..
해상도가 늘어났고, 프레임도 두배가 되었으니...
17,000 x 4 = 68,000k 으로 설정해야 화질 저하가 없을까요?
용량이 커지는건 전혀 상관 안하고, 아주 작은 화질 저하도 없게 하려고 하거든요
해상도 변경(리사이즈)을 하면 화질 변화는 필연적입니다. 특히나 업스케일링을 한다면 없는 픽셀들을 생성해야 하는데, 이때 리사이즈 필터들이 역할을 합니다. 샤나인코더(와 FFmpeg)에서 제공하는 리사이즈 필터들은 업스케일링에 나름 이것저것 어느 정도 한계가 있습니다. 그래서 리사이즈 필터뿐 아니라 (원본에 따라) 리사이즈 후 샤프닝이나 안티앨리어싱 같은 추가적인 필터 작업을 병행해야 할 때도 있습니다.
참고로, 유료긴 하지만 Topaz Video Enhance AI 같은 업스케일링 전문 툴도 있는데, 얘네들은 일반적으로 좀 더 나은 화질을 제공한다고는 합니다. 그것도 케바케지만요.
그러나 저러나 뭘로 하든 어쨌든 시간이 상당히 걸리는 작업입니다. 프레임 더블링까지 하신다고 하니 말할 것도 없네요.
그리고 비트레이트는 단순 곱셈 계산한다고 화질이 보장되는 게 아닙니다. 인코딩 = 압축이라는 걸 생각해 보면 내용물이 어떻냐에 따라 결과가 달라질 거라고 생각해야 합니다. 그냥 검은 화면을 가로 세로 두 배씩, 네 배 확대한다고 생각하면, 그걸 압축(인코딩)할 때는 필요한 공간(비트레이트)이 원래 사이즈를 압축할 때의 네 배까지는 필요 없다는 걸 추측할 수 있습니다. 그러나 복잡한 화면인데 이걸 네 배 확대한다고 생각하면 압축에 필요한 공간 비율은 달라지겠죠.
그리고 어떤 압축 알고리듬(=인코더)을 사용하느냐도 염두에 둬야 합니다. 예를 들면 H264보다 HEVC가 압축률이 더 뛰어나다는 것도 감안해야 합니다.
그래서 화질을 염두에 둔다면, 공간을 미리 할당하는 비트레이트 모드가 아닌 퀄리티 모드(주어진 손실률(=퀀타이저)을 기준으로 프레임 내용에 따라 조금씩 손실률을 변경하는 방법)가 일반적으로 더 우월하다고 하는 겁니다.
뭐 일단 영상 일부분 구간 설정하고, 본인이 원하시는 코덱의 퀄리티 모드로 spline이나 lanczos 필터로 스케일업 시도해 보시고 결과가 만족스러운지 살펴보시기 바랍니다. 퀄리티 값을 낮추면서 화질이 개선되는지를 보시고 적당한 퀄리티 값을 선택하시되, 용량에 비해 화질이 만족스럽지 않다면 추가적인 필터를 적용한다든지, 위에서 말한 다른 툴들로 시도해보시기 바랍니다.
원본 상태에 따라 디인터레이싱 등 추가적인 필터 처리를 병행해야 하는 건 당연하구요.
공지에도 설명해 놨듯, 이렇게 화질 저하를 최소한으로 하는 제대로 된 인코딩은 고려할 게 정말 많습니다. 그냥 몇 마디 질문하고 답변 받고 끝나는 문제가 절대 아니에요. 정말 제대로 된 인코딩에 대해 알고 싶다면 시간 들여 공부해야 할 게 많습니다.