FFmpeg 现在支持x265 的 10 位和 12 位编码,但我找不到适合以这些位深度对它们进行编码的命令行选项。
有人可以指定这些选项吗?
答案1
如果你有一个适当配置FFmpeg 和 x265 的现代版本(Zesty Zapus 17.04 下的存储库 FFmpeg 属于此类别),您会发现使用 8、10 和 12 位的编码相当简单。
我在下面为每个命令行举例说明:
1. 使用 FFmpeg 进行 8bit HEVC 编码...
检查你安装的 x265 版本的能力8位编码如下:
andrew@illium~$ x265 -V
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
在这里你会看到我自己的副本具有 8|10|12 位编码功能。针对此版本的 x265 编译的 FFmpeg 安装可以使用以下命令生成不错的 8 位编码:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p \
-c:a aac -b:a 128k \
output_8bit.mp4
当然,您可以改变这些设置以满足您的特定需求......
2. 使用 FFmpeg 进行 10bit HEVC 编码...
检查你安装的 x265 版本的能力10bit 编码如下:
andrew@illium~$ x265 -V -D10
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
在这里你会看到我自己的副本具有 10 位编码功能。针对此版本的 x265 编译的 FFmpeg 安装可以使用以下命令生成不错的 10 位编码:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p10le \
-c:a aac -b:a 128k \
output_10bit.mp4
这应该可以帮助你度过难关……
3. 使用 FFmpeg 进行 12bit HEVC 编码...
检查你安装的 x265 版本的能力12位编码如下:
andrew@illium~$ x265 -V -D12
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
在这里你会看到我自己的副本具有 12 位编码功能。针对此版本的 x265 编译的 FFmpeg 安装可以使用以下命令生成不错的 12 位编码:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p12le \
-c:a aac -b:a 128k \
output_12bit.mp4
再次尝试一些辅助参数应该会给你你想要的结果......
笔记:
如果你不确定哪些像素格式(对于重要的
-pix_fmt
FFmpeg 设置)受支持你的FFmpeg 和 libx265 的副本以下命令将显示详细信息:ffmpeg -h encoder=libx265 2>/dev/null | grep pixel
FFmpeg 和 H.265 编码指南:关于使用 FFmpeg 进行 HEVC 编码的基本信息,但没有关于 8|10|12 位编码的信息……
Zesty Zapus (17.04) 有一个稍旧但配置齐全的 x265:
andrew@ilium:~$ x265 -V x265 [info]: HEVC encoder version 2.3 x265 [info]: build info [Linux][GCC 6.3.0][64 bit] 8bit+10bit+12bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX LZCNT andrew@ilium:~$
因此可以编码为所有 3 种可能的位深度......