Bitrate
전자 통신과 컴퓨팅에서 비트레이트(bitrate)는 특정한 시간 단위(이를테면 초 단위)마다 처리하는 비트의 수이다.
비트레이트는 초당 비트 수(비트/초 또는 bps)를 사용하여 계산한다. 여기에 킬로, 메가, 기가, 테라와 같은 SI 접두어가 붙는다.
비트레이트 계산식
용량과 bitrate 의 관계는:
- 용량 (byte) = Bitrate (bps) * 재생 시간 (초) / 8 (byte로 변환)
- Bitrate (bps) = 용량 (byte) / 재생 시간 (초) * 8 (bit로 변환)
Video와 Audio의 Bit Rate는
- Video bit rate = (width x height) * fps * bits per pixel
- Audio bit rate = sample rate * bit depth * audio channel count
Examples
8bit 로 sampling 한 30fps Full HD 비디오 Bitrate는:
WARNING |
참고로 비디오의 "bits per pixel" 은 RGB888 의 24bit 따위가 아니라 양자화된 비트(Quantized bits)를 말한다. 위 예제는 이해를 돕기 위해 8bit를 사용했지만 양자화된 비트(Quantized bits)를 사용해야 한다. 당장에 #비디오 (MPEG1 or MPEG2) 항목만 봐도 Blu-ray Disc 품질이 50Mbps 인데 위의 계산 값만 하더라도 무려 497Mbps 이다. 너무 높다. |
2ch 스테레오, 16bit, 48KHz 오디오 Bitrate는:
비디오 비트레이트 예제를 현실적으로 좀더 이해하기 쉽게
Ohys릴 26분짜리 애니메이션 1개만 하더라도 250MByte 용량을 차지한다. 파일명만 봐도 알 수 있다.
Audio/Audio 정보를 확인해보자.
- Duration: 26 minutes 1 second
- Video
- Dimension: 1280 × 720
- Codec: H.264 (High Profile)
- Frame rate: 23.98 frames per second
- Bit rate: 1110 kbps
- Codec: MPEG-4 AAC
- Channels: Stereo
- Sample rate: 48000 Hz
- Bit rate: 173 kbps
오디오 용량은 다음과 같다:
파일 용량 (헤더 용량 등은 무시한다)에서 오디오 용량을 빼면 비디오 용량이 된다:
비디오의 비트레이트를 역 계산 해보자:
Bitrate (bps) = 용량 (byte) / 재생 시간 (초) * 8 (bit로 변환)
Bitrate (bps) = 228,409,000 / (25*60) * 8
Bitrate (bps) = 약 1,218,181 bps
참고로 24fps 이므로
Video bit rate = (width x height) * fps * bits per pixel
bits per pixel = Video bit rate / (width x height) / fps
bits per pixel = Video bit rate / (width x height) / fps
bits per pixel = 1,218,181 bps / (1280 x 720) / 24fps
bits per pixel = 0.05507
한마디로 ohys릴은 "bits per pixel" 이 0.05507 정도된다는 의미이다. #Quantized bits 표를 봐도 (반올림해서) "lowest quality allowed by twitch" 항목에 해당한다.
FFmpeg 명령으로 본다면:
ffmpeg -i input.mp4 -acodec aac -ac 2 -ab 192k -vcodec libx264 -profile:v high -b:v 1150k output.mp4
Quantized bits
비디오 Bitrate 계산시 사용되는 "bits per pixel" 값의 샘플:
- 0.06 (lowest quality allowed by twitch)
- 0.08 (the bitratecalc "low" quality approximately)
- 0.1 (recommended by twitch - the sweet spot)
- 0.15 (the bitratecalc "high" quality exactly)
- 0.16 (highest quality allowed by twitch)
비디오 (MPEG1 or MPEG2)
- 16 k/bps - 화상전화 품질
- 128~384 k/bps - 비즈니스 지향 화상 회의 시스템 품질
- 1150 k/bps - VCD MPEG1, Video CD Standard 품질
- e.g. Ohys 릴
오디오
- 32 k/bps - AM 품질
- 96 k/bps - FM 품질
- 192 k/bps - DAB (디지털 오디오 방송) 품질
- e.g. Ohys 릴
Trivia
생활에서 체감할 수 있게 해당 단위들이 어느정도 속도인지 설명하면 다음과 같다.
- 파일 전송을 받을 때 아무리 빠른 서버에서 받아도 10 MB/s를 넘기긴 힘들다.
- 동영상 파일을 인코딩할 때 해당 파일의 크기는 비트레이트*재생 시간이다. 즉 비트레이트가 높아질 수록 파일 크기도 커진다.
- 오디오 파일의 경우 보통 모노가 128Kbps로 설정된다.
- 유튜브에 1080p 동영상을 업로드 하려면 비트레이트 수치를 8Mbps에서 15Mbps 정도로 맞춰 올려야 한다.#
- 인터넷 방송에서 1080p, 60fps 방송이 제대로된 화질로 송출되려면 5000Kbps (5Mbps) 이상의 비트레이트가 보장되어야 한다. 보통 고화질 방송은 7000~8000 Kbps (7~8 Mbps) 이상은 되어야 화질이 모자이크로 깨지지 않고 (속칭 깍두기 현상) 제대로 송출을 할 수 있다. 그러나 2018년 기준으로 이 정도 품질로 송출할 수 있는 방송은 얼마 되지 않으며, 방송 플랫폼들도 일부 시청자수 많은 방송에나 이런 송출 환경을 지원해준다. 일반 인터넷 방송인이 이런 설정으로 송출하면 높은 확률로 버퍼가 걸릴 것이다. 이 경우 1080p나 60프레임 둘 중 하나는 포기하고 비트레이트를 5000~6000 Kbps (5~6 Mbps) 정도로 낮춰주면 그나마 부드럽게 송출할 수 있다.
Youtube 권장 업로드 인코딩 설정
YouTube#Recommended upload encoding settings 참조.
See also
Favorite site
- Wikipedia (en) bitrate에 대한 설명
- 비디오/오디오에서 비트레이트(BitRate)란
- 동영상 해상도에 따른 적정 비트레이트 (bit per second)
- BitRate 계산하기 1
References
-
Blog.naver.com_-limsaid-_calculate_BitRate.pdf ↩