【问题标题】:ffmpeg - HDR to SDR - Unable to find a suitable output format for 'format=gbrpf32le'ffmpeg - HDR 到 SDR - 无法为“format=gbrpf32le”找到合适的输出格式
【发布时间】:2019-03-24 14:54:11
【问题描述】:

我在使用 ffmpeg 4.0.2 的 Windows 10 上。我在 [here][1] 找到了 HDR 到 SDR 的脚本,但是当我从页面底部运行脚本时:

ffmpeg.exe -i input.mkv -vf zscale=t=linear:npl=100,format=gbrpf32le,
zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,
format=yuv420p -c:v libx265 -crf 18 -preset slower output.mkv

我收到此错误:

[NULL @ 0000014588707480] Unable to find a suitable output format for 
'format=gbrpf32le'
format=gbrpf32le: Invalid argument

当我从页面运行第一个脚本时:

ffmpeg.exe -i input.mkv -vf select=gte(n\,360) -vframes 1 output.png

我收到此错误:

At line:1 char:41
+ ffmpeg.exe -i Hook.mkv -vf select=gte(n\,360) -vframes 1 output.png
+                                         ~
Missing argument in parameter list.
+ CategoryInfo          : ParserError: (:) [], 
ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingArgument
[1]: https://stevens.li/guides/video/converting-hdr-to-sdr-with-ffmpeg/

我对 ffmpeg 很陌生,有人可以解释一下发生了什么吗?

非常感谢!

【问题讨论】:

  • 将 vf 参数放在双引号中,即"zscale=...format=yuv420p"
  • 是的,做到了@Gyan,谢谢!

标签: ffmpeg hevc hdr


【解决方案1】:

阅读这篇文章,了解如何将 HDR10+ 视频转换为 SDR(标准动态范围),以便它们可以在非 HDR 设备上以明亮且不褪色的原始颜色观看:

https://www.maxvergelli.com/how-to-convert-hdr10-videos-to-sdr-for-non-hdr-devices/

这是批处理命令:

C:\ffmpeg\bin\ffmpeg.exe -i video-input.mp4 -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v libx265 -crf 22 -preset medium -tune fastdecode -t 90 video-output.mp4

【讨论】:

  • 使用这个有一段时间了。有时视频出来太暗。在这种情况下,将 npl=100 减少到 npl=50 左右会很有帮助。只需尝试不同的值,直到结果看起来不错。
猜你喜欢
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多