2024年4月24日发(作者:喜英卫)
ffmpeg hdr转sdr 参数
FFmpeg HDR转SDR参数是什么?
在现代数字媒体中,高动态范围(HDR)视频已经成为标准,但是并非所有设备都
支持HDR,因此需要将HDR视频转换为标准动态范围(SDR)视频。为此,可以
使用FFmpeg工具来进行HDR到SDR的视频转换。
FFmpeg是一个免费的开源跨平台视频处理工具,可以处理大多数音频和视频格
式,并提供强大的功能和参数,包括HDR到SDR转换。
以下是一些FFmpeg HDR转SDR的常用参数:
1.色彩模式:
FFmpeg的色彩管理系统提供了多种色彩模式的支持,其中包括Rec. 709、Rec.
2020和BT.2020等。这些模式可以指定为转换过程的一部分,以确保输出视频
具有正确的色彩空间。
例如,要将HDR视频转换为Rec. 709 SDR视频,可以使用以下命令:
ffmpeg -i -vf
zscale=transfer=linear:primaries=bt2020:range=full -pix_fmt yuv420p
-c:v libx265 -x265-params crf=18 -preset slower -c:a copy
4
在这个命令中,zscale滤镜用于指定使用线性传递函数,BT.2020色彩主体和全
范围色彩。这将确保输出视频具有正确的色彩空间。
2.色彩映射:
HDR视频通常具有比SDR视频更高的亮度范围和对比度范围。要在转换过程中
处理这些差异,需要使用色彩映射滤镜,例如tone-mapping算法。
例如,要使用HDR10的色彩映射算法将HDR视频转换为SDR视频,可以使用
以下命令:
ffmpeg -i -filter_complex
tone=map=tonemap=clip:desat=0:contrast=1.5 -pix_fmt yuv420p -c:v
libx265 -x265-params crf=18 -preset slower -c:a copy 4
在这个命令中,tone映射滤镜用于映射HDR视频的亮度范围和对比度范围,
clip参数用于修整过曝或下曝。desat参数用于减少过渡过饱和的颜色,contrast
参数用于调整对比度。
3.色温调整:
进行HDR到SDR转换时,还可以对色温进行调整。通常,HDR视频具有更高
的色温值,因此需要进行调整以生成更准确的颜色。
例如,要将HDR视频转换为较低的色温值,并在转换过程中降低亮度,可以使
用以下命令:
ffmpeg -i -vf
zscale=transfer=linear:primaries=bt2020:range=full,
eq=contrast=1.2:brightness=-0.1:saturation=0.95,
colormatrix=bt601:bt709 -pix_fmt yuv420p -c:v libx265 -x265-params
crf=18 -preset slower -c:a copy 4
在这个命令中,使用eq滤镜来调整亮度、对比度和饱和度,并使用colormatrix
滤镜来转换颜色空间为BT.709。这将确保输出视频具有正确的颜色和色温。
总结:
FFmpeg是一个强大而灵活的视频处理工具,可以进行HDR到SDR的视频转
换,可以使用不同的参数和选项来达到最佳的效果。在进行HDR到SDR转换
时,请确保使用正确的色彩空间和色彩映射算法,并对亮度、色温和对比度进行
适当的调整,以获取最佳的SDR输出视频质量。
2024年4月24日发(作者:喜英卫)
ffmpeg hdr转sdr 参数
FFmpeg HDR转SDR参数是什么?
在现代数字媒体中,高动态范围(HDR)视频已经成为标准,但是并非所有设备都
支持HDR,因此需要将HDR视频转换为标准动态范围(SDR)视频。为此,可以
使用FFmpeg工具来进行HDR到SDR的视频转换。
FFmpeg是一个免费的开源跨平台视频处理工具,可以处理大多数音频和视频格
式,并提供强大的功能和参数,包括HDR到SDR转换。
以下是一些FFmpeg HDR转SDR的常用参数:
1.色彩模式:
FFmpeg的色彩管理系统提供了多种色彩模式的支持,其中包括Rec. 709、Rec.
2020和BT.2020等。这些模式可以指定为转换过程的一部分,以确保输出视频
具有正确的色彩空间。
例如,要将HDR视频转换为Rec. 709 SDR视频,可以使用以下命令:
ffmpeg -i -vf
zscale=transfer=linear:primaries=bt2020:range=full -pix_fmt yuv420p
-c:v libx265 -x265-params crf=18 -preset slower -c:a copy
4
在这个命令中,zscale滤镜用于指定使用线性传递函数,BT.2020色彩主体和全
范围色彩。这将确保输出视频具有正确的色彩空间。
2.色彩映射:
HDR视频通常具有比SDR视频更高的亮度范围和对比度范围。要在转换过程中
处理这些差异,需要使用色彩映射滤镜,例如tone-mapping算法。
例如,要使用HDR10的色彩映射算法将HDR视频转换为SDR视频,可以使用
以下命令:
ffmpeg -i -filter_complex
tone=map=tonemap=clip:desat=0:contrast=1.5 -pix_fmt yuv420p -c:v
libx265 -x265-params crf=18 -preset slower -c:a copy 4
在这个命令中,tone映射滤镜用于映射HDR视频的亮度范围和对比度范围,
clip参数用于修整过曝或下曝。desat参数用于减少过渡过饱和的颜色,contrast
参数用于调整对比度。
3.色温调整:
进行HDR到SDR转换时,还可以对色温进行调整。通常,HDR视频具有更高
的色温值,因此需要进行调整以生成更准确的颜色。
例如,要将HDR视频转换为较低的色温值,并在转换过程中降低亮度,可以使
用以下命令:
ffmpeg -i -vf
zscale=transfer=linear:primaries=bt2020:range=full,
eq=contrast=1.2:brightness=-0.1:saturation=0.95,
colormatrix=bt601:bt709 -pix_fmt yuv420p -c:v libx265 -x265-params
crf=18 -preset slower -c:a copy 4
在这个命令中,使用eq滤镜来调整亮度、对比度和饱和度,并使用colormatrix
滤镜来转换颜色空间为BT.709。这将确保输出视频具有正确的颜色和色温。
总结:
FFmpeg是一个强大而灵活的视频处理工具,可以进行HDR到SDR的视频转
换,可以使用不同的参数和选项来达到最佳的效果。在进行HDR到SDR转换
时,请确保使用正确的色彩空间和色彩映射算法,并对亮度、色温和对比度进行
适当的调整,以获取最佳的SDR输出视频质量。