주 메뉴 열기

wwiki β

FFmpeg 개발

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

목차

libavformat(lavf)

I/O and Muxing/Demuxing Library.

설명

다양한 미디어 컨테이너 형식을 처리하기 위한 라이브러리입니다. 데이터에 액세스하기 위한 여러 프로토콜(예: 파일, 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()함수를 호출해서 검사할 수 있다.

모듈

Core Functions

libavformat기능을 쿼리하거나 핵심구조체를 할당하는 함수들

int avformat_network_init (void)

이것은 선택 사항이며 더 이상 권장되지 않습니다.

이 기능은 구형 GnuTLS 또는 OpenSSL 라이브러리의 스레드 안전 문제를 해결하기 위해서만 존재합니다. 최신(4.0이상)버전에서 사용할 필요가 없다. 구형 OpenSSL등을 사용하는 경우에 스레드를 사용하기 전에 호출해라.

외부링크