我有两个视频对他们有非常重要的蓝色投射。我同时拍摄了一些剧照,我对这些画面的颜色感到满意,我想重新编码视频,将颜色调整为与剧照相似的东西。
我知道我可以从视频中创建大量的jpg图像,并在将它们重新组合成新视频之前对其进行颜色校正,或者我可以使用ffmpeg的颜色级别滤镜直接进行处理。我不知道的是如何将数字传递给过滤器。我假设我想做这样的事情:
ffmpeg -i video.mov -vf "colorlevels=rimin=##/255:gimin=##/255:bimin=#/255:rimax=###/255:gimax=###/255:bimax=###/255, eq=gamma=#.##" -y out.mov
如何获取用于代替### s的每个r,g和b min和max设置以及gamma的值?当然,假设这是正确的方法。
更新:也许在gimp或photoshop的论坛中会更好地提出这个问题。但我知道如何调整那些颜色。我需要知道的是我如何将这些变化转化为ffmpeg的期望。
答案 0 :(得分:3)
如果您熟悉使用RGB曲线,可以使用curves filter。您可以手动选择曲线值,但使用数值进行颜色校正可能具有挑战性。但是,过滤器接受来自Photoshop的ACV预设文件,因此您可以先在那里进行校正,保存曲线预设文件,然后在ffmpeg
中的曲线过滤器中使用它:
ffmpeg -i input -vf "curves=psfile=color.acv" -c:a copy output
您可以使用enable
选项更正某些场景:
-vf "curves=psfile=interview.acv:enable='between(t,10,3*60)',curves=psfile=b-roll.acv:enable='between(t,200,236)'"
获取在Photoshop中处理的屏幕截图:
ffmpeg -ss 120 -i input -frames:v 1 output.png
答案 1 :(得分:0)
我很确定我在错误的地方提出了错误的问题。双重打击。我不认为尝试纠正ffmpeg中的颜色是正确的方法,所以要求ffmpeg专家对此没有反应。我找到了更好的方法。
我使用ffmpeg来提取所有帧(我的短视频中有近5,000帧)。然后我用Photoshop录制动作,编辑其中一个图像的颜色。然后,我将该操作应用于目录中的所有文件(文件 - >脚本 - >图像处理器),为我提供色彩校正图像。最后,我将这组图像重新组合成一个视频(再次使用ffmpeg)。我正在研究如何正确地做到这一点,所以我得到一个干净的视频,但这是一个完全不同的问题,与这里不正确的问题。