ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동영상의 이해
    Programming/Android 2022. 3. 31. 21:17

    동영상의 이해

    • 동영상
      • 영상 + 소리 정보를 가진 파일
      • 해당 글에서는 영상 정보만 가진 파일을 말할 때는 “비디오”, ” 비디오 파일”, “비디오 스트림”으로 용어 정의를 함.
    • 컨테이너 포맷
      • 컨테이너 포맷은 비디오와 오디어를 담아두는 상자나 포장해둔 포장지 정도로 이해하면 됩니다.
      • 아래 그림에서 비디오는 x264코덱으로 만들어 졌고, 오디오는 DTS코덱으로 만들어졌습니다.
      • 컨테이너는 이렇게 비디오와 오디오를 하나의 파일로 만드는 역할을 합니다.
      • 우리가 보통 파일의 정체를 확인하기 위해서는 확장자를 봅니다.
      • 하지만 동영상을 판단할 때 확장자를 봐서는 단지 컨테이너가 무엇인지 알 수 있을 뿐이지. 상자 안에 들어있는 비디오와 오디오가 어떤 코덱으로 만들어져 있는지 알 수 없습니다.
      • 동영상 파일의 확장자인 avi, mkv, mp4 등등 모두 컨테이너 포맷을 가르키는 말로 파일 형식 이라고 합니다.
      • 컨테이너에 포함된 비디오와 오디오를 만드는 과정을 인코딩이라고 하며, 코덱이라는 압축 프로그램이 담당합니다.
      • 비디오와 오디오를 재생하는 과정을 디코딩이라고 하며, 이 또한 코덱이 담당합니다.
      • 동영상이 재생이 안 될 때는 컨테이너 포맷을 확인하는 것도 중요하지만, 그보다 비디오 코덱 오디오 코덱을 확인하는 것이 중요합니다.
    • 동영상을 구체적으로 표현하는 방법 (예시)
      • DivX로 인코딩된 비디오와 MP3로 인코딩된 오디오가 AVI 컨테이너에 들어 있는 동영상
      • DivX 비디오와 MP3 오디오가 AVI에 들어 있는 동영상

    플레이어 동영상 지원 포멧

    • 컨테이너 포맷은 단지 비디오와 오디오를 하나로 묶는 역할을 합니다.
    • 실제 재생은 코덱이라는 프로그램이 담당합니다.
    • 만약 플레이어가 AVI, MKV, MPEG 포맷의 컨테이너를 지원한다면, 플레리어가 그 컨테이너에서 비디오와 오디오를 꺼낼 수 있다는 말이지. 그 안의 오디오와 비디오를 재생할 수 있다는 말은 아닙니다.
    • 실제 재생은 컴퓨터에 설치된 비디오코덱과 오디오 코덱이 수행합니다.
    • 코덱에서 재생 능력만 떼어낸 디코더라는 프로그램이 있습니다.
    • 이 디코더를 플레이어가 내장한 경우에는 자신의 컴퓨터에 코덱을 설치하지 않아도 재생이 됩니다.
    • 그런데 컴퓨터에 코덱도 설치되지 않고, 플레이어에 내장 디코더도 없는 경우엔 재생 에러가 발생합니다.
      • 예를 들어, 곰플레이어로 동영상 파일을 열었을 때 화면은 나오나 소리가 나오지 않는 경우가 있습니다.
      • 이 경우에는 비디오 코덱이나 디코더가 컴퓨터나 플레이어에 있기 때문에 화면을 출력되지만 오디오 커덱이나 디코더가 컴퓨나 플레이어에 설치되지 않았기 때문입니다.
      • 이럴 경우, 해당 코덱 정보를 알고 그 동영상에 맞는 오디오 코덱이나 디코더를 설치해주면 해결됩니다.

    동영상 변환의 이해

    동영상 변환의 방법은 크게 2가지 입니다

    1. 컨테이너 포맷만 바꾸는 방법
    2. 비디오를 다른 코덱으로 트랜스코딩하는 방법
      1. 보통 컨버터라는 프로그램들이 사용하는 방법
    • 원본의 화질과 음질을 유지하기 위해 컨테이너 포맷만 바꾸는 방법
      • 디먹싱(Demux, Demultiplexing)
        • 디먹싱은 컨테이너 포맷에서 비디오 데이터, 오디오 데이터 구성요소를 뺴내는 과정을 말합니다.
      • 먹싱(Muxing, Multiplexing)
        • 먹싱은 비디오 데이터나 오디오 데이터 등을 특정 컨테이너 상자에 넣는 과정을 말합니다.
        • 동영상 컨테이너(MP4, MKV, AVI)에 파일만 결합하는 것
        • 원래 MKV 동영상 파일 하나에 비디오 파일과 음성파일, 자막파일 등 여러개의 파일들이 MKV하나의 파일 형식으로 결합된 것이다.
      • 디먹싱, 먹싱은 상자에서 비디오, 오디오 데이터를 빼거나 넣는 과정일 뿐, 상자 안의 비디오, 오디오를 변경하진 않습니다. 따라서 원본 화질과 음질을 그댜로 유지합니다.

    예시)

    DVD-Video에서 립한 흔히 디빅스라고 말하는 영화파일을 준비합니다.(그림에서 왼쪽편 파일)

    이 AVI파일에서 DivX 비디오와 MP3 오디오를 추출합니다.(디먹싱)

    추출된 DivX 비디오와 MP3 오디오를 MKV 상자에 넣습니다.(먹싱)

    2가지의 avi 파일과 mkv 파일을 비교해 보면, 비디오와 오디오를 담아두는 상자만 다를뿐 실제 비디오 데이터와 오디오 데이터는 똑같습니다.

    즉 바꾸어 말하면 화질과 음질은 똑같습니다. 또한 거꾸로 MKV파일을 디먹싱, 먹싱을 통해 AVI파일로 만들수 있습니다.

    ※ 실제 변환

    DivX 비디오가 들어간 AVI파일은 재생하지만, DivX 비디오가 들어간 MKV파일은 재생하지 못하는 플레이어가 있다면 MKV 상자에서 DivX 비디오를 꺼내 AVI 상자에 넣으면 재생 문제가 해결됩니다.

    동영상의 기본적인 이해 (컨테이너 포맷이란?, 동영상의 변환이란?)

    코덱 (Coder and Decorder)

    • 어떠한 데이터 스트림에 대해 인코딩, 디코딩을 할 수 있는 소프트웨어
    • 음성 또는 영상 신호를 디지털 신호로 변환하는 코더와, 그 반대로 변환시켜주는 디코더를 통틀어부르는 용어이다.
    • 코더 + 디코더의 합성어
    • 인코딩: 영상신호를 디지털 신호로 바꾸는 것을 코딩이라고 하고
    • 디지털 신호를 영상으로 변환하는 것을 디코딩이라고 함.

    동영상의 이해

    • 동영상
      • 영상 + 소리 정보를 가진 파일
      • 해당 글에서는 영상 정보만 가진 파일을 말할 때는 “비디오”, ” 비디오 파일”, “비디오 스트림”으로 용어 정의를 함.
    • 컨테이너 포맷
      • 컨테이너 포맷은 비디오와 오디어를 담아두는 상자나 포장해둔 포장지 정도로 이해하면 됩니다.
      • 아래 그림에서 비디오는 x264코덱으로 만들어 졌고, 오디오는 DTS코덱으로 만들어졌습니다.
      • 컨테이너는 이렇게 비디오와 오디오를 하나의 파일로 만드는 역할을 합니다.
      • 우리가 보통 파일의 정체를 확인하기 위해서는 확장자를 봅니다.
      • 하지만 동영상을 판단할 때 확장자를 봐서는 단지 컨테이너가 무엇인지 알 수 있을 뿐이지. 상자 안에 들어있는 비디오와 오디오가 어떤 코덱으로 만들어져 있는지 알 수 없습니다.
      • 동영상 파일의 확장자인 avi, mkv, mp4 등등 모두 컨테이너 포맷을 가르키는 말로 파일 형식 이라고 합니다.
      • 컨테이너에 포함된 비디오와 오디오를 만드는 과정을 인코딩이라고 하며, 코덱이라는 압축 프로그램이 담당합니다.
      • 비디오와 오디오를 재생하는 과정을 디코딩이라고 하며, 이 또한 코덱이 담당합니다.
      • 동영상이 재생이 안 될 때는 컨테이너 포맷을 확인하는 것도 중요하지만, 그보다 비디오 코덱 오디오 코덱을 확인하는 것이 중요합니다.
    • 동영상을 구체적으로 표현하는 방법 (예시)
      • DivX로 인코딩된 비디오와 MP3로 인코딩된 오디오가 AVI 컨테이너에 들어 있는 동영상
      • DivX 비디오와 MP3 오디오가 AVI에 들어 있는 동영상

    플레이어 동영상 지원 포멧

    • 컨테이너 포맷은 단지 비디오와 오디오를 하나로 묶는 역할을 합니다.
    • 실제 재생은 코덱이라는 프로그램이 담당합니다.
    • 만약 플레이어가 AVI, MKV, MPEG 포맷의 컨테이너를 지원한다면, 플레리어가 그 컨테이너에서 비디오와 오디오를 꺼낼 수 있다는 말이지. 그 안의 오디오와 비디오를 재생할 수 있다는 말은 아닙니다.
    • 실제 재생은 컴퓨터에 설치된 비디오코덱과 오디오 코덱이 수행합니다.
    • 코덱에서 재생 능력만 떼어낸 디코더라는 프로그램이 있습니다.
    • 이 디코더를 플레이어가 내장한 경우에는 자신의 컴퓨터에 코덱을 설치하지 않아도 재생이 됩니다.
    • 그런데 컴퓨터에 코덱도 설치되지 않고, 플레이어에 내장 디코더도 없는 경우엔 재생 에러가 발생합니다.
      • 예를 들어, 곰플레이어로 동영상 파일을 열었을 때 화면은 나오나 소리가 나오지 않는 경우가 있습니다.
      • 이 경우에는 비디오 코덱이나 디코더가 컴퓨터나 플레이어에 있기 때문에 화면을 출력되지만 오디오 커덱이나 디코더가 컴퓨나 플레이어에 설치되지 않았기 때문입니다.
      • 이럴 경우, 해당 코덱 정보를 알고 그 동영상에 맞는 오디오 코덱이나 디코더를 설치해주면 해결됩니다.

    동영상 변환의 이해

    동영상 변환의 방법은 크게 2가지 입니다

    1. 컨테이너 포맷만 바꾸는 방법
    2. 비디오를 다른 코덱으로 트랜스코딩하는 방법
      1. 보통 컨버터라는 프로그램들이 사용하는 방법
    • 원본의 화질과 음질을 유지하기 위해 컨테이너 포맷만 바꾸는 방법
      • 디먹싱(Demux, Demultiplexing)
        • 디먹싱은 컨테이너 포맷에서 비디오 데이터, 오디오 데이터 구성요소를 뺴내는 과정을 말합니다.
      • 먹싱(Muxing, Multiplexing)
        • 먹싱은 비디오 데이터나 오디오 데이터 등을 특정 컨테이너 상자에 넣는 과정을 말합니다.
        • 동영상 컨테이너(MP4, MKV, AVI)에 파일만 결합하는 것
        • 원래 MKV 동영상 파일 하나에 비디오 파일과 음성파일, 자막파일 등 여러개의 파일들이 MKV하나의 파일 형식으로 결합된 것이다.
      • 디먹싱, 먹싱은 상자에서 비디오, 오디오 데이터를 빼거나 넣는 과정일 뿐, 상자 안의 비디오, 오디오를 변경하진 않습니다. 따라서 원본 화질과 음질을 그댜로 유지합니다.

    예시)

    DVD-Video에서 립한 흔히 디빅스라고 말하는 영화파일을 준비합니다.(그림에서 왼쪽편 파일)

    이 AVI파일에서 DivX 비디오와 MP3 오디오를 추출합니다.(디먹싱)

    추출된 DivX 비디오와 MP3 오디오를 MKV 상자에 넣습니다.(먹싱)

    2가지의 avi 파일과 mkv 파일을 비교해 보면, 비디오와 오디오를 담아두는 상자만 다를뿐 실제 비디오 데이터와 오디오 데이터는 똑같습니다.

    즉 바꾸어 말하면 화질과 음질은 똑같습니다. 또한 거꾸로 MKV파일을 디먹싱, 먹싱을 통해 AVI파일로 만들수 있습니다.

    ※ 실제 변환

    DivX 비디오가 들어간 AVI파일은 재생하지만, DivX 비디오가 들어간 MKV파일은 재생하지 못하는 플레이어가 있다면 MKV 상자에서 DivX 비디오를 꺼내 AVI 상자에 넣으면 재생 문제가 해결됩니다.

    동영상의 기본적인 이해 (컨테이너 포맷이란?, 동영상의 변환이란?)

    코덱 (Coder and Decorder)

    • 어떠한 데이터 스트림에 대해 인코딩, 디코딩을 할 수 있는 소프트웨어
    • 음성 또는 영상 신호를 디지털 신호로 변환하는 코더와, 그 반대로 변환시켜주는 디코더를 통틀어부르는 용어이다.
    • 코더 + 디코더의 합성어
    • 인코딩: 영상신호를 디지털 신호로 바꾸는 것을 코딩이라고 하고
    • 디지털 신호를 영상으로 변환하는 것을 디코딩이라고 함.

    'Programming > Android' 카테고리의 다른 글

    RTMP (Real Time Messaging Protocol)  (0) 2022.03.31
    Android Thread  (0) 2020.12.18
    WebRTC  (0) 2020.12.04
    [Android] 해상도와 dpi, px, dp, dip, sp  (0) 2020.12.01
    Android LifeCycle  (0) 2020.11.30
Designed by Tistory.