FFmpeg 개발
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()함수를 호출해서 검사할 수 있다.