에몽이

미디어 파일 포맷의 종류 본문

Backend/protocol

미디어 파일 포맷의 종류

ian_hodge 2017. 4. 14. 14:18

미디어 파일포맷은 여러 종류의 파일 포맷이 있다. mp4,mov,avi,wmv,flv,rm,asf,3gp,mkv, swf,mp3,aac.. 등 참으로 다양하고 많은 파일 확장자를 가지고 있는 미디어 파일 포맷들은 각각의 형식과 특성이 있으며, 재생을 위한 플레이어나 코덱의 특성 타는 경우도 있다.

이처럼 다양한 미디어 파일 포맷 중 동영상 파일 포맷 구성형식은 일반적으로 비디오 코덱 과 오디오 코덱의 인코딩된 데이타를 담고 있는 컨테이너라고 말할 수 있다.

우리가 일반적으로 알고 있는 파일의 확장자을 보고 해당 파일이 무슨 미디어 파일 인지는 대략적으로 알 수 있지만, 미디어 파일의 정보 중 비디오 코덱 정보, 오디오 코덱 정보 ,해상도 등의 영상의 정보들 을 자세히는 알 수 없다. 일반적으로 파일 확장자을 보고, 아 미디어 파일 이구나 또는 워드 같은 문서 파일 이구나 등의 대략적인 파일형식만 알 수 있는 것이다.

같은 mp4 확장자을 가진 파일포맷 이라도 (영상/음성)코덱 과 해상도,비트레이트 등 다양한 형식의 조건에 따라 디바이스 별로 재생이 가능하거나 불가능한 경우도 있다. 이처럼 스마트 폰이 대중화 되면서 NScreen 환경이 가능하고 보편화 되면서 이와 관련 미디어 서비스을 하고 있는 업체에서는 NScreen에 적합한 서비스을 위한 미디어 파일은 무엇인지 또는 각각의 디바이스별 특성맞은 미디어 파일은 뭐가 있고,또는 적합한지를 확인해 봐야 한다.

유튜브 및 온라인비디오플랫폼(OVP) 서비스를 하는 회사들이 동영상 클라우드 서비스을 하기 위해 비디오 파일을 인터넷에 통해 Publishing 하면서 PC, 스마트 폰, IPTV ,태블릿 PC 등 N-스크린에서 재생가능한 동영상 파일 및 기타 미디어 파일에 대해서 포괄적으로 확인해 보고자 한다.

그럼 아래와 같이 미디어 파일 종류 및 포맷 에 대해서 간략하게 알아 보자

Flash Video Format (.flv)

어도비사에 개발한 동영상 파일 포맷으로 플래쉬 플레이어에서 재생이 가능하며, 유튜브 같은 많은 인터넷 스트리밍 서비스을 하고 업체에서 많이 이용되고 있는 동영상 파일 포맷 이다. 파일구조는 flv header , flv body(tag+data) 의 단순한 구조로 되어 있으며,flv header 는 9byte 이며, flv 헤더에 flv 파일임을 나타내는 표시 와 음성과영상이 포함 되어 있는지를 나타내고 있다.
flv body 는 tag + data 반복해서 구성 되어 있으며, tag 구조에 datasize , timestamp 등으로 나타내고 있다.

FLV header

● Field Type Comment
● Signature UI8 Signature byte always ‘F’ (0x46)
● Signature UI8 Signature byte always ‘L’ (0x4C)
● Signature UI8 Signature byte always ‘V’ (0x56)
● Version UI8 File version (for example, 0x01 for FLV version 1)
● TypeFlagsReserved UB[5] Must be 0
● TypeFlagsAudio UB[1] Audio tags are present
● TypeFlagsReserved UB[1] Must be 0
● TypeFlagsVideo UB[1] Video tags are present
● DataOffset UI32 Offset in bytes from start of file to start

FLV file body

● Field Type Comment
● PreviousTagSize0 UI32 Always 0
● Tag1 FLVTAG First tag
● PreviousTagSize1 UI32 Size of previous tag, including its
● header. For FLV version 1, this value
● is 11 plus the DataSize of the previous
● tag.
● Tag2 FLVTAG Second tag

코덱으로는 초기에는 Sorenson(h.263) 주로 사용되었으며, 그 이후에는 고화질의 On2 사 의 VP6 , h.264 등 주로 사용하고 있다.

MP4 Format (.mp4)

MPEG-4 Part 14 일반적인 줄인말로 미디어 컨테이너 포맷 표준이며,고화질의 동영상을 높은 압축률로 저장하고 재생하도록 하는 기술이다.
H.264 codec 으로 인코딩되어 용량 대비 화질이 우수할 뿐만 아니라, PC 및 스마트 폰 등 다양한 디바이스에서 재생이 가능하여 인기가 많은 파일 포맷 중 하나 이며 , 멀티미디어 인터넷 서비스 하는 업체 등 에서 주로 사용하는 파일포맷이기도 하다.
mp4 파일 구조는 데이타 와 메타데이타 박스 구조 되어 있다 .박스 or Atom 이라고도 하며, Box는 Boxsize,Boxtype,Boxdata 구성 되어 있다.

mp4 파일의 간략한 구조
mp4 파일의 간략한 구조 01

