코덱 (예 : DivX)이란 무엇이며 파일 형식 (예 : MPG)과 어떻게 다릅니 까?


95

너무 혼란 스러워요. 오디오 / 비디오 코덱의 차이점은 무엇입니까? 비디오 포맷?
(나는 올바른 용어를 사용하고 있습니까?)

즉, "MPEG-4"라고 말하는 것과 "DivX"코덱을 사용한다고 말하는 것의 차이점은 무엇입니까? Windows Media Player가 때때로 .mpg파일을 실행하지만 때로는 실행하지 않는 이유는 무엇 입니까?

또한 다음 중 코덱, 파일 형식 및 코덱 중 어느 것이 아닌가?

  • 퀵타임 MOV
  • MPEG (1, 2, 3, 4)
  • WMV
  • FFmpeg
  • AVC
  • Xvid
  • DivX (이것은 회문, Xvid와 어떻게 다릅니 까?)
  • H.264

2
6 년 후 내 자신의 질문을보고 생각할 수있는 것은 "어떻게 알지?"
Mehrdad

1
우리는 모두 어딘가에서 시작했습니다. ;)
Hashim

답변:


146

몇 가지 주요 정의 :

  • 코덱 (예 : H.264, HEVC, VP9)은 비디오 또는 오디오 부분만을 담당하며 하나 이상의 코덱을 컨테이너에 병합 할 수 있습니다.
  • 컨테이너 (예 : MP4, MKV)는 컨테이너를 함께 보관할 책임이 있으며, 선택한 미디어 플레이어에서 일반적으로 여는 항목이기도합니다.
  • 특정 인코더 (예 : x264, libvpx)는 입력 스트림을 코덱 호환 비트 스트림으로 변환합니다. 하나의 특정 코덱에 여러 인코더가있는 경우가 종종 있습니다.

보시다시피 여기 몇 가지를 설명해야합니다.

코덱이란 무엇입니까?

코덱은 근본적으로 단지 이하의 수단 인코더 / 디코더에 대한 짧은 : 인코더에 의해 생성 된 데이터는 항상 적절한 디코더에 의해 디코딩 될 수있다. 이것은 비디오, 오디오에 유효하지만 암호화에 대해서도 생각할 수 있습니다 (인코더는 암호화 된 메시지를 표시하기 위해 적절한 디코더가 필요합니다).

오늘날 비디오 코덱이 지정 될 때 비디오 코덱에 참여하는 기관은 일반적으로 표준 구문 만 지정합니다 . 예를 들어, "비트 스트림 형식은 다음과 같아야합니다", " 0x810429AAB여기에서 그 형식 으로 변환됩니다"등을 말합니다. 종종 참조 엔코더와 디코더를 제공하지만, 그런 다음 인코더가 형식은 제조업체에 달려 있습니다.

이것이 바로 동일한 코덱에 대해 너무 많은 인코더를 찾은 이유 중 일부는 상용입니다.

사례 예 – H.264

용어를 혼합하기 전에 예를 들어 봅시다. H.264 의 경우를 고려하십시오 . 표준 이름은 H.264이며 실제 엔코더 이름이 아닙니다. x264 는 무료이고 오픈 소스 인 반면 Mainconcept 는 매우 훌륭한 상용 인코더 입니다. 물론 둘 다 좋은 품질을 제공한다고 주장합니다.

인코딩을 최적화 할 수 있다는 사실만으로도 경쟁이 치열 해집니다. 두 엔코더 모두 H.264 호환 디코더로 항상 디코딩 할 수있는 표준화 된 비트 스트림을 제공합니다.

요약

따라서 엔코더는 다음과 같이 말합니다.

  • 비디오 프레임을 찍다
  • 유효한 비트 스트림을 생성

그런 다음 비트 스트림이 컨테이너로 다중화됩니다.

디코더는 :

  • 유효한 비트 스트림을 가져 가라
  • 그것에서 비디오 프레임을 재구성

둘 다 코덱 표준을 준수합니다. 그게 다야!


현재 코덱

요즘에는 아래에서 언급 할 코덱으로 인코딩 된 비디오 만 찾을 수 있습니다. 흥미롭게도, 거의 모든 것이 MPEG ( Motion Picture Experts Group)에 의해 만들어졌습니다 . 그러나 로열티가없는 다른 코덱도 있습니다. 예를 들어 MPEG 표준과 경쟁하는 Google 또는 Alliance for Open Media에서 만든 코덱도 있습니다.

"MPEG"는 아래에서 볼 수 있듯이 코덱과 컨테이너를 모두 참조 할 수 있습니다. 이것은 혼란을 가중 시키지만 "MPEG"만으로는 아무 의미도 없습니다. 예를 들어 "MPEG 형식의 파일이 있습니다"는 매우 모호합니다.

