ffmpeg错误号码

bash 复制代码
#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))
//它负责将四个字符组合成一个32位整数

AVERROR_BSF_NOT_FOUND = -1179861752  
AVERROR_BUG = -558323010  
AVERROR_DECODER_NOT_FOUND = -1128613112  
AVERROR_DEMUXER_NOT_FOUND = -1296385272  
AVERROR_ENCODER_NOT_FOUND = -1129203192  
AVERROR_EOF = -541478725  
AVERROR_EXIT = -1414092869  
AVERROR_FILTER_NOT_FOUND = -1279870712  
AVERROR_INVALIDDATA = -1094995529  
AVERROR_MUXER_NOT_FOUND = -1481985528  
AVERROR_OPTION_NOT_FOUND = -1414549496  
AVERROR_PATCHWELCOME = -1163346256  
AVERROR_PROTOCOL_NOT_FOUND = -1330794744  
AVERROR_STREAM_NOT_FOUND = -1381258232  
AVERROR_BUG2 = -541545794  
AVERROR_UNKNOWN = -1313558101  

使用ffmpeg的时候,如果有错误,会返回一个int型负数。比如AVERROR_EOF就是-541478725。

从错误号解析为字符串方法如下

cpp 复制代码
#include <stdint.h>

#define FFERRTAG(a, b, c, d) (-(int32_t)MKTAG(a, b, c, d))

void getInt32Chars(int32_t value, char* chars)
{
    chars[0] = (value >> 24) & 0xFF;  // 获取高8位
    chars[1] = (value >> 16) & 0xFF;  // 获取次高8位
    chars[2] = (value >> 8) & 0xFF;   // 获取次低8位
    chars[3] = value & 0xFF;          // 获取低8位
}

int main()
{
    int32_t err = FFERRTAG('A', 'B', 'C', 'D');
    char chars[4];
    getInt32Chars(err, chars);

    // 输出字符
    for (int i = 0; i < 4; i++)
    {
        printf("%c", chars[i]);
    }
    printf("\n");

    return 0;
}

有些时候会返回-11、-22等无法解析为字符串的错误号是什么原因?

FFmpeg 中的 AVERROR 宏将错误码转换为负值,以便与 FFmpeg 的错误处理系统兼容。AVERROR 宏的定义通常如下:

cpp 复制代码
#define AVERROR(e) (-(e))

EAGAIN 在大多数系统上定义为11,因此,AVERROR(EAGAIN) 的值为 -11

相关推荐
Yeauty1 天前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg
Yeauty2 天前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频
paokuflying3 天前
ffmpeg提取视频中的音频
ffmpeg·音视频
Tirzano3 天前
java 精简使用ffmpeg
java·开发语言·ffmpeg
兵叔物联5 天前
基于FFmpeg的短视频自动剪辑工具
ffmpeg·音视频
霸道流氓气质7 天前
视频预览链路三件套:ZLMediaKit · MediaMTX · FFmpeg 完全指南
ffmpeg·音视频
xgc_java7 天前
在Java里把ONNX/OpenCV/FFmpeg跑稳:28篇bytedeco实战小册完整指南
java·opencv·ffmpeg
鲲穹AI全能助理13 天前
实用音频合成工具分享:灵境配音 使用场景与功能说明
ffmpeg·音视频
我是Superman丶13 天前
Windows系统FFmpeg官方下载+完整安装配置保姆级教程(2026最新版)
windows·ffmpeg
luoyayun36115 天前
Qt + FFmpeg 视频工具:视频一键压缩功能实现
qt·ffmpeg·音视频·视频压缩