주 메뉴 열기

wwiki β

FFmpeg 개발

Jhkim (토론 | 기여)님의 2020년 5월 30일 (토) 22:25 판 (libavformat(lavf))

libavformat(lavf)

다양한 미디어 컨테이너 형식을 처리하기 위한 라이브러리입니다. 데이터에 액세스하기 위한 여러 프로토콜(예: 파일, tcp, http 및 기타)을 지원하는 I/O모듈이 있습니다. lavf를 사용하기 전에 av_register_all()을 호출하여 컴파일된 모든 muxer, 디먹서 및 프로토콜을 등록해야 합니다. libavformat의 네트워크 기능을 사용하려면 avformat_network_init()를 호출해야 합니다.

멀티플렉싱 및 디먹싱에 사용되는 기본 lavf 구조는 AVFormatContext이며, 읽거나 쓰는 파일에 대한 모든 정보를 내보냅니다.

가장 중요한 것은 AVFormatContext 에 다음이 포함되어 있습니다.

  • 입력 또는 출력 포맷: 입력을 위해 자동 감지되거나 사용자가 설정합니다. 항상 출력을 위해 사용자에 의해 설정됩니다.
  • AVStreams(파일에 저장된 모든 기본 스트림의 describe)의 배열
  • I/O 컨텍스트: lavf에 의해 열리거나 입력을 위해 사용자가 설정하며, 항상 출력을 위해 사용자가 설정합니다

(de)muxers에 옵션 전달

AVOptions 메커니즘을 사용하여 lavf muxers 및 demuxer를 구성 할 수 있습니다. 형식독립적인 일반 libavformat옵션은 AVFormatContext으로 제공한다. 사용자 프로그램에서 할당된 AVFormatContext(혹은 avformat_get_class()를 호출하여 얻은 AVClass로부터) av_opt_next()나 av_opt_find()함수를 호출해서 검사할 수 있다.

외부링크