FFmpeg 解封装简单流程

打开文件,主要是探测协议类型,如果是网络文件则创建网络链接

avformat_open_input(&ifmt_ctx, in_filename, NULL, NULL);

获取流信息

avformat_find_stream_info(ifmt_ctx, NULL);

打印媒体信息

av_dump_format(ifmt_ctx, 0, in_filename, 0);

遍历查找视频/音频流索引

for (uint32_t i = 0; i < ifmt_ctx->nb_streams; i++)

fmt_ctx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO

fmt_ctx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO

AVPacket *pkt = av_packet_alloc();

读取数据包

while (1)

{

av_read_frame(ifmt_ctx, pkt);

if (pkt->stream_index == audioindex)

...

if (pkt->stream_index == videoindex)

...

av_packet_unref(pkt);

}

av_packet_free(&pkt);

avformat_close_input(&ifmt_ctx);

相关推荐
半瓶榴莲奶^_^5 分钟前
java模式
java·开发语言
sword devil9006 分钟前
TRAE:agent团队
开发语言
co_wait7 分钟前
【c 语言】linux下gcc编译工具的使用
linux·c语言·开发语言
2301_815482938 分钟前
C++编译期矩阵运算
开发语言·c++·算法
☆56613 分钟前
C++中的类型擦除技术
开发语言·c++·算法
m0_5698814719 分钟前
C++与自动驾驶系统
开发语言·c++·算法
天理小学渣20 分钟前
JavaScript_基础教程_自学笔记
开发语言·javascript·笔记
難釋懷32 分钟前
Lua语法入门-变量和循环
开发语言·junit·lua
csbysj202039 分钟前
CSS 颜色
开发语言
2401_8331977339 分钟前
C++代码切片分析
开发语言·c++·算法