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

相关推荐
简鹿办公23 分钟前
使用 FFmpeg 进行音视频转换的相关命令行参数解释
ffmpeg·简鹿视频格式转换器·ffmpeg视频转换
EasyCVR4 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min4 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders
岁月小龙15 小时前
如何让ffmpeg运行时从当前目录加载库,而不是从/lib64
ffmpeg·origin·ffprobe·rpath
行者记2 天前
ffmpeg命令——从wireshark包中的rtp包中分离h264
测试工具·ffmpeg·wireshark
EasyCVR2 天前
国标GB28181视频平台EasyCVR私有化视频平台工地防盗视频监控系统方案
运维·科技·ffmpeg·音视频·1024程序员节·监控视频接入
hypoqqq2 天前
使用ffmpeg播放rtsp视频流
ffmpeg
cuijiecheng20182 天前
音视频入门基础:FLV专题(24)——FFmpeg源码中,获取FLV文件视频信息的实现
ffmpeg·音视频
QMCY_jason2 天前
黑豹X2 armbian 编译rkmpp ffmpeg 实现CPU视频转码
ffmpeg
苍天饶过谁?2 天前
SDL基本使用
ffmpeg