FFmpeg中根据枚举获取名称的相关函数总结,例如av_get_sample_fmt_name和avcodec_get_name等
目录一、音频类二、视频 / 像素格式类三、Codec / Media 类型avcodec四、错误码 / 状态调试必用五、AVFormat / IO / Seek 相关六、Log / Level / DTS 之类七、完整对照速查表八、Qt / C 友好封装九、一个“打印流信息”的一行版十、一句话总结觉得有用就请您帮忙点赞转发收藏吧您的鼓励是我创作的动力多谢看官。由于能力水平有限文中的错误或不严谨的地方在所难免还请批评指正。在FFmpeg库中处理枚举类型并获取它们的名称是一个常见的需求尤其是在调试或显示信息时。FFmpeg提供了多种函数来实现这一功能这些函数通常位于libavutil和libavcodec库中。以下是一些常用的函数它们可以帮助你根据枚举获取名称。结论先说FFmpeg 几乎所有核心 enum 都有官方get_name函数​但名字不统一有av_*/avcodec_*/avutil_*下面按模块整理表格为主实战优先。一、音频类枚举获取名称函数返回内容示例AVSampleFormatav_get_sample_fmt_name()s16,fltpav_get_sample_fmt_name(AV_SAMPLE_FMT_S16)AVChannelLayoutav_channel_layout_describe()stereo,5.1av_channel_layout_describe(ch)AVChannelav_get_channel_name()FL,FRav_get_channel_name(AV_CHAN_FRONT_LEFT)AVChannelOrderav_channel_order_name()native,waveFFmpeg ≥ 5.1AVSampleRate无 enum自己QString::number()––音频三件套Qt 调试神器qDebug(fmt%s ch%s rate%d, av_get_sample_fmt_name(fmt), av_channel_layout_describe(layout), rate);二、视频 / 像素格式类枚举获取名称函数返回内容示例AVPixelFormatav_get_pix_fmt_name()yuv420p,rgb24AVColorSpaceav_color_space_name()bt709,bt2020FFmpeg ≥ 6AVColorPrimariesav_color_primaries_name()bt709AVColorTransferCharacteristicav_color_transfer_name()srgb,pqAVColorRangeav_color_range_name()mpeg,jpegAVFieldOrderav_frame_get_side_data() enumtop_bottom少直接用三、Codec / Media 类型avcodec枚举函数返回AVCodecIDavcodec_get_name()aac,h264AVMediaTypeav_get_media_type_string()audio,videoAVProfileavcodec_profile_name()High,Main打印流信息替代 av_dump_format 的轻量版qDebug([%s] codec%s profile%s, av_get_media_type_string(st-codecpar-codec_type), avcodec_get_name(st-codecpar-codec_id), avcodec_profile_name(st-codecpar-codec_id, st-codecpar-profile));四、错误码 / 状态调试必用类型函数说明int retav_strerror()转字符串不是 enumAVERROR_EOF用av_strerror()End of fileAVERROR(EAGAIN)Resource temporarily unavailable标准写法char err[128]; av_strerror(ret, err, sizeof err); qDebug(ff err: %s, err);五、AVFormat / IO / Seek 相关枚举函数返回AVFMT_*flags无统一函数自己fmt_ctx-iformat-nameAVIOContextprotocolfmt_ctx-iformat-namertsp,mp4seek flags无AVSEEK_FLAG_BACKWARD手写协议名fmt_ctx-iformat-name // mov,mp4,m4a,3gp六、Log / Level / DTS 之类枚举函数AVLogLevel无自己 switchAVDiscard无AVOptionTypeav_opt_type_name()FFmpeg ≥ 6七、完整对照速查表你看到的 enum正确 APIAVCodecID idavcodec_get_name(id)AVMediaType tav_get_media_type_string(t)AVSampleFormat fav_get_sample_fmt_name(f)AVPixelFormat pav_get_pix_fmt_name(p)AVChannelLayout cav_channel_layout_describe()int errav_strerror()AVProfile pavcodec_profile_name()八、Qt / C 友好封装inline QString ff_codec(const AVCodecParameters *p) { return avcodec_get_name(p-codec_id); } inline QString ff_fmt(AVSampleFormat f) { return av_get_sample_fmt_name(f); } inline QString ff_pix(AVPixelFormat f) { return av_get_pix_fmt_name(f) ? : unknown; } inline QString ff_err(int r) { char b[256]; av_strerror(r, b, sizeof b); return b; }九、一个“打印流信息”的一行版void dump(AVStream *s) { qDebug(type%s codec%s fmt%s ch%d rate%d, av_get_media_type_string(s-codecpar-codec_type), avcodec_get_name(s-codecpar-codec_id), av_get_sample_fmt_name((AVSampleFormat)s-codecpar-format), s-codecpar-ch_layout.nb_channels, s-codecpar-sample_rate); }十、一句话总结FFmpeg 的命名规则av_xxx_name()→ avutil / formatavcodec_xxx_name()→ codecav_xxx_describe()→ channel / layout错误一律av_strerror()

