Team Curio

비주얼 노벨 한국어 패치 팀 큐리오

정보 공유실/IT & digital

인코딩 전에 사운드 음량조절(gain)을 하자!! - FLV 인코딩할때 알아두면 좋은 팁

연이v 2008. 11. 23. 14:10
반응형
SMALL

1.Gain은 무엇인가

간단히 말해서 사운드파일 자체의 볼륨을 조절하는 것을 말합니다. 흔히 생각하는 스피커의 볼륨조절하고 개념이 좀 다릅니다.

 

mp3를 예로 들면 립퍼가 사용하는 프로그램이나 설정이 다 제각각이기 때문에 mp3마다 볼륨이 서로 다릅니다. 따라서 이 mp3들을 연속으로 듣게 될 경우 볼륨이 각각 다르기 때문에 트랙이 바뀔때마다 갑자기 소리가 작아지거나 커지게 되어 감상이 좀 불편하게 됩니다. 그래서 mp3를 일정한 볼륨으로 정규화(노멀라이즈)시키는 mp3gain같은 프로그램이 있습니다.

 

사실 동영상을 볼때 사운드의 자체볼륨이 좀 낮다고 해도 그냥 스피커 볼륨을 올려버리면 되기 때문에 감상하는데 별로 큰 문제는 없을지도 모릅니다. 립된 동영상들도 음량조절이 미리 알맞게 되어 있는것도 많습니다.

 

 

2.Gain이 왜 필요한가 

그러나 볼륨조절이 좀 심하게 안된채로 나온 동영상도 많습니다. (AC3 계열에서 특히 심합니다)

따라서 감상시 스피커 볼륨을 많이 올려야 하는게 조금 부담스럽거나, 이어폰으로 감상시 사운드카드의 성능이 좋지않아 윈도우 트레이에서 마스터볼륨을 최대로 설정해도 소리가 크게 들리지 않아 불편한 경우가 많습니다.

 

FLV인코딩 전 미리 Gain을 해 두면 이런 문제를 조기에 방지할 수 있습니다.

버덥에서 사운드 떼었다 붙였다 정도를 할 줄 알면 크게 어려운것은 없습니다.

 

<스피커볼륨을 일정하게 놓고 들어보기를 권장>

 

gain이 무엇인가를 이해하기 쉽게 하기 위해 위의 예제를 준비했습니다.

스피커볼륨 조절과는 달리 원음량에서 증폭이나 감소를 하는것이 gain입니다. 따라서 지나치게 증폭을 시키면 클리핑현상이나 점프현상이 나타나므로 적절한 범위내에서 gain이 이루어져야 합니다.

 

①Gain이 안된 mp3

- 볼륨이 낮게 설정되어 있어서 피아노소리가 잘 들리지 않는다.

 

②적절하게 gain된 mp3

- 음질손실이 일어나지 않는 범위까지 gain을 하였다. 첫째보다 피아노소리가 잘 들린다.

 

③과도하게 gain한 mp3(클리핑현상)

- 볼륨을 지나치게 높게 설정하면 고음부분이 잘리는 클리핑현상이 일어난다. 실제 들어보면 고음에서 잡음(Jump)이 들린다.

 

 

3.Belight와 MP3Gain

Besweet는 립핑시 많이 사용하는 사운드 전문 인코딩툴입니다. 성능과 기능면에서 이 툴을 따라올 프로그램은 별로 없을정도로 강력하기 때문에 많이 이용되는 툴입니다. 기본적으로 Dos 모드에서 동작하기 때문에 좀 더 쉽게 사용할 수 있는 GUI가 있습니다.

 

 

 

Belight와 BesweetGUI등이 있는데 우리는 여기서 사운드를 단순히 gain하여 변환하는게 주 목적이기 때문에 Belight를 이용하도록 하겠습니다. 현재 Belight의 최신버전은 0.22b9입니다. 베타버전을 별로 좋아하지는 않지만, Besweet와 사운드 플러그인도 같이 깔리는 설치형이라 상당히 편하다고 할 수 있습니다. gain하고 wav변환만 하면 장땡이기 때문에 베타라도 별 상관은 없겠구요.

 

