FFmpeg6.0和FFmpeg4.2的ffplay播放器差异分析
更多音视频分享,腾讯课堂搜索零声教育
FFmpeg6.0相比于FFmpeg4.2的ffplay差别不大,主要是avpacket queue的修改,FFmpeg6.0采用AVFifo代替了 apcket_queue。
以下是大体的修改:
#include "config_components.h" 新增组件配置
#include "libavutil/channel_layout.h" 独立的audio channel描述
#include "libavutil/fifo.h" 新的av fifo接口
#include "libavutil/bprint.h" 打印相关av_bprint_finalize
#include "opt_common.h" 通用的命令行参数设置
使用avfio做packet队列
通道数量和通道布局放在了同一个结构
取消了flush_pkt
flush包是调用者自己去构建
音频的表示
audio_decode_frame,重采样api使用swr_alloc_set_opts2