可以选择声明视频尺寸:
av_dict_set(&options, "video_size", "1920x1080", 0);
尺寸组件是否有任何等效选项?像:
av_dict_set_int(&options, VIDEO_WIDTH_OPT_STR , 1920, 0);
av_dict_set_int(&options, VIDEO_HEIGHT_OPT_STR, 1080, 0);
这些宏(如果有的话)的值是什么?
#define VIDEO_WIDTH_OPT_STR "?"
#define VIDEO_HEIGHT_OPT_STR "?"
请注意我知道man snprintf
,这不是我关心的问题,谢谢。
答案 0 :(得分:2)
你可以在字典中添加你想要的任何东西,它只是一个容器。例如,video_size
被解析为两个整数,用于使用它的格式。请参阅AV_OPT_TYPE_IMAGE_SIZE
中的libavutil/opt.c
。
您可以为班级定义自己的选项(AVOption
)。因此,没有什么能阻止您添加video_width
和video_height
等两个选项,并通过字典对其进行初始化。
static const AVOption options[] = {
{ "video_width", "frame width", OFFSET(width), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, INT_MAX, DEC },
{ "video_height", "frame height", OFFSET(height), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, INT_MAX, DEC },
{ NULL }
};
static const AVClass some_class = {
[...]
.option = options,
[...]
}
其中width
和height
是您的格式使用的结构的成员。