2017-04-25 60 views
0

我正嘗試通過FFmpeg連接M25 Mobotix相機。在這個過程中,我得到一個攝像頭連接成功,而另一個給出錯誤AVERROR_INVALIDDATA(-1094995529) 對於交叉驗證,我檢查了攝像頭的配置,它們幾乎相同。無重大區別。 當一臺攝像機連接而另一臺未連接時,可能是什麼原因。通過FFmpeg連接Mobotix相機時出錯

+0

歡迎StackOverflow上。 請參考參考stackoverflow.com/tour, 學習問好問題stackoverflow.com/help/how-to-ask, 做一個MCVE stackoverflow.com/help/mcve 當然,一個實際的MCVE將包含發送兩個攝像頭給所有的讀者...... ;-)但是你至少可以顯示相關的代碼。有一個(小)的機會,這裏的一個C型裂縫在代碼中單獨出現了一個微妙的錯誤。而且它可能會減少因爲脫離主題而被關閉/降低的危險(非代碼部分是,代碼部分不是,但沒有代碼....)。 – Yunnosch

回答

0

很難說沒有看到您的代碼和相機規格。至於錯誤....

您的錯誤代碼可以解碼如下。從ffmpeg的錯誤代碼(error.h從avutil): http://ffmpeg.org/doxygen/trunk/error_8h_source.html

原來你指定的值是:

#define AVERROR_INVALIDDATA  FFERRTAG('I','N','D','A') 

的-1094995529變得-0x41444E49,當你看那些信,在ACSII,0x41 ='A',0x44 ='D',0x4E ='N,0x49 ='I'。由於宏/等東西是相反的,所以ADNI成爲INDA,你可以從#define片斷看到,是定義爲FFERRTAG('I','N','D','A')的AVERROR_INVALIDDATA。

錯誤代碼的其餘部分是在該文件中,我已經在這裏下面粘貼他們:

#define AVERROR_BSF_NOT_FOUND  FFERRTAG(0xF8,'B','S','F') ///< Bitstream filter not found 
#define AVERROR_BUG    FFERRTAG('B','U','G','!') ///< Internal bug, also see AVERROR_BUG2 
#define AVERROR_BUFFER_TOO_SMALL FFERRTAG('B','U','F','S') ///< Buffer too small 
#define AVERROR_DECODER_NOT_FOUND FFERRTAG(0xF8,'D','E','C') ///< Decoder not found 
#define AVERROR_DEMUXER_NOT_FOUND FFERRTAG(0xF8,'D','E','M') ///< Demuxer not found 
#define AVERROR_ENCODER_NOT_FOUND FFERRTAG(0xF8,'E','N','C') ///< Encoder not found 
#define AVERROR_EOF    FFERRTAG('E','O','F',' ') ///< End of file 
#define AVERROR_EXIT    FFERRTAG('E','X','I','T') ///< Immediate exit was requested; the called function should not be restarted 
#define AVERROR_EXTERNAL   FFERRTAG('E','X','T',' ') ///< Generic error in an external library 
#define AVERROR_FILTER_NOT_FOUND FFERRTAG(0xF8,'F','I','L') ///< Filter not found 
#define AVERROR_INVALIDDATA  FFERRTAG('I','N','D','A') ///< Invalid data found when processing input 
#define AVERROR_MUXER_NOT_FOUND FFERRTAG(0xF8,'M','U','X') ///< Muxer not found 
#define AVERROR_OPTION_NOT_FOUND FFERRTAG(0xF8,'O','P','T') ///< Option not found 
#define AVERROR_PATCHWELCOME  FFERRTAG('P','A','W','E') ///< Not yet implemented in FFmpeg, patches welcome 
#define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,'P','R','O') ///< Protocol not found 
#define AVERROR_STREAM_NOT_FOUND FFERRTAG(0xF8,'S','T','R') ///< Stream not found 
#define AVERROR_BUG2    FFERRTAG('B','U','G',' ') 
#define AVERROR_UNKNOWN   FFERRTAG('U','N','K','N') ///< Unknown error, typically from an external library 
#define AVERROR_EXPERIMENTAL  (-0x2bb2afa8) ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it. 
#define AVERROR_INPUT_CHANGED  (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED) 
#define AVERROR_OUTPUT_CHANGED  (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED) 
#define AVERROR_HTTP_BAD_REQUEST FFERRTAG(0xF8,'4','0','0') 
#define AVERROR_HTTP_UNAUTHORIZED FFERRTAG(0xF8,'4','0','1') 
#define AVERROR_HTTP_FORBIDDEN  FFERRTAG(0xF8,'4','0','3') 
#define AVERROR_HTTP_NOT_FOUND  FFERRTAG(0xF8,'4','0','4') 
#define AVERROR_HTTP_OTHER_4XX  FFERRTAG(0xF8,'4','X','X') 
#define AVERROR_HTTP_SERVER_ERROR FFERRTAG(0xF8,'5','X','X')