MPEG-2

MPEG-2는 상당히 오래되었습니다. MPEG-2 비디오는 DVD 및 TV 방송 (예 : DVB-T 또는 위성) 및 호환성이 중요한 레거시 응용 프로그램에 주로 사용됩니다. MPEG-2 비디오는 주로 .MPG 컨테이너에 있습니다.

MPEG-4 2 부

이것은 아마도 2000 년대 중반에 웹용 비디오를 인코딩하는 데 주로 사용되었지만 아마도 대체되었습니다. 실제 파일 크기에서 좋은 품질을 제공하므로 90 분 길이의 전체 동영상을 600MB CD에 구울 수 있습니다 (MPEG-2의 경우 DVD가 필요 했지만 여기에서 내 대답 참조 ). 더 이상 HD 또는 4K 콘텐츠에는 적합하지 않습니다.

MPEG-4 Part 2 비디오를 출력하는 일부 인코더는 DivX , 오픈 소스 리핑 XviDNero Digital 입니다.

MPEG-4 Part 2 비디오는 대부분 AVI 컨테이너에 들어 있지만 MP4 도 자주 보입니다.

MPEG-4 Part 10 / AVC / H.264

이것은 MPEG-4 AVC (Advanced Video Coding) 또는 H.264 라고도합니다 . 오늘날 가장 많이 사용되는 코덱입니다. 작은 파일 크기에서 우수한 품질을 제공하므로 인터넷 또는 모바일 장치의 모든 종류의 비디오에 완벽하게 적합합니다. 전화기에서 캠코더에 이르기까지 거의 모든 최신 응용 프로그램에서 H.264를 찾을 수 있습니다. Blu-ray 디스크에서 비디오는 이제 H.264로 인코딩됩니다.

이를위한 일부 인코더는 x264 , NVENC (NVIDIA의), Mainconcept 입니다. 비디오는 대부분 MP4 , MKV 또는 MOV 컨테이너로 제공됩니다.

HEVC / H.265

MPEG-H Part 2라고도하며 MPEG-4 Part 10 / AVC / H.264의 후속 제품입니다. 높은 해상도 (최대 8K ) 를 목표로 하며 H.264에 비해 최대 50 % 높은 인코딩 성능 (품질 대 비트 전송률)을 제공 할 수 있습니다 ( 예 : 이 백서 참조 ).

이 표준은 2013 년에 발표되었으며 천천히 코덱이 점점 더 예를 들어 IPTV 또는 온라인 비디오 전송에 사용되기 시작했습니다. HEVC는 또한 iOS에서 비디오와 이미지를 저장하기 위해 Apple에서 사용합니다 ( HEIF 사용 ). 그러나 HEVC와 관련된 여러 특허 풀이 있다는 사실은 많은 회사 (거의 Apple을 제외한 모든 회사)에서 로열티가없는 대안으로 전환하고 있습니다. HEVC는 또한 모든 브라우저에서 기본적으로 지원되지 않으므로 웹 스트리밍에 사용할 수 없습니다.

가장 잘 알려진 인코더는 x265 입니다. NVENC있습니다 . 비디오는 일반적으로 MP4 컨테이너로 제공됩니다.

VP9 및 AV1

VP9 (VP8의 후속)는 주로 Google에서 개발 한 코덱입니다. 개방적이고 로열티가 없으며 많은 브라우저에서 구현됩니다 . 품질은 HEVC와 거의 비슷하고 때로는 더 우수합니다 ( Netflix 의이 문서 참조 ). VP9는 YouTube를 지원하는 브라우저에서 YouTube를 볼 때 얻을 수있는 것입니다.

VP9는 libvpx 인코더 로 인코딩 할 수 있으며 종종 WebM 또는 MKV 컨테이너로 제공됩니다.

일부 회사는 HEVC와의 경쟁을 강화하기 위해 모여 있었지만 로열티가없는 대안이었습니다. AV1 은 VP9의 후속 제품이 될 것이며 VP10이 될 것으로 예상됩니다. Open Media for Alliance (Amazon, Cisco, Google, Intel, Microsoft, Mozilla 및 Netflix에서 설립)의 지원을받습니다. 자세한 내용은 여기를 참조하십시오 .

libaom의 인코더는 AV1 비트 스트림을 생성하는 데 사용할 수 있지만, 아직 실험이다.


형식 (컨테이너)이란 무엇입니까?

지금까지는 원시 "비트 스트림"에 대해서만 설명했지만 기본적으로 실제로는 원시 비디오 데이터입니다. 실제로 그런 원시 비트 스트림을 사용하여 비디오를 볼 수 있습니다. 그러나 대부분의 경우 충분하지 않거나 실용적이지 않습니다.

