티스토리 뷰

기타 개발/동영상

H.264 와 MPEG, FFmpeg

beankhan 2019. 1. 18. 11:09


H.26X

표준 동영상 압축 규격으로, ITU 의 한 부서 (VCEG) 에서 정한다.
ISO 에서 정하는 규격은 MPEG 으로 영상과 음성 시스템을 포함한 폭넓은 규격을 말한다.
ITU, ISO 에서 표준화를 함께 진행하는 경우가 많다.
(H.264 = MPEG-4 Part 10 (AVC) )


대부분의 표준은 특허권이 걸려있어 무료가 아니다.
H.264 코덱을 이용하는 한국 DMB 도 MPEG-LA 에 로열티를 지불하고 있다.
MPEG-LA 는 수익을 얻지 않거나 
일정 규모 이하의 경우에는 사용료를 면제해준다.

Xvid 나 x264 와 같이 오픈소스 그룹에서 만드는 호환 규약을 써도 로열티 문제는 해결되지 않는다.
위 2가지를 사용하면 GPL 이나 LGPL 규약을 따라야 해서 프로그램 소스 공개의무가 있다.



H.264

2003 년에 발표된 동영상 표준 규격으로 AVC(Advanced Video Coding) 이라는 것으로도 쓰인다.
압축률도 좋고 낮은 비트레이트에서도 좋은 화질을 가진다.

자세히) https://namu.wiki/w/H.26x?from=H.264#s-6


Profile, Level

사용하는 Device 에 따라 다양한 용도에 맞는 가이드라인을 제시하기 위해
Profile, Level 이라는 개념이 생겼다.

Profile 은 크로마 샘플링을 비롯한 잡다한 기법들이 적용된 가짓수 혹은 스펙의 정도를 구분한다.
이것저것 적용될수록 고화질을 제공하지만, 하드웨어 자원을 많이 요구한다.
Level 은 해상도, 프레임속도(fps), 비트레이트 같은 양적인 부분을 담당한다.






FFmpeg

모든 동영상, 음악, 사진 포맷들의 디코딩과 인코딩을 목표로 만들어지고 있는 오픈소스 프로젝트이다.

LGPL, GPL 이중 라이센스를 따른다.

(국산 플레이어의 GPL 위한 의혹 - https://namu.wiki/w/FFmpeg#s-6)


제공하는 것들

ffmpeg - 미디어 포맷 변환 도구
ffserver - 라이브 방송을 하는 멀티미디어 스트리밍 서버
libavcodec - 오디오/비디오 코덱 라이브러리
libavformat - 멀티미디어 컨테이너의 디먹서/먹서 라이브러리
libavdevice - 입출력 장치 제어 라이브러리
libavfilter - 미디어 필터 라이브러리
libswscale - 이미지 처리 라이브러리
libswresample - 오디오 처리 라이브러리



Decoder

동영상을 재생할 때 쓰이는 코덱으로

iOS, Mac, Android, Windows 등 모두 FFmpeg 의 libavcodec 을 기반으로 하고 있다고 무방하다.




Encoder

대다수 인코더 프로그램들은 모두 FFmpeg 기반이다.
FFmpeg 을 기반으로 하는 인코더로는 곰인코더, 팟인코더,
서비스로 아프리카가 있다.
많은 인터넷 동영상 사이트들도 ffmpeg 을 이용하고 있다. 
Lavf (libavformat) 을 사용하고 있으며 영상 인코딩에도 libavcodec 을 사용하고 있다.


Wiki) https://trac.ffmpeg.org/wiki

General option) https://namu.wiki/w/FFmpeg#s-4.4

Filter Option) https://trac.ffmpeg.org/wiki/Encode/H.264

Compression Quality Measure / SSIM, PSNR) http://blog.naver.com/PostView.nhn?blogId=y4769&logNo=220505513170













'기타 개발 > 동영상' 카테고리의 다른 글

동영상, Codec, Container  (0) 2019.01.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함