FFmpeg6.0和FFmpeg4.2的ffplay播放器差異分析
更多音視頻分享,騰訊課堂搜索零聲教育
FFmpeg6.0相比于FFmpeg4.2的ffplay差別不大,主要是avpacket queue的修改,F(xiàn)Fmpeg6.0采用AVFifo代替了 apcket_queue。
以下是大體的修改:
#include "config_components.h" 新增組件配置
#include "libavutil/channel_layout.h" 獨(dú)立的audio channel描述
#include "libavutil/fifo.h" 新的av fifo接口
#include "libavutil/bprint.h" ?打印相關(guān)av_bprint_finalize
#include "opt_common.h" ? 通用的命令行參數(shù)設(shè)置
使用avfio做packet隊(duì)列
通道數(shù)量和通道布局放在了同一個(gè)結(jié)構(gòu)
取消了flush_pkt
flush包是調(diào)用者自己去構(gòu)建
音頻的表示
audio_decode_frame,重采樣api使用swr_alloc_set_opts2