FFMPEG h264_amf C++中的用法
ffmpeg h264_amf usage in C++
我想在我的C++代码中使用h264_amf编码器。在 FFmpeg 命令行工具中,我可以编写ffmpeg -i in_to_tree_1080p50.y4m -c:v h264_amf out.mp4
这对我来说很好用,但是当我尝试使用avcodec_find_encoder_by_name
找到这个编码器时,我找不到它。我的完整代码:
static AVCodec* select_codec() {
static std::array<const char*, 6> codecs = {
"h264_nvenc",
"h264_amf",
"h264_omx",
"h264_v4l2m2m",
"h264_vaapi",
"h264_videotoolbox",
};
for (const char* name : codecs) {
if (auto* codec = avcodec_find_encoder_by_name(name)) {
std::cout << "Using " << name << " encoder" << std::endl;
return codec;
}
}
std::cout << "Using default h264 encoder" << std::endl;
return avcodec_find_encoder(AV_CODEC_ID_H264);
}
int main() {
select_codec();
return 0;
}
此函数的输出始终Using default h264 encoder
。我做错了什么吗?
我的配置:
- FFmpeg 4.0
- 视窗 10 x64
- MSVC17(141 个工具集(
- Radeon RX 470 显卡
你必须在 avcodec_find_encoder_by_name(( 和 avcodec_find_encoder(( 之前调用 av_register_all((。
相关文章:
- 这个指针在c++中的用法
- 当C++中需要自动删除时,这是静态的正确用法吗?
- libstdc++ 文件系统中未初始化的用法?
- 复制和交换习惯用法与移动操作之间的交互
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 命名参数习惯用法和(抽象)基类
- 省略号在C++中的所有用法
- () 在 C++ 11 中的特殊而奇怪的用法?
- 构造函数的用法
- 模板类中自动的类用法不完整
- 这里的 = 运算符有什么用法?
- 什么模板用法在阶乘中更好
- 如果可变长度元素的constexpr用法得到<>
- 为什么 setjmp/longjmp 的这种用法是未定义的行为?
- 访问提升:shared_ptr 主范围外崩溃,断言失败:px != 0.指针的正确用法是什么?
- C++ 中函数中 Const 用法之间的差异
- equal_to模板类C++用法
- PCL 中的 GICP 用法
- 向量的正确用法<int>::size_type
- C++命名空间的基本用法