(설치할때 언어파일 몇개가 깨진다고 나오는데 별 중요한 파일이 아니므로 무시를 선택하세요.)

 

 

MP3Gain은 mp3전용이며 사용하기가 무척 간단하고 강력한 프리웨어 유틸입니다.

gain정보는 물론 자신이 원하는 만큼 gain을 조정할 수 있는데다가 어느 부근에서 클리핑(손실)이 발생하는 지도 알 수 있습니다.

특히 음악파일을 gain할때 유용하며, 단일파일이 아닌 여러개의 gain을 일정화시키는 Album Gain기능도 제공합니다.

 

실제로 음반에서 mp3립된것을 살펴보면 gain이 충분치 못한게 의외로 많습니다.

 

 

4.동영상에서 사운드 추출하기

상당히 기초적인 지식이기 때문에 간단히 설명을 하겠습니다. VirtualDubMod를 기준으로 설명하겠습니다.

동영상을 불러온 후 Stream List에 들어가면 밑 그림과 같이 동영상에 붙어있는 사운드를 보여줍니다.

 

 

추출을 원하는 파일에 우측클릭하여 Full Processing Mode(풀 프로세싱 모드)가 선택되어있나 확인 후 Wav 저장을 누르시면 끝납니다.

어때요? 참 쉽죠?~~

 

위의 예제는 2Audio이기 때문에 2개가 나옵니다. (보통은 1개만 나옵니다.)

gain작업이 끝나고 다시 붙일때 기존부분을 "사용안함"으로 지정하고 새로 붙이려는 사운드를 추가하여 AVI로 저장하시면 됩니다.

물론 저장하실때 Video가 Direct Stream Copy상태로 지정되어 있어야 하구요.

 

만약 Direct Stream Copy로 지정하고 Wav 저장을 하고 나온거 보면 확장자가 Wav로 되어있는데, 이걸 정말 Wave파일이라 생각하면 곤란합니다. 영상의 사운드가 mp3로 되어있다고 하면 확장자를 Wav로 달고 나왔다는 것을 제외하고는 mp3 그대로 추출된것입니다.

따라서 추출 후 확장자를 mp3로 바꿔주면 간단합니다.

 

FLV로 인코딩전 사운드 Gain을 미리하는 작업이기 때문에 대략 다음과 같은 과정을 거칩니다.

 

버덥으로 인코딩하려는 동영상의 사운드파일을 추출한다  ------> 볼륨을 적절히 조절하는 Gain을 한다 ------> 버덥모드에서 기존 사운드파일을 "사용안함" 지정후 Gain한 사운드파일을 갖다 붙인후 "풀 프로세싱 모드"로 지정한다(Wav 변환)  -----> Save AVI로 합친다 -----> FLV 인코딩을 한다.

 

 

※FLV 인코딩전 사운드를 WAV로 변환해야 하는 이유

저번 포스트에서 밝혔듯이 On2 Flix Pro 툴은 인코딩 후 소리가 가끔 나지 않는 현상이 있습니다. 따라서 어느 인코더 프로그램에도 문제(호환성)가 없는 wav포맷으로 인코딩하는 것이 좋으며, wav는 손실변환이 아니라 압축된 데이타를 푼다는 개념이기 때문에 음질손실에 대한 부담도 없고 변환속도도 무척 빠른 편입니다. 그리고 FLV인코딩시 압축이 미리 풀린상태에서 MP3 변환을 하는것이니 인코딩속도에도 약간 도움이 됩니다.

 

 

5.인코딩하려는 영상의 사운드가 MP3일때...

사운드가 무슨 코덱으로 되어있는지는 KMP의 고급재생정보에서 Audio를 보거나 재생시 구동되는 사운드코덱이 무엇인지 보면 됩니다.

(이걸 굳이 설명해야 하나~~)

 

아무튼 mp3의 경우 일단 버덥에서 그대로 추출후 확장자를 mp3로 바꿔주는 작업을 한 후 MP3Gain으로 불러옵니다.

 

 

방법은 간단합니다. 트랙 분석을 하면 현재 볼륨이 나오는데, 이 상태에서 목표의 "기준" 볼륨을 현재볼륨보다 높게 조정을 하면 됩니다.

그렇게 수치를 바꿔가면서 조정하다 보면 클립(트랙)에 "예"라고 나오는데 이 때부터 음질이 손실된다는 뜻입니다.

맨위의 예제처럼 클립이 "예" 상태로 gain하면 고음에서 잡음이 들리는 현상이 납니다.

 

따라서 "예"가 나타나지 않을때까지 수치를 높게 조정하시면 됩니다. 그 후 트랙게인을 하면 다 된겁니다.

 

볼륨 바로옆에 "클리핑"항목이 "예"로 되어있다면 이미 gain이 너무높게 조정되어 클리핑이 이미 나버린 상태를 뜻합니다.

이때에도 클립(트랙)이 "예"로 나타나지 않을정도로 볼륨을 조절하고 gain을 하면 "클리핑"항목의 "예"가 사라지게 됩니다.

예제에서는 93.1dB부터 클립(트랙)부분이 "예"로 표시되어서 93.0dB으로 맞추고 트랙게인을 하였습니다.

 

작업이 완료되었으면 버덥모드 스트림리스트에서 기존사운드를 해제하고 gain한 사운드를 붙인후 풀 프로세싱 모드를 선택하여 AVI로 저장하면 자동으로 사운드가 gain된 그대로 Wav로 변환되어 저장됩니다.

 

 

사실 동영상의 사운드가 mp3로 되어있는것 치고 gain이 제대로 안되있는것은 좀 드뭅니다.

따라서 MP3Gain으로 측정해보고 최대로 gain할 수 있는 수치와 기존수치가 몆 dB정도만 차이난다면 굳이 따로 gain할 필요는 없습니다.

 

참고로 사운드가 vbr(가변 비트레이트)로 인코딩된 영상을 불러오면 다음과 같은 메시지가 뜰텐데 반드시 "아니오"를 선택하여야 헤더 정보가 손실되지 않습니다.

 

 

 

※음반 CD에서 리핑한 MP3라면 클리핑이 나지않는게 gain을 조정하는게 당근빠따이지만, 사운드가 mp3인 동영상의 gain정보를 보면 살짝 클리핑이 날 정도의 gain수치로 조정되어 있는 경우가 좀 있습니다.   

 

※영상의 일부를 떼어내어 인코딩하는 경우 미리 떼어낸후 gain하는것이 좋습니다.

25분의 영상을 예로 들때 영상 전체의 사운드를 떼어내어 볼륨수치를 살펴보면, 일부를 떼어낸것보다 gain 수치가 낮게 나옴을 알 수 있습니다. 전체는 음의 높고 낮음이 둘쭉날쭉하기 때문에 가장 낮은음을 기준으로 손실이 없는 gain수치가 정해지지만, 일부만 떼어내서 할 경우 그 구간안에서만 판단하기 때문에 평균 gain 수치가 전체보다 높게 올라갈 수 밖에 없습니다.

 

 

6.인코딩하려는 영상의 사운드가 AC3나 기타 다른것일때...

특히 이 코덱 계열이 음량이 작은게 많은 것 같습니다.

그냥 간단히 ac3를 Switch같은 유틸로 mp3 변환후 mp3gain에서 조정하는 방법이 있습니다만, 별로 권장하는 방법이 아닙니다.

(참고로 Switch는 그냥 변환만 할뿐 gain 기능은 없습니다.)

 

