添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

基于FFMPEG H.265 C++的编码器:avcodec_open2失效

0 人关注

当我把编解码器ID设置为 "AV_CODEC_ID_H264 "时,我的基于FFMPEG的c代码可以正确地生成h.264编码的视频文件。当我把它改为 "AV_CODEC_ID_HEVC "时,我从这些特定的代码行中得到了这样的输出。

ret = avcodec_open2(c, codec, &opt);
    av_dict_free(&opt);
    if (ret < 0) {
        fprintf(stderr, "Could not open video codec: %s\n", av_err2str(ret));
        exit(1);
[hevc_mf @ 000001F604B62F00] could not find any MFT for the given media type
[hevc_mf @ 000001F604B62F00] could not create MFT
Could not open video codec: Function not implemented

我有FFMPEG的4.1版本。我假设H.265编解码器是这个版本的一部分。我错过了什么?

c++11
ffmpeg
h.265
rt7085
rt7085
发布于 2021-07-21
1 个回答
rt7085
rt7085
发布于 2021-07-22
0 人赞同

我又做了一些研究,我得到了它的工作。HEVC编码器不是标准FFMPEG构建的一部分。我通过调整构建脚本重建了它,包括x264和x265两个外部库。我将为自己记录这一点,供将来参考。DLLs一定没有包括属于x265的功能,我以为这是标准FFMPEG构建的一部分,因为某些原因。

x265 [info]: HEVC encoder version 3.5+10-82786fccc
x265 [info]: build info [Windows][MSVC 1929][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main 10 profile, Level-2 (Main tier)
x265 [info]: Thread pool created using 8 threads
x265 [info]: Slices                              : 1
x265 [info]: frame threads / pool features       : 1 / wpp(5 rows)
x265 [warning]: Source height < 720p; disabling lookahead-slices
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 3
x265 [info]: Keyframe min / max / scenecut / bias  : 1 / 12 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / off / on
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 2 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : ABR-400 kbps / 0.60