Я пытаюсь захватить поток веб-камеры, используя API FFMPEG C в окнах. Я могу делать то, что я хочу использовать следующие параметры командной строки:FFMPEG Set Webcam Encoder C++
ffmpeg -f dshow -vcodec mjpeg -s 1280x720 -framerate 30 -i video=HX-A1:audio="Microphone (HX-A1)" outputFile.mpg
Я начал с примера transcoding.c и получил это работает для записи виртуального веб-камера, как экран-захвата-рекордера. Тем не менее, мне нужно установить параметры кодировщика для моей реальной веб-камеры, потому что по умолчанию используется необработанное видео 160x120, и я предпочел бы более высокое разрешение. Я пытаюсь настроить параметры кодировщика камеры, но, похоже, ничего не делает.
AVDictionary *opt = NULL;
av_dict_set(&opt, "vcodec", "mjpeg", 0);
av_dict_set(&opt, "s", "1280x720", 0);
av_dict_set(&opt, "framerate", "30", 0);
if ((ret = avformat_open_input(&ifmt_ctx, filename, inputFormat, &opt)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n");
return ret;
}
Есть ли другой способ установить параметры ввода, чтобы сообщить камере, какой кодек использовать, как это сделано в моей командной строке?