You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何用FFmpeg编码视频为x265 10bit main10规格?为何输出为8bit?

解决FFmpeg x265 Main10编码输出8bit的问题

我来帮你搞定这个编码问题!你之前的命令犯了两个关键错误:参数顺序不对,而且没有明确指定10bit的像素格式,导致FFmpeg默认输出了8bit的视频。

正确的编码命令

直接用这条命令就能得到符合要求的Main10 10bit视频:

ffmpeg -i input.mkv -c:v libx265 -crf 28 -x265-params profile=main10 -pix_fmt yuv420p10le out.mkv

关键参数解释

  • -c:v libx265:必须用这个参数明确指定视频编码器为x265,你之前直接把libx265放在输入文件后面,FFmpeg会把它当成无效的输出文件名前缀,根本没启用x265编码器(这是核心错误)。
  • -pix_fmt yuv420p10le:强制使用10bit的YUV420像素格式,这是Main10 profile的硬性要求。如果不指定,FFmpeg会默认沿用输入文件的像素格式,或者编码器自动降级为8bit。
  • -crf 28:保持你原来设定的CRF质量值,这个参数没问题,数值越低视频质量越高,28是x265常用的平衡画质和体积的数值。
  • -x265-params profile=main10:指定使用Main10编码profile,这个参数你之前是对的,但要放在正确的位置。

验证输出是否正确

编码完成后,你可以用ffprobe命令检查输出文件的属性,确认是10bit Main10:

ffprobe -v error -select_streams v:0 -show_entries stream=pix_fmt,codec_name,profile -of default=noprint_wrappers=1:nokey=1 out.mkv

正常输出应该是:libx265,main10,yuv420p10le,这就说明编码正确了。

内容的提问来源于stack exchange,提问作者Vedant Sahu

火山引擎 最新活动