단순히 ac3를 mp3로 변환한다면 그 과정에서 음질손실과 소리손실이 일어나기 때문입니다. 그 후 FLV 인코딩시 다시 MP3 변환을 거치니 2번의 손실이 발생합니다.

 

"난 그런거 신경안써" 같은 사고관을 지니시고 계신다면 굳이 말리지는 않겠습니다. ac3가 2채널로 되어있다면 음질손실문제만 있기 때문에 좀 괜찮을지 모르지만, 5.1채널로 되어있다면 2채널 Downmix에 신경을 좀 써줘야 손실되는 소리(음질아님)가 적습니다.

 

그런 이유로 여기서는 Belight 유틸을 써보도록 하겠습니다.

 

 

버덥에서 사운드파일을 가능하면 풀 프로세싱 모드를 이용하여 wav변환->추출하여 불러옵시다.

그리고 WAV/PCM 항목을 선택하고 16 Bits Stereo Wave를 선택합니다.

그리고 여러 옵션들을 설정한다음 File->Save로 저장할 파일의 이름과 경로를 지정후 Start Process를 선택하면 됩니다. File->Save를 빼먹고 Start Process를 하지 마시기 바랍니다. Start Process을 하면 경우에 따라 그래프가 나오지 않을 수도 있지만, Transcoding is running이란 메시지가 뜨면 작업중이라는 뜻이니 기다리면 작업완료됩니다.

 

 

어차피 wav로 변환할 것이기 때문에 왼쪽에 보이는 Azid Setting의 옵션들은 별 필요없습니다.

단 BeSweet OTA항목의 Mode은 gain에 관련된 기능이기에 체크를 합시다.

 

Pregain, Postgain, Hybrid Gain 요렇게 3가지가 있는데 Hybrid Gain을 선택하면 됩니다. Beweet 제작자의 말도 그렇고, Belight Common Setting 매뉴얼에도 가능하면 이 옵션으로 선택하는것을 권장하고 있습니다. mp3변환시에도 마찬가지이며 wav나 mp3를 여기서 변환후에 mp3gain에서 정보를 확인해보면 최적으로 gain이 된것을 확인할 수 있었습니다.

 

Advanced Setting에 들어가서 위에 보면 Azid Setting이 있습니다.

mp3나 ac3(2채널)등 5.1채널이 아닌 2채널의 음원이라면 다 체크해제를 해주시면 됩니다.

밑에 설명하는 항목들은 원본이 ac3 5.1채널 혹은 그 이상일때에만 해당합니다.

 

============================================================================================================================

LFE to LR Channels

If your input is a 5.1 channel AC3 (the default for most DVDs), and your output is to have only 2 channels, you'll want to put the LFE (subwoofer) channel into the main stereo channels and reduce its volume level to prevent distortion during explosions and such. Hence check LFE to LR Channels and set it to -3dB. If your input is a 2 channel source or your output is to have 5.1 channels, uncheck this option.

 

원본이 5.1채널이고 2채널로 변환할 경우 필요합니다. 서브우퍼에서 나오는 소리를 2채널로 보내주며, 폭발음같은 부분에서 음왜곡을 막기위해 볼륨을 낮춘다라고 적혀있습니다. 기본값은 -3dB로 지정하시면 되겠고, 원본이 2채널이라면 체크해제를 권장합니다.

 

Output Mode

Output Mode allows you to configure the surround downmix mode. Check if if your input has 5.1 channels and the output has 2.0 channels. Stereo creates a 2.0 channel downmix without any surround channels. Setting it to dplii creates a Dolby Surround 2 compatible downmix which yields the best quality for Dolby Surround 2 compatible stereos, while remaining compatible to stereo and Dolby Surround capable setups. Finally, dpl would create a standard Dolby Pro Logic Downmix.

 

이것도 원본이 5.1채널일때 이용하는데, FLV 인코딩은 기껏해야 Stereo까지밖에 안되기 때문에 Stereo로 선택하여 다운믹스(DownMix)를 합시다. 다운믹스이기 때문에 꼭 체크바람.

 

