이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

VideoReader

비디오 파일 읽기

설명

VideoReader 객체를 사용하여 비디오 데이터가 포함된 파일을 읽어옵니다. 이 객체에는 비디오 파일에 대한 정보가 포함되며, 이 객체를 통해 비디오에서 데이터를 읽어올 수 있습니다. VideoReader 함수를 사용하여 VideoReader 객체를 만들고, 객체 속성을 사용하여 비디오에 대한 정보를 쿼리한 다음, 객체 함수를 사용하여 비디오를 읽어올 수 있습니다.

자세한 내용은 지원되는 비디오 및 오디오 파일 형식 항목을 참조하십시오.

생성

설명

예제

v = VideoReader(filename)은 파일 filename에서 비디오 데이터를 읽는 객체 v를 만듭니다.

예제

v = VideoReader(filename,Name,Value)는 이름-값 쌍을 사용하여 속성 CurrentTime, Tag, UserData를 설정합니다. 예를 들어, VideoReader('myfile.mp4','CurrentTime',1.2)는 비디오 재생 후 1.2초부터 읽기를 시작합니다. 여러 개의 이름-값 쌍을 지정할 수 있습니다. 각 속성 이름을 작은따옴표로 묶은 다음에 값이 오도록 합니다.

입력 인수

모두 확장

파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

자세한 내용은 지원되는 비디오 및 오디오 파일 형식 항목을 참조하십시오.

예: 'myFile.mp4'

예: '../dir/videos/myFile.avi'

데이터형: char | string

속성

모두 확장

VideoReader 객체는 비디오 파일에 대한 정보가 포함된 속성을 가집니다. 속성은 CurrentTime, Tag, UserData를 제외하고 읽기 전용입니다. 객체를 만든 후 속성의 값을 보거나 수정할 수 있습니다. 예를 들어, 다음 명령은 VideoReader 객체 vDuration 속성값을 가져옵니다.

D = v.Duration;

이 속성은 읽기 전용입니다.

비디오 데이터의 픽셀당 비트 수로, 숫자형 스칼라로 지정됩니다.

데이터형: double

읽을 비디오 프레임의 타임스탬프로, 숫자형 스칼라로 지정됩니다. 타임스탬프는 비디오 파일의 시작부터 초 단위로 지정됩니다. CurrentTime 값의 범위는 0 ~ 비디오 재생 시간이 될 수 있습니다.

일부 플랫폼에서 VideoReader 객체를 만들면 'CurrentTime' 속성에 정확히 0은 아니지만 0에 가까운 값이 포함될 수 있습니다. 'CurrentTime' 값이 이렇게 다른 이유는 각 플랫폼에서 비디오를 처리하고 읽는 방법에 차이가 있기 때문입니다.

예: 5.6

데이터형: double

이 속성은 읽기 전용입니다.

파일 길이(단위: 초)로, 숫자형 스칼라로 지정됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

초당 비디오 프레임 수로, 숫자형 스칼라로 지정됩니다. 프레임 속도가 가변적인 비디오의 경우, FrameRate는 평균 프레임 속도입니다.

참고: OS X Yosemite(버전 10.10 이상)의 경우, VideoWriter를 사용하여 작성된 MPEG-4/H.264 파일은 제대로 재생되지만 프레임 속도가 부정확하게 표시됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

비디오 프레임의 높이(단위: 픽셀)로, 숫자형 스칼라로 지정됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

데이터형: char | string

이 속성은 읽기 전용입니다.

참고

NumberOfFrames는 권장되지 않습니다. CurrentTime을 대신 사용하십시오.

비디오 스트림의 프레임 수로, 숫자형 스칼라로 지정됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

해당 리더 객체와 연결된 비디오 파일의 전체 경로로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

데이터형: char | string

일반 텍스트로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

예: 'Experiment 109'

데이터형: char | string

사용자 정의 데이터로, 임의의 데이터형 값으로 지정됩니다.

이 속성은 읽기 전용입니다.

MATLAB의 비디오 형식 표현으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

Motion JPEG 2000 파일을 제외한 파일 형식은 다음 VideoFormat 값 중 하나를 가집니다.

비디오 형식

VideoFormat의 값

RGB24 비디오를 포함한 AVI 또는 MPEG-4 파일

'RGB24'

인덱싱된 비디오를 포함한 AVI 파일

'Indexed'

회색조 비디오를 포함한 AVI 파일

'Grayscale'

Motion JPEG 2000 파일은 다음 VideoFormat 값 중 하나를 가집니다.

이미지 데이터의 형식

VideoFormat의 값

단일 대역 uint8'Mono8'
단일 대역 int8'Mono8 Signed'
단일 대역 uint16'Mono16'
단일 대역 int16'Mono16 Signed'
3중 대역 uint8'RGB24'
3중 대역 int8'RGB24 Signed'
3중 대역 uint16'RGB48'
3중 대역 int16'RGB48 Signed'

데이터형: char | string

이 속성은 읽기 전용입니다.

비디오 프레임의 너비(단위: 픽셀)로, 숫자형 스칼라로 지정됩니다.

데이터형: double

객체 함수

read파일에서 비디오 프레임 데이터 읽기
VideoReader.getFileFormatsFile formats that VideoReader supports
readFrame비디오 파일에서 비디오 프레임 읽기
hasFrameDetermine if video frame is available to read

예제

모두 축소

예제 동영상 파일 xylophone.mp4에 대한 VideoReader 객체를 만듭니다.

v = VideoReader('xylophone.mp4');

모든 비디오 프레임을 읽습니다.

while hasFrame(v)
    video = readFrame(v);
end
whos video
  Name         Size                Bytes  Class    Attributes

  video      240x320x3            230400  uint8              

샘플 파일 xylophone.mp4를 읽을 객체를 만듭니다.

v = VideoReader('xylophone.mp4');

비디오 시작부터 2.5초 후에 읽어오기가 시작되도록 지정합니다.

v.CurrentTime = 2.5;

axes 객체를 만듭니다. 그런 다음, 읽을 수 있는 프레임이 더 없을 때까지 비디오 프레임을 읽습니다.

currAxes = axes;
while hasFrame(v)
    vidFrame = readFrame(v);
    image(vidFrame, 'Parent', currAxes);
    currAxes.Visible = 'off';
    pause(1/v.FrameRate);
end

  • macOS 플랫폼은 더 이상 일부 오래된 비디오 파일 형식을 지원하지 않습니다. VideoReader를 사용하여 이러한 파일을 읽으려면 다음과 같이 하십시오.

    • QuickTime 플레이어를 사용하여 비디오 파일을 여십시오. 플레이어가 이전 형식으로 된 파일을 감지하면 이를 새 형식으로 자동으로 변환합니다.

    • 새로 변환된 비디오 파일을 저장하십시오.

    • VideoReader를 사용하여 새로 변환된 비디오 파일을 읽으십시오.

확장 기능

R2010b에 개발됨