2008년 01월 15일
FFMPEG : 영상과 음성을 동시에 인코딩하는 법.
막상 제목 적어놓고 설명하려니까 막막하다. -_-;
일단 일반적인 encode관련 함수에 대해 어느정도 이해를 하고 있다는 가정을 하면..
현재까지 알아낸 바로 영상과 음성을 한파일에 합치려면
헤더를 쓴 후, 인코딩이 끝날때까지 영상 한프레임 쓰고, 음성 한프레임 쓰고를
반복하면 된다. 헤더를 쓰는건 제공되는 함수 (자세한 설명은 추후 설명토록 하겠다.)가
있고 프레임 쓰는것 역시 함수가 제공된다.
이걸 어떻게 쓰냐...면?
AVFormatContext 라는 객체(?)가 존재하기에 가능하다.
이 객체는 내부에 AVStream 형태의 배열을 갖고 있다. 이 AVStream객체는
av_new_stream이라는 함수를 통해 등록을 시킬수가 있는데 영상 스트림을
0번 인덱스에, 음성인덱스를 1번 인덱스에.. 같은 식으로 등록할수 있다는 의미다.
이후 AVStream 안에 있는 AVCodecContext 객체와 AVPacket 객체를 사용하는데
데이터의 write는 바로 AVPacket 단위로 이루어지는듯 하다.
음.. 코드가 있으면 이해가 더 잘갈듯 싶은데;; 현재 v4l의 api쪽에서 문제가 좀
있는 관계로 -_-;;; 자세한 설명을 차후 더 소개하도록 하겠다.
# by | 2008/01/15 01:42 | Project | 트랙백 | 덧글(0)




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]