● ftyp : 파일의 호환성을 확인하는 파일 타입 박스(file type box)
● moov : 미디어의 모든 메타 데이타를 저장하는 무비 박스(movie box)
● mvhd: 무비 헤더 박스(movie header box)
● trak : 특정 미디어의 메타 정보, 보통 오디오와 비디오 두개가 있다.
● stsd : 트랙의 디코딩에 필요한 코덱의 정보 (sample description box)
● stts : 샘플의 시간 (time-to-sample box)
● stsz : 청크 내 샘플의 크기 (sample size box)
● stsc : 청크 내 샘플의 수 (sample to chunk box)
● stco : 청크의 위치 (chunk offset box)
● mdat : 실제 미디어를 저장하는 미디어 데이타 박스(media data box)

ffmpeg or mencoder 로 일반적으로 인코딩을 하면 moov 박스가 파일 끝에 위치하게 되어 있는데 해당 파일을 웹 서버에 놓고 인터넷 서비스을 할 경우 메타정보가 파일끝에 있어서 파일을 끝까지 다운로드을 해야 재생이 가능한 경우도 있다.
Http Progressive download 서비스을 하기 위해서는 미디어의 메타 정보을 담고 있는 moov 박스을 파일헤더에 위치해 놓아야 한다.

인코딩 완료 후 moov 박스 위치가 파일끝에 위치하고 있으면, 해당파일을 파싱하여 헤더 위치 변경하거나, MP4box 또는 qt-starter ffmpeg plugin 툴 인코딩 완료 후 처리 할 수도 있다. 최근에 ffmpeg 버전에서는 인코딩 옵션 중 moov box 관련한 faststart 옵션도 있다.

AVI Format (.avi)

AVI (Audio Video Interleave) 파일 포맷은 마이크로 소프트사에서 개발한 동영상 파일 포맷이다. 오디오와 비디오 파일이 함께 순차적으로 들어 있다고 해서 AVI (Audio Video Interleave) 라고 나타내고 있다.
윈도우 시스템의 표준 동영상 파일 포맷으로써 널리 쓰고 있으며, 많은 압축 코덱(Codec)들이 존재한다. 윈도우 사용하는 컴퓨터는 AVI 포맷의 동영상 파일 재생 지원 그 이후 다양한 플레이어에서 재생 할 수 있다.

● Apple QuickTime Player (windows & Mac)
● Microsoft Windows Media Player (Windows & Mac)
● VideoLAN VLC media player (Windows & Mac)
● Nullsoft Winamp

Quicktime Format (.mov)

Apple 사에서 개발된 동영상 파일 포맷이며, 매우 일반적인 포맷 중 하나 이다.
Windows의 기본 동영상 포맷인 avi와 같이 여러 가지 동영상 압축 코덱(Codec)을 담을 수 있는 컨테이너 포맷이다.
컨테이너 포맷에서 여러개의 트랙이에 비디오,오디오 ,텍스트 또는 effects 포함 할 수 있다
Mac 또는 윈도우 Platforms 에 Quicktime Player 로 재생이 가능하다.

Windows Media Video Format (.wmv)

wmv 는 마이크로 소프트 사에서 개발된 동영상 파일 포맷이다. ASF (Advanced Systems Format) 기반의 파일 포맷이며,고압축 인터넷 환경에 적합하게 설계 되었다.
대표적으로 윈도우 환경의 미디어 플레이어 및 실버라이트 플레이어로 재생이 가능하다.

3GP File Extension (.3gp)

3G 모바일 플랫폼 환경 위해 개발된 멀티미디어 파일 포맷이다.
일부 2G 및 4G 환경에서도 재생이 가능하다.

● Apple QuickTime Player
● RealNetworks RealPlayer
● VideoLAN VLC media player
● MPlayer
● MIKSOFT Mobile 3GP Converter (Windows)

webM

webM 파일 포맷은 web 환경적합하도록 설계된 오픈소스 및 로얄티가 없는 미디어 파일 포맷이다.
비디오 코덱은 구글이 스폰서 및 개발지원하고 있는 VP8 코덱을 채택하고 있으며, 음성코덱은 Vorbis 을 사용하고 있다. 파일 포맷 구조(컨테이너)는 Matroska 베이스 기반으로 설계 되었다.

특징으로 아래와 같다.

● 노트북 ,저전력 컴퓨터등의 디바이스에서 재생이 가능하도록 설계됨
● 단순한 파일 포맷
● 고품질의 실시간 비디오 딜리버리
● 인코딩하는 과정의 단순화
● 최소한의 코덱프로파일과 옵션으로 인코딩 가능

출처

http://www.webmproject.org/about/
http://www.tta.or.kr/index.jsp
http://terms.naver.com/list.nhn?cid=59&categoryId=59&categoryType=subject

Written by 김민수 @ 카테노이드 연구소

'Backend > protocol' 카테고리의 다른 글

HTTP Live Streaming  (0) 2017.04.14
온라인 동영상 전송을 위한 미디어 서버  (0) 2017.04.14
스트리밍(Streaming) 용어 – HLS(Http Live Streaming)  (0) 2017.04.14
tcp/ip,http,웹소켓  (0) 2017.04.14
TCP 3 핸드 쉐이킹  (0) 2017.04.14
Comments