视频编码器 open 失败就会报这个错,ffmpeg 代码如下:
if ((ret = avcodec_open2(ost->enc_ctx, codec, &ost->encoder_opts)) < 0) {
if (ret == AVERROR_EXPERIMENTAL)
abort_codec_experimental(codec, 1);
snprintf(error, error_len,
"Error while opening encoder for output stream #%d:%d - "
"maybe incorrect parameters such as bit_rate, rate, width or height",
ost->file_index, ost->index);
return ret;
}
一些编码器对输入的宽高、码率有限制,如果参数不符合编码器要求,就会导致 open 失败,比如
H.261 需要输入的视频分辨率是 176x144 或者 352x288 ;
H.263 需要输入的视频分辨率是 128x96, 176x144, 352x288, 704x576, 或者 1408x1152 。
你可以把命令行、以及终端打印贴出来,方便定位问题。