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->streamsi->codecpar->codec_type == AVMEDIA_TYPE_VIDEO

fmt_ctx->streamsi->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);

相关推荐
两个人的幸福2 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo4 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack4 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982075 天前
PHP 扩展——从入门到理解
php
鹏仔先生6 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术6 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园6 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob6 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享6 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm