【问题标题】:ffmpeg/Libavcodec couldn't find codecffmpeg/Libavcodec 找不到编解码器
【发布时间】:2021-03-01 02:18:01
【问题描述】:
我想制作一个从 h.264 到 h.265 的转码视频应用。
libavcodec 库有问题。我的项目中有这个库,所有功能都在工作,但是当我尝试设置编解码器时:
avcodec_find_decoder_by_name("libx265");
函数找不到它。然而,当我给“hevc”而不是“libx265”时,函数正在工作,但它不一样。
请帮忙:)
【问题讨论】:
标签:
c++
ffmpeg
libav
libavcodec
【解决方案1】:
ffmpeg 已经实现了编解码器(我们称之为内置)和第三方编解码器的包装器。似乎/可能是 h265 编解码器只是一个包装器,这意味着您必须安装 h265 解码器。另外,你配置ffmpeg的时候有没有指定h265编解码?您是自己构建的还是通过包管理器预构建的?
在命令行中尝试“ffmpeg -decoders”并搜索 h265。
【解决方案2】:
没有名为 libx265 的解码器
libx265 只是一个编码器。
FFmpeg 具有原生的内置 HEVC/H.265 解码器
它被命名为 hevc。您无需执行任何特殊操作即可包含或启用它。
还有几种硬件加速 HEVC 解码器可能适用于您的系统:hevc_cuvid、hevc_mediacodec、hevc_qsv、hevc_rkmpp 和 hevc_v4l2m2m。