日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmpeg- 部分错误码-av_interleaved_write_frame/av_write_frame

發布時間:2024/5/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmpeg- 部分错误码-av_interleaved_write_frame/av_write_frame 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 部分返回值錯誤碼
    • Linux error_base.h
  • av_interleaved_write_frame/av_write_frame 返回值

如有錯誤,請指正,謝謝。

部分返回值錯誤碼

ffmpeg源碼部分返回值形式為:

**AVERROR(EINVAL)** **AVERROR(EPIPE)** **AVERROR(ENOMEM)** ......

再看一下ffmpeg內部對于宏的實現,AVERROR

/* error handling */ #if EDOM > 0 #define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. #define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. #else /* Some platforms have E* and errno already negated. */ #define AVERROR(e) (e) #define AVUNERROR(e) (e) #endif

所以大膽猜測(新手,看過的源碼太少),錯誤碼計數比較小的值應該是操作系統內部定義好的錯誤碼。

Linux error_base.h

#ifndef _ASM_GENERIC_ERRNO_BASE_H #define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Argument list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Try again */ #define ENOMEM 12 /* Out of memory */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Device or resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math argument out of domain of func */ #define ERANGE 34 /* Math result not representable */#endif

av_interleaved_write_frame/av_write_frame 返回值

0代表發送/寫入成功,負數表示錯誤碼。
我遇到的幾個錯誤碼:
-22:參數錯誤,例如AVPacket的stream_index的值不正確,dts不過濾(沒有遞增)等等
-32:管道阻塞:這個一般是socket錯誤,我遇到的情況是,推流的服務器斷開了socket鏈接,導致發送失敗。(不知道為什么ffmpeg日志沒有打印這個。)

歡迎轉載: https://blog.csdn.net/shizheng163

總結

以上是生活随笔為你收集整理的ffmpeg- 部分错误码-av_interleaved_write_frame/av_write_frame的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。