따라서 비디오를 컨테이너에 싸야합니다. 몇 가지 이유가 있습니다.

  • 어쩌면 비디오와 함께 오디오를 원할 수도 있습니다.
  • 동영상의 특정 부분으로 건너 뛰고 싶을 수도 있습니다 (예 : "1 : 32 : 20.12로 이동")
  • 오디오와 비디오 모두 완벽하게 동기화되어야합니다
  • 비디오는 안정적인 네트워크를 통해 전송되고 패킷으로 분할되어야합니다.
  • 비디오는 3G와 같은 손실이있는 네트워크를 통해 전송되어 이전에 패킷으로 분할 될 수도 있습니다.

이러한 모든 이유로 인해 컨테이너 형식이 개발되었으며 일부는 단순하고 일부는 더 고급화되었습니다. 그들이하는 것은 비디오 비트 스트림을 다른 비트 스트림으로 "랩핑"하는 것입니다.

컨테이너는 프리젠 테이션 타임 스탬프 (PTS) 에 따라 비디오 및 오디오 프레임을 동기화 하여 정확히 동시에 표시되도록합니다. 또한 필요한 경우 스트리밍 서버에 대한 정보를 추가하여 스트리밍 서버가 파일의 어느 부분을 언제 전송할지 알 수 있도록합니다.

인기있는 컨테이너를 살펴 보겠습니다.


인기있는 용기

대부분 다음 컨테이너에 포장 된 비디오를 찾을 수 있습니다. 덜 인기있는 것들도 있지만, 내가 말했듯이 대부분은 다음과 같습니다.

AVI

Audio Video Interleave (오디오 비디오 인터리브)-가장 기본적인 컨테이너이며 오디오와 비디오를 인터리브하기 위해 사용됩니다. 1992 년에 작성되었으며 오늘날에도 사용되지만 레거시로 간주되므로 더 이상 사용하지 마십시오.

MP4

MPEG-4 Part 14 라고도하며 QuickTime 파일 형식을 기반으로합니다. 이 형식은 H.264 비디오의 형식이지만 HEVC, MPEG-4 Part 2 및 MPEG-2를 감 쌉니다.

이 컨테이너는 오디오 만 랩핑 할 수 있기 때문에 비디오가 아니라 AAC 인코딩 오디오 인 .mp4 파일이 .m4a 파일 (확장자 만 다름)에 많이 있습니다. 확장자 .m4v는 일반적으로 비디오 비트 스트림에 사용됩니다.

MKVWebM

Matroska Video (MKV)는 기본적으로 H.264에서 VP9까지의 코덱과 많은 오디오 코덱을 지원하기 때문에 오늘날 흔히 볼 수있는 오픈 소스 및 무료 파일 형식입니다.

WebM은 MKV를 기반으로하며 주로 VP9 비디오 및 Opus 오디오에 사용됩니다. 이러한 코덱을 사용할 때 웹 스트리밍 비디오를 위해 선택되는 컨테이너입니다.

오그

Ogg 컨테이너는 Theora 비디오 코덱 (및 Vorbis 오디오 코덱 )을 위해 선택된 컨테이너이며 Xiph.Org Foundation에서도 만들었습니다. 또한 코덱과 마찬가지로 무료이며 오픈 소스입니다.

FLV

Flash 비디오 형식은 스트리밍 응용 프로그램에서 사용하기 위해 Adobe에서 만들었습니다. 스트리밍이 수행되는 방식이 지난 몇 년 동안 크게 바뀌 었으므로 더 이상 사용되지 않습니다.


인기있는 코덱 및 형식

또한 다음 중 코덱, 파일 형식 및 코덱 중 어느 것이 아닌가?

  • 퀵타임 MOV는 : .MOV는 의 파일 확장 퀵타임 파일 포맷 A는, 컨테이너 애플이 만들었습니다. 이 컨테이너는 나중에 MP4에 적합했습니다. 모든 종류의 코덱을 운반 할 수 있습니다. 퀵타임 은 실제로 전체 미디어 프레임 워크이며, 내가 염려하는 한 코덱 자체를 실제로 지정하지는 않습니다.
  • MPEG (1, 2, 3, 4) : 영화 전문가 그룹에 의해 정의 된 표준. 자세한 내용은 위의 내 게시물을 참조하십시오.
  • WMV : Windows Media 비디오. 실제로 는 .wmv 확장자를 다시 사용 하는 Advanced Systems Format 컨테이너에 싸여 있는 코덱 입니다. 이상하지만, 그 방식입니다.
  • FFmpeg : 코덱이나 컨테이너가 아닙니다. 다른 코덱과 컨테이너 간 변환을 허용하는 비디오 도구 라이브러리입니다. FFmpeg 는 각각 코덱과 컨테이너를 생성하기 위해 오픈 소스 libavcodeclibavformat라이브러리에 의존합니다 . 현재 사용중인 대부분의 비디오 도구는이 도구를 기반으로합니다.
  • AVC : MPEG-4 Part 10 또는 H.264의 동의어.
  • DivX : MPEG-4 Part 2 비디오를위한 또 다른 유형의 인코더.
  • Xvid : MPEG-4 Part 2 비디오를위한 한 가지 유형의 인코더. 오픈 소스, DivX의 무료 버전 일 뿐이며 논쟁의 여지가 있습니다.
  • H.264 : MPEG-4 Part 10 또는 AVC의 동의어.

