ffmpeg之avio_alloc_context函数解读笔记
一、avio_read函数调用栈
av_read_frame ->read_frame_internal ->ff_read_packet ->s->iformat->read_packet(以ff_yuv4mpegpipe_demuxer为例) ->av_get_packet ->append_packet_chunked ->avio_read
ffmpeg要先缓存本地的原因是,在avformat_find_stream_info会调用try_decode_frame进行试解码,只是用前面一小段数据进行解码。后续正式转码时,这段数据会重新使用。这里缓存到本地,减少读取IO次数。
二、avio_alloc_context参数含义
AVIOContext *avio_alloc_context(
unsigned char *buffer,
int buffer_size,
int write_flag,
共有 0 条评论