본문 바로가기

일하면서 사용한 짧은 지식/RTSP

HEVC(H.265) SPS Parsing 작업을 하면서 알게 된 Base64

HEVC(H.265)로 인코딩된 스트리밍 영상도 우리 회사 솔루션에서 지원해야 할 필요가 있어 해당 작업을 시작.

기존에 구현된 H.264 SPS를 파싱하는 코드를 분석하면서 Base64를 알게되었다.

 

1. Base64란?

8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로 인코딩하는 방식.

 

2. Base64를 사용하는 이유

통신과정에서 바이너리 데이터의 손실을 막기 위해 사용.

ASCII로 Encoding 하여 전송하게 되면 아래와 같은 문제가 발생할 수 있다.

  • ASCII는 7 bits Encoding인데 나머지 1bit를 처리하는 방식이 시스템 별로 상이하다.
  • 일부 제어 문자의 경우 시스템 별로 다른 코드값을 가진다.

Base64는 ASCII 중 제어 문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자만 사용하여 데이터 손실을 막을 수 있다.

 

3. Base64를 사용한 방식

live555를 통해 넘어온 Base64로 인코딩된 SPS 문자열을 Convert.FromBase64String 메서드를 이용해 바이너리 데이터로 디코딩하였다.

 

4. 참고할 사이트

https://docs.microsoft.com/en-us/dotnet/api/system.convert.frombase64string?view=net-6.0 

 

Convert.FromBase64String(String) Method (System)

Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array.

docs.microsoft.com

https://www.csharpstudy.com/Tip/Tip-base64.aspx

 

Base64 인코딩 - C# 프로그래밍 배우기 (Learn C# Programming)

Base64 인코딩 Base64는 바이너리 데이타를 아스키 문자열로 표현하는 인코딩 방식의 하나이다. Base64는 영문 대문자(A ~ Z) 26개, 영문 소문자 (a ~ z) 26개, 그리고 숫자 (0 ~ 9) 10개 등 62개의 값들을 기본

www.csharpstudy.com