참고 사항 :

올바른 용어를 사용하고 있습니까?

오해를 피하기 위해 "포맷"대신 "코덱"과 "컨테이너"를 구체적으로 사용하는 것을 선호한다고 생각합니다. 코덱 컨테이너 모두 형식을 지정 하기 때문에 형식은 이론적으로는 아무 것도 될 수 없습니다 (예 : 데이터 표현 방법).

말했다되고 있음을의 는 FFmpeg의 용어는 컨테이너에 대해 "형식"을 사용하는 것입니다. 이것은 또한 다음과 같은 차이점 때문입니다.

  • libavcodec인코딩 / 디코딩 라이브러리
  • libavformat컨테이너 라이브러리

33
자, 그것이 바로 질문에 대답하는 것입니다. 잘 했어.
Francesco

1
좋은 대답이지만 Ogg 컨테이너 형식을 놓쳤습니다.
이그나시오 바스케스-아 브람스

7
이것은 내가 본 동안 가장 멋진 답변입니다. 훌륭한 설명을 주셔서 감사합니다! :)
Mehrdad

@Mehrdad 다행이 ​​주제에 빛을 비출 수 있습니다. 감사합니다 :)
slhck

1
때때로 당신은 당신이 답에 대해 복수의
공감대를

3

일반적으로 미디어 '형식'은 실제로 오디오 스트림 (일부 오디오 코덱)과 비디오 스트림 (일부 비디오 코덱) 및 때로는 추가 정보를 포함하는 컨테이너입니다. 대부분의 '파일'은 코덱이 아닌 컨테이너를 기반으로 한 파일 유형을 가지고 있습니다

FFmpeg는 컨테이너 나 코덱이 아닙니다. 많은 변환기와 음악 플레이어의 기초가되는 파일 변환을위한 다양한 라이브러리, 코덱 및 소프트웨어 제품군입니다.

H.264 / AVC 및 xvid / divx는 코덱입니다

AVI (divx / xvid 파일), mp4, mpeg는 컨테이너입니다.

quicktime mov에 대해 잘 모르겠습니다. .mov는 컨테이너이고 quicktime은 코덱입니다.


"Quicktime"코덱이 없습니다. Quicktime은 .mov 컨테이너, 다양한 코덱을 인코딩, 디코딩 및 표시하기위한 소프트웨어 및 Quicktime VR과 같은 다른 호기심을 포함한 멀티미디어 프레임 워크입니다.
stib

1

거기 코덱 들과 컨테이너 (파일 포맷). 코덱은 데이터의 인코딩 / 디코딩 방법을 설명합니다. 다른 하나는 인코딩 된 데이터가 파일 내에 배치되는 방법을 설명합니다.

대부분의 미디어 플레이어는 여러 코덱 및 컨테이너 유형을 지원합니다. 이것은 혼란 스럽기 때문에 자세한 정보는 내 참조를 읽는 것이 좋습니다.


-1

형식은 특정 파일 형식 유형과 압축 유형에 지정된 이름이며 (대부분의 비디오는 크기를 줄 이도록 압축되어 있음) 코덱은 실제로 압축하고 읽을 수 있으며 압축을 풀면 보이는 비디오로 변환 할 수있는 것입니다 . 다시 말해, 하나는 파일 형식이지만 다른 하나는 소프트웨어입니다.

일반적으로 대부분의 비디오는 형식 이름으로 참조하므로 Quicktime MOV, MPEG 및 WMV는 형식입니다.

FFmpeg (이것에 대해 들어 본 적이 없다)는 다양한 형식을 다른 형식으로 변환하는 소프트웨어의 이름으로 보인다.

AVC와 H.264는 동일하며 HD 비디오를 인코딩하기위한 형식입니다.

DivX는 상업적으로 판매되는 코덱입니다.

Xvid는 MPEG-4 용 코덱입니다.


1
ffmpeg는 99 %의 FOSS 변환기에 대한 백엔드입니다.
Journeyman Geek

이 답변은 잘못되었습니다. 7 개의 문장 중에서 6과 7의 숫자 만 정확합니다.
jiggunjer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.