ffmpeg - FFMPEG 将 HEVC 转换为 VP9 大文件大小
问题描述
我正在尝试将 HEVC 视频转换为 VP9,以便它们可以在网络浏览器中播放,同时保持文件大小大致相同。
我正在努力创建具有相似质量/文件大小的视频。
这是视频为 22:49 和 168.7mb 的 HEVC 视频之一的流信息:
Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, bt709), 1920x1080, 900 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc (default)
比特率为 900K,所以我认为以下命令将使用相同的比特率并提供大致相似的图像质量:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -vaapi_device /dev/dri/renderD128 -i "$infile" -vf 'format=nv12,hwupload' -c:v vp9_vaapi -b:v 900K -bf 2 -bsf:v vp9_raw_reorder,vp9_superframe -c:a libvorbis "$outfile"
使用它,质量明显要差得多,而且繁忙的场景看起来令人难以置信的块状,尽管文件大小大致相当于 HEVC 源。
如果我忽略比特率并让 VP9 解决
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -vaapi_device /dev/dri/renderD128 -i "$infile" -vf 'format=nv12,hwupload' -c:v vp9_vaapi -b:v 0 -bf 2 -bsf:v vp9_raw_reorder,vp9_superframe -c:a libvorbis "$outfile"
质量在视觉上无法区分,但 VP9 转换视频的文件大小达到 401mb,高于 HEVC 文件的 168mb,并且在编码期间,大多数视频的比特率超过 3m。
我尝试提高到 120 万(比源视频高 33%),VP9 仍然给出了一个非常块状的视频。
VP9 真的比 HEVC 差那么多,还是我缺少一个选项?还是因为我正在从 HEVC 转换?
解决方案
推荐阅读
- jekyll - 从 Jekyll 生成的页面设置 GitHub 页面站点
- javascript - 单击/悬停图像时如何更改图像下的文本
- java - 无法在方法上使用 Aspect
- google-cloud-platform - 使用 Python 库上传时,Google Cloud Storage 存储桶默认停止覆盖文件
- r - 当我尝试在 Shiny 中将数据帧转换为 xts 对象时,为什么时间戳会消失?
- html - 为什么行内元素会在小屏幕上换行?
- python - 使用 `subprocess.call' 和 `shell=True' 运行命令时,不执行 Shell 扩展
- android - 带 ID 的动态添加视图
- php - 如何使用按钮根据数据库数据进行独特的操作
- c++ - 如何创建具有分层对象和值的 json 对象?