ffmpeg - libx264 和 h264_nvenc 有什么区别?
问题描述
我正在尝试对一些视频进行编码,但是当我使用 libx264 时它们不起作用,而是将编解码器更改为 h264_nvenc 并播放。
如果我在使用 libx264 时将配置文件更改为基线,则会播放视频。
有什么不同?我可以使用 h264_nvenc 但我想使用 libx264 以获得更好的存储质量。
我的代码
bin\ffmpeg -i "Input-File" -c:v h264_nvenc -bf 3 -b_strategy 2 -temporal-aq 1 -rc-lookahead 20 -profile:v high -preset slow -rc vbr_hq -rc:v vbr_hq -qmin 0 -cq:v 19 -b:v 900k -maxrate:v 5000k -bufsize 2000K -c:a aac -ar 48000 -b:a 128k "Output-File.mp4"
解决方案
h264_nvenc 使用 NVidia 硬件辅助 H.264 视频编码器。libx264 是基于软件 (CPU) 的 H.264 编码器。
我猜想 libx264 在相同的比特率下提供比 h264_nvenc 更好的质量。
h264_nvenc 可能更快并且使用更少的功率。h264_nvenc 仅在 NVIDIA 硬件上可用。
推荐阅读
- iis - 使用 n 个查询字符串重写 IIS
- python - Python中的函数求和
- javascript - 尝试使用 Angular 代理请求时发生错误
- tampermonkey - 如何使用 Tampermonkey 在 textarea 中添加空格
- c++ - C++ 如何在文本文件中使用子字符串
- python - 循环项目
- javascript - API 在邮递员中有效,但在反应前端中无效
- python - 如何读取多字节串行数据?
- apache-kafka - 需要从 kafka 主题中读取记录,一旦读取 50 条记录,就调用一个在单个请求中接受 50 条记录的 API
- sql-server - 子查询无记录时如何让ALL返回false?