Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Service관리
- mitmproxy
- android network
- APK 동적로딩
- so파일 동적로딩
- convert string to intent
- ArrayMap
- RxJava Programming
- APK로딩
- Service 팁
- java callstack
- RxJava 스터디
- lufs
- print callstack
- 음량표준화
- 네트워크 디버깅
- enum performance
- gitignore
- convert Intent to string
- android enum
- MediaDataSource
- corePoolSize
- Intent String 변환
- BlockingQueue Capacity
- callstack 출력
- HashMap vs ArrayMap
- gitignore작성법
- Dagger2란
- 오픈소스라이선스
- Replaygain
Archives
- Today
- Total
일상&개발 로그
미디어 음량 표준화 - ReplayGain 적용하기 본문
미디어 음량 표준화 방법을 찾던 중 ReplayGain이라는 것을 발견 했습니다.
실시간 서비스에서 단말자원으로 다시 encoding을 하는 것이 사실상 불가능하기 때문에 볼륨만 사용해서 음량을 조절하는 ReplayGain은 괜찮은 솔루션으로 생각됩니다.
적용 배경
- 여러 미디어를 재생하는 상황에서 각 미디어의 음량이 다르기 때문에 사용자가 수시로 볼륨을 조절해야 하는 불편을 겪게 됨
- 음량이 다른 원인: https://www.seeko.co.kr/zboard4/zboard.php?id=faq&no=7975
- 용어 정의
- LUFS(Loudness Unit relative to Full Scale)
인간이 소리를 듣는 행위에 대한 특성들을 수치화 하여 나타내는 단위로, 실제 사람이 '어느정도로 크게 느끼는가'를 표현하는 단위계이다.
같은 크기 (같은 dBFS값)라 하더라도 저/고음역 주파수 보다 중음역 (1KHz) 대의 소리를 더 크게 인지하게 되며, 같은 소리라 하더라도 소리가 들려오는 위치에 따라 그 크기를 다르게 인지 (Tiger Effect) 하게 된다.
이로인해, LUFS 단위계는 dBFS 와는 다르게 채널별 측정이 아닌, 청음위치에 대하여 하나의 값 만을 가지게 되며, dBFS와는 표현되는 값의 의미가 매우 다르다. - ReplayGain
2001년에 제안된 음량 표준화 방식으로, MP3나 Ogg등의 소리의 인지적 음량을 평준화하기 위한 수단이다. 트랙이나 앨범을 기준으로 작동하며 현재 이를 지원하는 재생기는 꾸준히 늘고 있다.
ReplayGain 적용된 player - PowerAMP, Neutron Music Player, Vanilla Music, foobar2000 등등.
- LUFS(Loudness Unit relative to Full Scale)
- Concept
- ReplayGain은 Media파일 인코딩 시 Metadata Tag에 특정 값을 추가하여 재생 시 MediaPlayer의 볼륨을 조절한다.
- ReplayGain에 사용되는 값은 LUFS로 도출 할 수 있다.
- 서버에서 받은 LUFS값을 이용해 ReplayGain 값을 구한 뒤 이를 이용하여 MediaPlayer에 weight를 설정한다.
- Function
- RG = Lr - L (Lr: reference level, L: loudness of the audio file)
- weight =
- References
- 설명
- specification - http://wiki.hydrogenaud.io/index.php?title=ReplayGain_2.0_specification
- Vanilla Player (ReplayGain을 사용한 open source player) - https://github.com/vanilla-music/vanilla
'개발 > 안드로이드 개발' 카테고리의 다른 글
mitmproxy를 이용한 Android 네트워크 디버깅 (0) | 2018.08.24 |
---|---|
MediaDataSource를 이용한 프로그레시브 재생 구현 (2) | 2017.08.03 |
[PerformancePattern] Enum (0) | 2017.05.23 |
[PerformancePattern] ArrayMap vs HashMap (0) | 2017.05.22 |
[PerformancePatterns] Service 올바르게 사용하기 (0) | 2017.05.18 |
Comments