gpt4 book ai didi

ffmpeg - 使用 FFMPEG 和 nvenc hevc 进行数学无损视频转换?

转载 作者:行者123 更新时间:2023-12-04 22:50:05 32 4
gpt4 key购买 nike

我采用 [0, 255] 范围内的线性梯度输入,其中下一个像素比前一个像素大 1 RGB值。
enter image description here
enter image description here
然后我把它转成无损视频,输入-rgba(pc) , 输出 - yuv444p(tv, progressive) :

ffmpeg -y -i %01d.png -c:v hevc_nvenc -pix_fmt yuv444p -tune lossless out.mov
回到图片,输入 - yuv444p(tv, progressive) , 输出 - rgb24(pc, gbr/unknown/unknown, progressive) :
ffmpeg -i "out.mov" "img/out-%03d.png"
结果并非无损,几乎每个像素都与原始像素相差 -2...+2 :
enter image description here
enter image description here
enter image description here
其他编码器也会发生同样的情况,例如: ffmpeg -y -i %01d.png -crf 0 out.mov .可能是 tv的范围有限造成的,如何设置为 full ? -dst_range 1 -color_range 2似乎没有工作。也许还有别的东西?

最佳答案

YCbCr 到 R'G'B' 和返回不是无损的,也不可能是。需要 10 位 YCbCr 来保留 8 位 R'G'B'。
好的,首先 rgba(hevc 中的 alpha)仅由 ffmpeg 中的 Apple 编码器支持。其次,应该使用 -vf format=gbrp (你可以省略 yuv444p 提及)。 ffmpeg -h encoder=hevc_nvenc 显示支持的像素格式(与 ffmpeg -h encoder=libx264rgb 相比)
支持的像素格式:yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 gbrp gbrp16le cuda d3d11
除了 rawvideo 之外,不推荐使用 pix_fmt 选项。使用像素格式。
而不是 -dst_range 1 -color_range 2
你需要 -vf scale=out_range=pc:out_color_matrix=bt709 -color_range 2 -colorspace bt709

关于ffmpeg - 使用 FFMPEG 和 nvenc hevc 进行数学无损视频转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70408379/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com