지원되는 비디오 및 오디오 파일 형식
MATLAB®에서 지원되는 비디오 및 오디오 파일의 파일 형식과 코덱입니다.
MATLAB의 비디오 데이터
비디오 파일이란?
비디오 데이터에서 “파일 형식”이라는 용어는 대개 컨테이너 형식 또는 코덱을 나타냅니다. 컨테이너 형식은 파일의 레이아웃을 설명하는 반면, 코덱은 비디오 데이터를 인코딩/디코딩하는 방법을 설명합니다. 대부분의 컨테이너 형식은 서로 다른 코덱으로 인코딩된 데이터를 담을 수 있습니다.
비디오 파일을 읽기 위해 애플리케이션은 다음을 수행해야 합니다.
컨테이너 형식(예: AVI)을 인식합니다.
파일에 저장된 비디오 데이터를 디코딩할 수 있는 코덱에 액세스합니다. 일부 코덱은 표준 Windows® 및 Macintosh 시스템 설치에 포함되며, 이를 통해 Windows Media® Player나 QuickTime®에서 비디오를 재생할 수 있습니다. MATLAB의
VideoReader
는 이러한 코덱의 대부분(전부는 아님)에 액세스할 수 있습니다.코덱을 적절히 사용하여 파일의 비디오 데이터를 디코딩합니다.
VideoReader
는 원래 시스템 설치에 포함되지 않은 코덱과 연결된 파일을 읽지 못할 수도 있습니다.
VideoReader
가 지원하는 형식
MATLAB에서는 VideoReader
를 사용하여 비디오 파일을 읽어옵니다. VideoReader
가 지원하는 파일 형식은 플랫폼마다 다르며, 파일 확장자에 대한 제한은 없습니다.
플랫폼 | 파일 형식 |
---|---|
모든 플랫폼 | 무압축 AVI, Indexed AVI, Grayscale AVI, Motion JPEG 인코딩된 비디오를 비롯한 AVI( 참고
|
모든 Windows | MPEG-1( |
Windows 7 이상 | H.264 인코딩된 비디오를 비롯한 MPEG-4( |
Macintosh | 다음과 같이 QuickTime Player에서 지원하는 대부분의 형식: 참고: OS X Yosemite(버전 10.10 이상)의 경우, |
Linux® | Ogg Theora( |
비디오 파일과 연결된 코덱 보기
이 예제에서는 mmfileinfo
함수를 사용하여 비디오 파일과 연결된 코덱을 보는 방법을 보여줍니다.
샘플 비디오 파일 shuttle.avi
에 대한 정보를 info
라는 구조체형 배열로 저장하겠습니다. info
구조체는 Filename
, Path
, Duration
, Audio
및 Video
필드를 포함합니다.
info = mmfileinfo('shuttle.avi');
info
구조체의 필드를 표시하여 명령 창에 속성을 표시합니다. 예를 들어, Video
필드에 있는 정보를 보려면 info.Video
를 입력하십시오.
info.Video
ans = struct with fields:
Format: 'Motion JPEG'
Height: 288
Width: 512
파일 shuttle.avi
는 Motion JPEG 코덱을 사용합니다.
문제 해결: 비디오 파일 읽기 오류
MATLAB이 적절한 코덱에 액세스할 수 없으면 비디오 파일을 읽어오지 못할 수 있습니다. 64비트 애플리케이션은 64비트 코덱 라이브러리를 사용하는 반면, 32비트 애플리케이션은 32비트 코덱 라이브러리를 사용합니다. 예를 들어 64비트 MATLAB을 사용할 경우에는, 시스템에 설치된 32비트 코덱에 액세스해야 하는 비디오 파일을 읽어올 수 없습니다. 이러한 파일을 읽어오려면 다음 중 하나를 시도하십시오.
이 파일 형식을 지원하는 64비트 코덱을 설치합니다. 그런 다음 64비트 MATLAB을 사용하여 파일을 읽어 보십시오.
컴퓨터에 설치되어 있는 64비트 코덱을 사용하여 파일을 다른 형식으로 다시 인코딩합니다.
경우에 따라, VideoReader
가 Windows 플랫폼에서 비디오 파일을 열어서 읽어오지 못할 수 있습니다. 이 문제는 시스템 설정을 재정의하는 타사 코덱을 설치한 경우 발생할 수 있습니다. 해당 코덱을 제거한 후 MATLAB에서 비디오 파일을 다시 열어 보십시오.
MATLAB의 오디오 데이터
오디오 파일이란?
파일의 오디오 신호는 시간 경과에 따른 소리의 진폭을 캡처하는 일련의 샘플을 나타냅니다. 샘플 레이트는 초당 추출되는 이산 샘플의 개수(단위: 헤르츠)입니다. 비트 심도(샘플당 비트 수)로 측정되는 샘플의 정밀도는 사용 가능한 오디오 하드웨어에 따라 달라집니다.
MATLAB 오디오 함수는 단일채널(모노) 오디오 데이터는 m
×1 열 벡터로 읽어서 저장하고, 스테레오 데이터는 m
×2 행렬로 읽어서 저장합니다. m
은 두 경우 모두 샘플 개수입니다. 스테레오 데이터의 경우, 첫 번째 열에는 왼쪽 채널이 포함되고 두 번째 열에는 오른쪽 채널이 포함됩니다.
일반적으로 각 샘플은 -1과 1사이의 배정밀도 값입니다. 경우에 따라, 특히 오디오 하드웨어가 높은 비트 심도를 지원하지 않는 경우 오디오 파일은 8비트 정수 또는 16비트 정수로 값을 저장합니다. 샘플 값의 범위는 사용 가능한 비트 수에 따라 달라집니다. 예를 들어, uint8
값으로 저장된 샘플의 범위는 0에서 255(28 – 1) 사이일 수 있습니다. MATLAB sound
함수와 soundsc
함수는 -1과 1 사이의 단정밀도 값 또는 배정밀도 값만 지원합니다. 다른 오디오 함수는 함수 도움말 페이지에 나와있는 여러 데이터형을 지원합니다.
audioread
가 지원하는 형식
MATLAB에서는 audioread
를 사용하여 오디오 파일을 읽어옵니다. audioread
함수는 다음과 같은 파일 형식을 지원합니다.
지원하는 플랫폼 | 파일 형식 |
---|---|
모든 플랫폼 | AIFC(.aifc ) |
AIFF(.aiff , .aif ) | |
AU(.au ) | |
FLAC(.flac ) | |
OGG(.ogg ) | |
OPUS(.opus ) | |
WAVE(.wav ) | |
Windows 7(이상), Macintosh, Linux | MP3(.mp3 ) |
MPEG-4 AAC(.m4a , .mp4 ) |
Windows 7 이전 버전의 Windows 플랫폼에서 audioread
를 사용하면, MP3 인코딩 데이터로 구성된 WAVE 파일을 읽을 수 없습니다.
audioread
를 Windows 7(이상) 플랫폼에서 사용하면 모든 Windows Media Foundation용 파일을 읽을 수 있습니다.
audioread
를 Linux 플랫폼에서 사용하면 모든 GStreamer용 파일을 읽을 수 있습니다.
audioread
는 Windows 7 이상, Macintosh, Linux의 MPEG-4(.mp4
, .m4v
) 비디오 파일과 Windows 7(이상) 및 Linux 플랫폼의 Windows Media 비디오(.wmv
) 및 AVI(.avi
) 파일에서 오디오를 추출할 수 있습니다.
참고 항목
VideoReader
| audioread
| mmfileinfo
| audioinfo