Dialog Normalization Reduction

Dialog Normalization Reduction can be used to reduce audio volume normalization for the center channel.

Dialog normalization is used to force different ac3 track to have the same playback loudness.

 

One of Dolby's intentions with this variable is to ensure that all dialogue levels are played back with the same volume, regardless of the program's amount of headroom. It is good to have when the movie you're looking at is interrupted by a commercial break, where the headroom varies enormously. (It prevents blowing your ears off when the break comes.)

 

when i use gain max and dialog normalization reduction or only gain max, what exactly will be the difference between the two results?

- no difference when normalizing. but if you wanted to have two streams with same volume, you shuold use it.

 

5.1채널에는 센터채널이라고 사람음성이 주로 나오는 곳이 있는데, 2개의 스트림을 같은 볼륨으로 출력시 이용된다고 합니다.

AC3출력때에는 필요할지 모르지만 wav출력에는 체크할 일이 없는 옵션.

 

 

Normalize to

Checking Normalize to allows you to force normalization to a specific volume level (that is to level out the dynamic range so that voices and other quiet sounds on the original DVDs can be heard properly in the end). I suggest not to use this option but instead use the BeSweet OTA options in the main window.

 

특정 볼륨레벨을 지정할 수 있습니다. 자세히는 몰것고, 이 옵션 대신 BeSweet OTA의 옵션을 이용할것을 권한다고 매뉴얼에 나와있습니다. autogain is "PreGain. Normalize to. 100%"

 

=========================================================================================================================== 

결국 따지고 보면 AC3 5.1채널을 wav로 변환시 Belight로 작업해서 얻는것은 LFE(서브우퍼) 소리를 얻을 수 있다와 제대로 된 다운믹스(DownMix) 정도네요. 그 부분이 실제로 좀 체감이 안되긴 하지만, 아무튼 음질손실 없이 gain을 했다는것이 중요합니다.

 

저 위에 설명한것이 넘 복잡하다거나 그냥 간단히 하고싶으면 Switch + MP3Gain을 이용하면 되겠습니다.

이 방법은 1번의 손실을 더 거쳐야 하니, 이론적으로 약간의 손실이 일어날 수 있다는 점을 명심해 주십시오.

 

 

버덥에서 사운드파일을 풀 프로세싱 모드를 이용하여 wav로 변환하여 추출한다 -------> Switch에서 mp3 cbr 320kbps, High Quality 모드로 변환한다 -------->  mp3gain을 통해 gain을 한다 ----------> 버덥에서 기존 사운드파일을 "사용안함" 지정후 사운드파일을 갖다 붙인후 "풀 프로세싱 모드"로 지정한다(Wav 변환)  ------> Save AVI로 합친다 -----> FLV 인코딩을 한다.

 

 

mp3 변환시 왜 320kbps를 지정하냐면 mp3자체가 손실압축이기 때문입니다. 따라서 데이터손실을 최소화해야 하기 때문에 320kbps를 선택하는 겁니다. (그래도 이론적으로 음질손실이 나긴 합니다.)

 

 

 

이 예제는 그냥 딱 들어도 볼륨차이가 상당하네요.

AC3 5.1채널 영상들은 대부분 gain 수치가 충분히 조정되어 나오고, 다운믹스(DownMix)의 여부를 체감시키기가 힘들기 때문에 따로 예제는 준비하지 않겠습니다. (안한것 -> 못한것.. ㅈㅅ)

 

 

7.인코딩하려는 영상의 사운드가 AAC 5.1ch일때...

이 경우는 별 수가 없는 것 같습니다. Belight로 AAC로 출력하여 인코딩할 수 있지만, AAC를 다른 포맷으로 변환하는 기능은 없는 것 같습니다. 일단 Belight에서 불러오기를 한다음 지원파일 목록을 보면 AAC 자체가 없습니다. 강제로 불러와도 변환이 제대로 되지가 않았습니다.

 

