마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

avc1과 mpg4차이??

0 추천
안녕하세요 찾다찾다 정확히 모다 안나와서 질문 올립니다


동영상 인코딩을 개발하고 있는데

인코딩후 영상 코덱정보 보는 프로그램으로 해당 파일을 열어보면

비디오 코덱란에 avc1이라 되어있고  mpeg-4/.264라는게 있고

다른 파일은 코덱란에 mpg4     mpeg라고 되어있네요

동영상 압축 순이 mpeg4 < h264라는건 알겠는데

앞에 avc1이라는게 무슨 말인지....

그리고 동영상 비트레이트 라는것을 셋하는데

해당값을 보통 몇으로 해야하는지 화면 전송률?이라고 하는데

높을수록 고화질?이라는것 같은데 어떤값을 써야 하는지

참고할만한게 없네요 ㅠㅠ



그리고 영상 코덱 인코딩 하는 방법이 너무 어렵네요

어디 참고할만한 사이트나 도움이되는 곳이 없을까요??

도움좀 부탁드립니다
뱀휅휅 (1,170 포인트) 님이 2015년 7월 15일 질문

1개의 답변

+2 추천

 비디오의 경우 영상/오디오 정보를 가진 부분 + 실제 데이터로 구성되며,

구성 형식에 따라 mp4, mov, avi, mkv 등 여러 컨테이너가 존재 합니다.

분석툴이 어떤 것 인지 모르겠지만 말씀 주신 mpeg-4/.264 에서 mpeg-4는 mp4 컨테이너를 사용했다는 의미로 보입니다.

 

뒤에 나오는 .h264의 경우 영상을 인코딩할 때 사용하는 코덱으로 ms에서 만든 wmv 코덱이나, 고화질용으로 만든 h265(hevc), 구글에서 미는 VP8등의  코덱도 존재를 하나  주로 H264(AVC1),  mpeg(DIVX, XVID) 를 사용합니다. 

압축 알고리즘에  따라 zip, rar, egg 등이 있듯이, 코덱은 영상을 압축하는 규칙이라 생각하시면 될 듯 하네요..

 

아무튼 답변 드리면,

1. AVC는 Advance Video Codec 의 약자로  h264와 avc1는 이름만 다를 뿐.  같은 코덱이라 보시면 됩니다.

 

2. 동영상 비트레이트의 경우 1초 재생 시 필요한 데이터 량이라 생각하시면 됩니다.

데이터 량이 많으면 보다 많은 정보를 가질 수 있어, 동일한 환경으로 압축을 한다면,  화질등의 정보가 많이 들어갈 수 있기 때문에,  상대적으로 비트레이트를 적게 하는 것보다,  고화질이 되는 것으로 단말 및 망속도에 따라 달라지는 지라. 딱히 기준은 없습니다.

단지 구글카메라에서는 아래 파라메터로 기본값을 정하고 있으니 

원하시는 해상도의  audioBitRate+videoBitRate 값을 설정 하시던지, 

http://developer.android.com/reference/android/media/CamcorderProfile.html 

다음 팟을 보시면, 인코딩 설정을 단말마다 다르게 해 둔 프리셋 정보가 있으니 참조 하시면 될 듯 합니다. 

 

3. 인코딩의 경우  MediaRecoder를 사용하시면 되며, SDK sample을 받아보시면, 예제 코드가 있습니다. 

젤리빈 이상단말이 목표라면 MediaMuxer를 사용하셔도 되긴 합니다. 

사악미소 (65,330 포인트) 님이 2015년 7월 15일 답변
사악미소님이 2015년 7월 15일 수정
...