我的相机最近出了点问题,现在我的传感器芯片有四个坏点,分布在整个屏幕。(是的,它就是实际上审查员,我已经检查了四遍。这不是屏幕的问题。) 所以现在我的所有镜头上都有一些坏点。
如果重要的话,我的视频格式如下
Resolution: 1920x1090
Frame rate: 29.970030
Codec: H264 - MPEG-4 AVC (part 10) (avc1)
Decoded format: Planar 4:2:0 YUV full scale
是否有任何已知的方法可以去除它们?
(我正在考虑某种程序,我手动将坏点的位置传递给它,然后用周围像素的平均值替换它们。ffmpeg
也许是某种过滤器?)
答案1
您可以使用delogo 过滤器使用ffmpeg
或ffplay
。您无需重新编码,只需在播放时进行过滤即可:
示例:播放
ffplay -vf \
"delogo=x=10:y=120:w=1:h=1, \
delogo=x=862:y=438:w=1:h=1, \
delogo=x=56:y=207:w=1:h=1, \
delogo=x=1259:y=943:w=1:h=1" \
input.mp4
示例:编码
ffmpeg -i input.mp4 -vf \
"delogo=x=10:y=120:w=1:h=1, \
delogo=x=862:y=438:w=1:h=1, \
delogo=x=56:y=207:w=1:h=1, \
delogo=x=1259:y=943:w=1:h=1" \
-c:a copy cleaned-output.mp4
结果可能会有所不同,而且我没有调查为什么 delogo 在我的例子中导致了轻微的褪色外观。
您可以从视频中提取图像(
ffmpeg -i input -ss 5 -vframes 1 output.png
)并将其导入 GIMP 以查找像素 x,y 位置。
答案2
乍一看,我认为您可以使用avidemux
“delogo”过滤器。尽管像素相距很远,但您需要多次运行,并且可能有更好的选择。