1背景介绍

做了个屏幕录制程序,可自选屏幕区域进行录制,保存格式可选为mp4,使用ffmpeg实现生成mp4格式文件,全屏幕录制无任何问题,自选区域录制部分情况下生成mp4文件无数据

2 问题描述

当mp4文件无数据时,均是由于使用ffmpeg过程中avcodec_open2函数失败造成,如默认1024 768录制,无任何问题,但设置录制区域为1024 767会返回非0值,但两种情况下avcodec_open2函数第一个参数AVCodecContext指针除宽度高度外其余值均相等

3 问题处理

经过修改宽度和高度发现,当区域宽度和高度均为偶数时,能正常生成MP4文件,否则会造成avcodec_open2失败,具体原因未知,若了解具体缘由,请给予解答