별 수 없이 Switch에서 aac파일을 44100kHz 16bit Stereo wav로 변환한다음 Belight로 불러와 HybridGain 옵션만 걸고 wav로 출력하는 방법을 썼습니다. 5.1채널 -> 2채널 다운믹스를 대충 해버린것 같아 좀 찜찜하긴 합니다. 혹시 방법을 알고 계신 분은 덧글로 연락주시기 바랍니다.

 

<AAC 변환도 지원하는 컨버터, Switch>

 

<스피커볼륨을 크게 놓고 감상하기를 권장, 중간부분부터 압권>

 

요즘 방영하고 있는 아니메 신령사냥은 5.1채널을 지원하고, 사운드에 무지하게 신경을 많이 쓴 작품입니다.

다만 aac버전은 자체볼륨이 조금 낮게 설정이 되어 있어서, 이어폰으로 감상시 볼륨이 충분치 못해 신경이 살짝 거슬리기는 하지만요.

 

그냥 FLV로 변환한것과 적당한 볼륨조절을 거쳐 FLV 변환한것의 사운드차이는 상당합니다.

스피커 볼륨을 어느정도 키워놓고 비교를 해보시기 바랍니다.

DivX mp3버전은 미리 gain이 되어있었지만, HybridGain을 거친 aac와 비교하면 볼륨이 약간 낮습니다. (원소스부터 차이가 나니..)

 

 

8.RichFLV툴을 쓰지 않는 이유

RichFLV툴을 이용하여 FLV의 사운드를 뗐다 붙였다 할 수 있습니다. 사실 FLV 최종인코딩 후 gain하는것도 상당히 괜찮은 방법입니다.

그러나 이 툴을 요즘 쓰지 않는 이유는 최근에 Mncast측에서 FLV의 메타데이터를 강제로 삽입하기 때문입니다. 일단 MNcast서버에 FLV 파일이 등록되면 Mncast 고유의 메타데이터가 삽입됩니다.

 

문제는 RichFLV 툴을 거친 FLV파일이 MNcast 메타데이터 삽입기와 약간 충돌이 일어난다는 점입니다.

등록이 안되는 경우도 있고 등록되더라도 fps값이 1정도 변형되어 기록됩니다. (보통은 뒤의 소숫점값만 늘어납니다.)

따라서 재생시 살짝 끊기는 현상이 발견되었고, JW Player의 캡션을 쓸 경우 뒤로갈수록 싱크가 맞지 않는 현상이 일어났습니다.

 

MNcast가 최근에 메타데이터 삽입기를 사용하는 시기는 곰인코더의 FLV 지원 초기버전 출시와 맞물려있습니다.

아무튼 FLV 편집툴은 이게 유일한데, Mncast에 올릴 시 정보가 약간 변형된다는 것은 유감입니다.

(여러개의 FLV 파일 합치기 기능이 다음버전때 도입될거고 홈페이지에 써져있었던데.. ㅠ.ㅠ)

 

 

9.볼륨조절 옵션

많이 쓰이는 FLV인코딩 툴중에 Show라는게 있습니다. (본인은 이 유틸 한번 써보고 바로 지워버렸음)

이 Show의 인코딩옵션을 보면 볼륨조절이 있습니다. 그리고 버덥에도 볼륨조절을 할 수 있는 기능이 있습니다.

 

 

 

 

그런데 문제는 볼륨을 어느정도 올려야 음질손실(클리핑)이 발생하지 않는지 그리고 그로인해 최대로 올릴 수 있느 볼륨은 어느정도인지를 알 수가 없다는 것입니다. 따라서 MP3Gain을 쓰던가 아니면 알아서 최적gain을 시켜주는 Belight의 HybridGain을 쓰는것이 좋습니다.

 

볼륨의 %와 dB의 관계는 밑의 그림을 참고하세요.

 

<이 그림의 출처는 어딘지 모름.. ㅈㅅ) 

반응형