주 메뉴 열기

wwiki β

바뀜

FFmpeg 개발

1,587 바이트 추가됨, 2020년 5월 31일 (일) 04:43
av_read_frame
====== av_read_frame ======
Return the next frame of a stream.
'''파라미터'''
 
* AVFormatContext * s
* AVPacket * pkt
 
'''반환''': int(성공이면 0, 에러거나 파일이 끝났으면 음수)
 
이 함수는 파일에 저장된 데이터를 반환하고, 디코더를 위한 유효한 프레임이 있는지 확인하지 않는다. 파일에 저장된 내용을 프레임으로 분할하고 호출할 때마다 하나씩 반환한다. 디코더는 디코딩에 가능한 최대 정보를 제공하기 위해 유효한 프레임간의 유효하지 않은 데이터를 생략하지 않는다.
 
만약 pkt->buf가 NULL이면 패킷(pkt)은 다음 av_read_frame() 또는 avformat_close_input()을 호출할 때까지 유효합니다. 그렇지 않으면 패킷은 무기한 유효하다. 두 경우 모두 av_packet_unref()를 호출하여 더이상 필요없는 패킷을 해제해야 한다. 비디오의 경우에는 정확히 하나의 프레임이 포함된다. 오디오의 경우 비디오 프레임마다 정수개의 프레임을 포함한다.(가령, PCM 혹은 ADPCM 데이터처럼 여러개의 오디오 스트림처럼) 만약 오디오 프레임들이 가변크기를 가진다면(MPEG 오디오처럼) 한개의 프레임을 포함한다.
 
pkt->pts, pkt->dts and pkt->duration은 항상 AVStream.time_base 단위로 정확한 값들이 설정된다. (만약 포맷이 그걸 제공하지 않으면 추측된다.) 비디오 프레임이 B-frames이면 pkt->ptsd은 AV_NOPTS_VALUE이다. 그래서 페이로드의 압축을 해제하지 않으면 pkt->dts를 사용하는 것이 좋다.
<br />
== libavcodec ==
Encoding/Decoding Library.
편집
2,431