背景介紹:做了個屏幕錄制程序,可自選屏幕區域進行錄制,保存格式可選為mp4,使用ffmpeg實現生成mp4格式文件,全屏幕錄制無任何問題,自選區域錄制部分情況下生成mp4文件無數據
問題描述:當mp4文件無數據時,均是由於使用ffmpeg過程中avcodec_open2函數失敗造成,如默認1024*768錄制,無任何問題,但設置錄制區域為1024*767會返回非0值,但兩種情況下avcodec_open2函數第一個參數AVCodecContext指針除寬度高度外其余值均相等
問題處理:經過修改寬度和高度發現,當區域寬度和高度均為偶數時,能正常生成MP4文件,否則會造成avcodec_open2失敗,具體原因未知,若了解具體緣由,請給予解答