问题描述:使用ffmpeg拉取usb摄像头视频流时,出现部分摄像头的avcodec_open2函数返回值为-22,在查阅网上资料后并不能解决我的问题,最后在ffmpeg的官网论坛上发现已经有人提到此问题,但一些博客网站并未涉及,遂记录一下。
出现问题的摄像机的视频类型是raw video,我原有的解码逻辑大致为
解决方案: 需要在avcodec_alloc_context3()与avcodec_open2()之间增加avcodec_parameters_to_context()函数,设置初始属性。