FFmpeg 胶片颗粒

标签 ffmpeg

如果可能,我想使用 FFMPEG 添加胶片颗粒效果。

采用干净的计算机渲染场景和过滤器,以获得坚韧的黑白 16 毫米胶片外观。例如文员 https://www.youtube.com/watch?v=Mlfn5n-E2WE

根据Simulating TV noise应该可以使用下面的过滤器

-filter_complex "geq=random(1)*255:128:128;aevalsrc=-2+random(0)"

但是当我将它添加到我的 ffmpeg 命令时
ffmpeg.exe -framerate 30 -i XYZ%05d.PNG -vf format=yuv420p -dst_range 1 -color_range 2 -c:v libxvid -vtag xvid -q:v 1 -y OUTPUT.AVI

所以命令是现在
ffmpeg.exe -framerate 30 -i XYZ%05d.PNG -vf format=yuv420p -dst_range 1 -color_range 2 -c:v libxvid -vtag xvid -q:v 1 -y -filter_complex "geq=random(1)*255:128:128;aevalsrc=-2+random(0)" OUTPUT.AVI

我收到消息

Filtergraph 'format=yuv420p' 是通过 -vf/-af/-filter 选项为输出流 0:0 指定的,它是从复杂的 filtergraph 馈送的。
-vf/-af/-filter 和 -filter_complex 不能一起用于同一个流。

如何更改我的 ffmpeg 命令行以使颗粒过滤器起作用?另外,我也可以添加一点模糊吗?旧的 16mm 看起来更像是模糊而不是颗粒状。

感谢您的任何提示。

最佳答案

过滤器 "geq=random(1)*255:128:128;aevalsrc=-2+random(0)"用于白噪声

对于“坚韧的黑白 16 毫米胶片外观”,您需要类似的东西,

-vf hue=s=0,boxblur=lr=1.2,noise=c0s=7:allf=t
format您指定的是一个过滤器,并且应用于输入的所有过滤器都应在单个链中指定,因此应该是,
-vf hue=s=0,boxblur=lr=1.2,noise=c0s=7:allf=t,format=yuv420p

请参阅 https://ffmpeg.org/ffmpeg-filters.html 上的过滤器文档有关您可以调整的描述和参数列表。

关于FFmpeg 胶片颗粒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48821220/

相关文章:

python - ffmpeg-python 错误,无法加载 mp4 编码器

java - 如何在 android 中构建和使用 ffmpeg

c# - ffmpeg 波形音频和 avi 视频格式合并

video - ffmpeg 将现有的 filter_complex 与 upscaleto 结合起来,例如720p

FFmpeg 在使用 -threads 时使用的线程比我预期的要多

video - ffmpeg 分段因浮点异常而失败

ffmpeg 到 ffserver 有效,但无法查看

ffmpeg - 如何让Gstreamer只返回关键帧?

ffmpeg : How can I send a H. 265 编码流到 wowza?

python - VideoCapture Opencv 中的 icvOpenAVI_XINE() 错误