相关新闻

FFmpeg时间基相关函数大杂烩

FFmpeg时间基相关函数大杂烩

目录 一、核心时间基概念速记 二、时间基转换「主函数表」(最重要) 三、AVRational 工具函数表 四、FFmpeg 内置时间基常量 五、不同场景「怎么选函数」对照表 1️. Packet PTS → 毫秒(最常用) 2️. Frame PTS → 秒&…

2026/8/10 22:28:10 阅读更多 →
WeChatMsg终极指南:3大核心功能实现微信聊天数据永久保存与智能分析

WeChatMsg终极指南:3大核心功能实现微信聊天数据永久保存与智能分析

WeChatMsg终极指南:3大核心功能实现微信聊天数据永久保存与智能分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tren…

2026/8/10 22:27:09 阅读更多 →
NestJS 入门(3):Guard 如何挡住未登录请求?

NestJS 入门(3):Guard 如何挡住未登录请求?

上一篇:NestJS 入门(2):依赖注入到底解决了什么问题? 讲完了「对象怎么接到一起」。 接下来更贴近业务的问题是: 有些接口谁都能调,有些接口必须先登录。Nest 把这道门放在哪里? 答案…

2026/8/10 22:27:09 阅读更多 →

最新新闻

Linux主机安全应急响应:Shell自动化检查框架的设计与实践

Linux主机安全应急响应:Shell自动化检查框架的设计与实践

1. 项目概述如果你是一名运维工程师或者安全工程师,当半夜被电话叫醒,被告知某台核心Linux服务器可能被入侵时,你的第一反应是什么?是手忙脚乱地敲一堆零散的ps aux、netstat -antp、find / -perm -4000命令,还是能有一…

2026/8/10 23:07:41 阅读更多 →
从spi p9a案例看技术方案工程化:从Demo到生产落地的完整路径

从spi p9a案例看技术方案工程化:从Demo到生产落地的完整路径

你有没有遇到过这样的场景:一个项目,一个工具,或者一个框架,在初次接触时感觉无比顺畅,文档清晰,示例跑通,一切看起来都那么美好。你信心满满地准备将其应用到更复杂的生产环境,结果…

2026/8/10 23:07:41 阅读更多 →
实用技巧解析:高效管理Android应用的进阶方案

实用技巧解析:高效管理Android应用的进阶方案

实用技巧解析:高效管理Android应用的进阶方案 【免费下载链接】aya Android ADB desktop app 项目地址: https://gitcode.com/gh_mirrors/aya/aya AYA应用管理器是一款基于ADB的桌面应用,专为Android开发者设计,提供强大的应用管理功能…

2026/8/10 23:07:41 阅读更多 →
飞算JavaAI 智能引导:五步实现从需求到工程级源码的自动化生成

飞算JavaAI 智能引导:五步实现从需求到工程级源码的自动化生成

飞算JavaAI 智能引导:五步实现从需求到工程级源码的自动化生成 还在为从需求文档到可运行代码之间的巨大鸿沟发愁?飞算JavaAI的智能引导功能,只需五个步骤,就能将自然语言描述的业务需求转化为完整的Java工程级源代码。 一、什么是…

2026/8/10 23:07:41 阅读更多 →
DeepSeek + 本地知识库:30 分钟给团队搭一个能回答内部问题的问答机器人

DeepSeek + 本地知识库:30 分钟给团队搭一个能回答内部问题的问答机器人

最近有几个同事老在群里问"报销流程是啥"“请假怎么走”,明明文档里都写了,就是没人翻。我想着干脆用 DeepSeek 搭一个能"读我们资料"的问答机器人,贴到群里,谁想问就直接问。折腾了一下午跑通了,…

2026/8/10 23:07:41 阅读更多 →
解锁500+AI模型:开源AI生成平台的完全自托管方案

解锁500+AI模型:开源AI生成平台的完全自托管方案

解锁500AI模型:开源AI生成平台的完全自托管方案 【免费下载链接】Open-Generative-AI Unrestricted Open-source alternative to AI video platforms — Free AI image & video generation studio with 500 models (Flux, Midjourney, Kling, Sora, Veo). No co…

2026/8/10 23:06:40 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →