FFmpeg 개발 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
70번째 줄: 70번째 줄:
 
열린 AVFormatContext에서 데이터를 읽는 것은 av_read_frame()를 반복적으로 호출하면 된다. 호출할 때마다 인코딩된 데이터인 하나의 AVStream을 포함한 AVPacket(AVPacket.stream_index번호로 식별된다.)을 리턴한다. 데이터를 디코딩하려면 패킷을 libavcodec의 디코딩 함수인 avcodec_send_packet()이나 avcodec_decode_subtitle2()에 직접 전달할 수 있다.
 
열린 AVFormatContext에서 데이터를 읽는 것은 av_read_frame()를 반복적으로 호출하면 된다. 호출할 때마다 인코딩된 데이터인 하나의 AVStream을 포함한 AVPacket(AVPacket.stream_index번호로 식별된다.)을 리턴한다. 데이터를 디코딩하려면 패킷을 libavcodec의 디코딩 함수인 avcodec_send_packet()이나 avcodec_decode_subtitle2()에 직접 전달할 수 있다.
  
[[AVPacket.pts]], [[AVPacket.dts]], [[AVPacket.duration]]은 타이밍정보가 설정된다. 만약 스트림이 제공하지 않는다면 pts와 dts가 AV_NOPTS_VALUE이고 duration은 0이다. 타이밍 정보는 AVStream.time_base단위로 표시됩니다. 즉, 시간단위를 곱하여 초로 변환한다.
+
[[AVPacket.pts]], AVPacket.dts, AVPacket.duration은 타이밍정보가 설정된다. 만약 스트림이 제공하지 않는다면 pts와 dts가 AV_NOPTS_VALUE이고 duration은 0이다. 타이밍 정보는 AVStream.time_base단위로 표시됩니다. 즉, 시간단위를 곱하여 초로 변환한다.
  
 
반환된 패킷에 [[AVPacket.buf]]가 설정되어 있으면 패킷이 동적으로 할당되므로 사용자가 이를 무한정 유지할 수 있다. 그렇지 않으면 AVPacket.buf는 NULL이고, 패킷 데이터는 디먹서 안의 정적 저장소에 백업되고(backed) 파일을 닫거나 av_read_frame()를 호출할 때까지만 유효하다. 더 사용하려면 av_dup_packet()함수가 av_malloc()를 호출해서 그것을 복사할 수 있다. 두 경우 모두 더 이상 필요하지 않으면 av_packet_unref()를 호출해서 패킷을 해제한다.
 
반환된 패킷에 [[AVPacket.buf]]가 설정되어 있으면 패킷이 동적으로 할당되므로 사용자가 이를 무한정 유지할 수 있다. 그렇지 않으면 AVPacket.buf는 NULL이고, 패킷 데이터는 디먹서 안의 정적 저장소에 백업되고(backed) 파일을 닫거나 av_read_frame()를 호출할 때까지만 유효하다. 더 사용하려면 av_dup_packet()함수가 av_malloc()를 호출해서 그것을 복사할 수 있다. 두 경우 모두 더 이상 필요하지 않으면 av_packet_unref()를 호출해서 패킷을 해제한다.

wwiki에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 Wwiki:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)