gpt4 book ai didi

c++ - 在ffmpeg中使用复用读取编码数据

转载 作者:行者123 更新时间:2023-12-04 23:26:43 24 4
gpt4 key购买 nike

我正在尝试使用 ffmpeg c++ 读取编码视频。当我尝试构建我的代码错误时出现标识符选项未定义。但它已经定义为 AVDictionary *options = NULL .

我的代码有什么问题?

void CFfmpegmethods::VideoRead(){

const char *url = "H:/Sanduni_projects/ad_2.mp4";

AVFormatContext *s = NULL;
int ret = avformat_open_input(&s, url, NULL, NULL);
if (ret < 0)
abort();

avformat_find_stream_info(s, &options);

AVDictionary *options = NULL;

av_dict_set(&options, "video_size", "640x480", 0);
av_dict_set(&options, "pixel_format", "rgb24", 0);

if (avformat_open_input(&s, url, NULL, &options) < 0){
abort();
}

av_dict_free(&options);

AVDictionaryEntry *e;

if (e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX)) {
fprintf(stderr, "Option %s not recognized by the demuxer.\n", e->key);
abort();
}

avformat_close_input(&s);
}

最佳答案

注释掉 about()带来了options 的声明if 范围内的变量,所以你的代码这样做:

if (ret < 0)
{
//abort();

AVDictionary *options = NULL;
}

最好在分支后始终打开一个新的 {} 以避免此类问题:
if (ret < 0)
{
//abort(); // now commenting this line does not make scope to change
}
AVDictionary *options = NULL;

关于c++ - 在ffmpeg中使用复用读取编码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com