이 문서에서는 컨테이너의 개념과 같은 미디어 파일 기본사항과 스트림에서 사용할 수 있는 여러 코덱 형식 중 몇 가지에 관해 알아봅니다. 또한 적응형 스트리밍, 비트 전송률, 해상도와 같은 주제를 가볍게 다루지만 이후 섹션에서 자세히 알아보겠습니다.
동영상 파일 게재
동영상 카메라에서 원본 파일을 가져와 그대로 웹에 업로드할 수 있다고 생각할 수 있습니다. 실제로 YouTube나 Vimeo와 같은 동영상 스트리밍 사이트에서는 이러한 작업을 수행할 수 있으며, 일반적으로 카메라의 HDMI 포트에 연결한 다음 캡처 카드를 통해 처리하는 방식으로 실시간 스트리밍 기능을 제공할 수도 있습니다. 이러한 서비스는 동영상 처리와 업로드를 크게 간소화합니다. 여기에는 적응형 스트리밍 및 다양한 해상도에 필요한 많은 파일과 매니페스트의 생성이 포함됩니다. 또한 다른 많은 복잡하고 미묘한 요구사항으로 인해 자체 호스팅이 좀 번거롭습니다. 자체 사이트(별도의 미디어 서버일 수 있음)에서 동영상을 준비하고 게재하는 것은 사용자의 사이트 경험에 관심이 있다면 원시 카메라 파일을 업로드하는 것보다 조금 더 복잡합니다.
동영상 파일은 다양한 형식으로 제공됩니다. 카메라에서 분리되는 형식은 일반적으로 .mov
파일이거나 멋진 최신 미러리스 카메라가 있는 경우 .mp4
입니다.
그러나 .mov
은 녹화, 수정 및 기타 초기 후반 작업 프로세스에 적합하지만 파일 크기는 웹을 통한 스트리밍에는 적합하지 않음을 의미합니다. 또한 4K의 원시 .mp4
파일 크기로 인해 모바일에서 파일 재생이 매우 제한됩니다. 브라우저는 다양한 파일 형식을 지원하므로 여러 개의 최적화된 파일을 만들어야 하며, 적응형 스트리밍을 지원하려는 경우에는 매니페스트도 하나 만들어야 합니다. 파일을 변환하기 전에 파일과 그 특성에 대한 몇 가지 기본 사항을 이해해야 합니다.
컨테이너와 코덱, 스트림 중 무엇을 할 수 있을까요?
운영체제 셸에 표시되는 파일은 파일 확장자 (.mp4
, .webm
, .ogg
등)로 식별되는 컨테이너입니다. 컨테이너에는 하나 이상의 스트림이 포함됩니다. 미디어 파일에는 여기서 살펴볼 것보다 더 많은 형식의 스트림이 여러 개 있을 수 있습니다.
이 섹션의 뒷부분에서 사용되는 샘플 파일에는 오디오 스트림과 동영상 스트림, 최대 2개의 스트림이 포함됩니다. 자막과 데이터는 이 문서에서 다루지 않습니다. 오디오와 동영상 스트림이 별도로 처리되는 경우가 있습니다. 표시되는 대부분의 파일에는 단일 오디오 스트림과 단일 동영상 스트림만 포함됩니다.
오디오 및 동영상 스트림 내에서 실제 데이터는 코덱을 사용하여 압축됩니다. 코덱 또는 코더/디코더는 동영상 또는 오디오 데이터의 압축 형식입니다. 같은 컨테이너를 가진 파일의 콘텐츠가 다른 코덱으로 인코딩될 수 있으므로 컨테이너와 코덱의 구분은 중요합니다.
아래 이미지는 이 구조를 보여줍니다. 왼쪽은 두 개의 스트림이 있는 기본 컨테이너 구조입니다. 오른쪽은 단일 WebM 파일의 해당 구조에 대한 세부정보입니다.
WebM 컨테이너의 파일은 다른 형식에 비해 훨씬 작을 수 있으므로 모바일 사이트에서 스트리밍하기에 적합합니다. 안타깝게도 모든 브라우저가 최신 컨테이너와 코덱을 지원하지는 않습니다. 예를 들어 WebM은 특별히 웹용으로 고품질 오픈소스 옵션으로 만들어졌지만 지원이 아직 보편적으로 제공되지는 않습니다. 특히 Safari는 이 문서 작성 당시의 사용 가능 여부에 따라 삽입된 동영상에 대해 WebM을 지원하지 않습니다. 하지만 WebM은 WebRTC에서 사용되는 VP8 및 VP9 코덱을 부분적으로 지원합니다. 따라서 가장 좋은 방법은 대체 동영상을 제공하는 것입니다.
코덱 형식
많은 파일 형식이 동일한 컨테이너 내에서 여러 코덱을 지원합니다. 사용 가능한 동영상 코덱 및 오디오 코덱의 전체 목록은 그 자체로 완전한 웹사이트입니다. 방금 제공된 링크는 웹에서 사용할 수 있는 항목에 관한 MDN의 실제 목록에 대한 것입니다. 다음은 현재 선호되는 파일 형식과 이러한 형식에서 사용할 수 있는 코덱입니다. 파일 형식 링크를 따라 파일을 지원하는 브라우저를 확인합니다.
파일 형식 | 동영상 코덱 | 오디오 코덱 |
---|---|---|
MP4 | AV1, AVC (H.264)*, VP9 | AAC |
WebM | AV1, VP9* | Vorbis, Opus |
* 선호하는 동영상 코덱을 나타냅니다.
비트 전송률 및 해상도
비트 전송률은 스트림 1초를 인코딩하는 데 사용되는 최대 비트 수입니다. 스트림 1초를 인코딩하는 데 사용되는 비트가 많을수록 잠재적 세부정보와 충실도가 높아집니다. 이 개념에 관한 자세한 내용은 비트 전송률을 참고하세요.
해상도는 동영상의 단일 프레임에 있는 정보의 양이며 각 차원의 논리 픽셀 수로 지정됩니다. 이 개념에 관한 자세한 내용은 해결 방법을 참조하세요.
다음으로 미디어 애플리케이션 기본사항에서는 두 가지 명령줄 도구, Shaka Packager와 FFmpeg를 사용하여 이러한 특성을 검토하는 방법을 보여줍니다.