ffmpeg packet和frame区别与联系(AVPacketAVFrame)
Posted Dontla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg packet和frame区别与联系(AVPacketAVFrame)相关的知识,希望对你有一定的参考价值。
read_thread函数的主要工作:首先,创建解复用和解码所需要的数据结构。其次,分别通过stream_component_open函数打开三种数据流。最后,通过av_read_frame将解复用后的数据包分别添加到对应的PacketQueue中。在stream_component_open函数主要负责解码工作,ffplay中为解码工作专门设置了一个数据结构Decoder,Decoder结构中有一个成员queue,这个queue就是指的输入的PacketQueue,通过decoder_init函数来指定PacketQueue。这个工作就是在stream_component_open中执行的。指定PacketQueue之后通过get_video_frame函数从PacketQueue中解码出AVFrame结构,最后通过queue_picture函数将解码得到的帧添加到FrameQueue。
参考文章:FFmpeg中AVPacket和AVFrame关系
以上是关于ffmpeg packet和frame区别与联系(AVPacketAVFrame)的主要内容,如果未能解决你的问题,请参考以下文章
FFmpeg3最新的解码接口avcodec_send_packet和avcodec_receive_frame分析