解复用
解复用,读取视频文件,生成数据包(packet),同时,实现数据包队列,存储数据包,用来解码生成数据帧(frame)
解复用线程
read_thread:
- 创建上下文结构体:
avformat_alloc_context - 打开文件
avformat_open_input - 获取流信息
avformat_find_stream_info - 区分视频流和音频流
av_find_best_stream - stream_component_open(自实现):
打开对应的解码器并做初始化
创建和启动解码线程
初始化⾳频或视频输出设备 - 循环读取数据包,插入数据包队列,释放包
av_read_frame
packet_queue_put
av_packet_unref
int FFPlayer::read_thread(
博客详细介绍了如何使用FFmpeg进行解复用操作,包括创建解复用线程,读取视频文件生成数据包,并实现数据包队列来存储数据包,为解码生成数据帧做准备。内容涵盖解复用线程的创建、线程调用流程,以及数据包队列的类型定义、API实现等关键步骤。
订阅专栏 解锁全文
898

被折叠的 条评论
为什么被折叠?



