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