我正在尝试使用mp4
为FFmpeg
文件添加可视过滤器。
我尝试了很多过滤器,但其中有4个过滤了,其中只有1个可以完美地工作。我在Android application
中使用它们,但是我使用windows cmd
在FFmpeg
上尝试了相同的命令行,结果是一样的。有3个过滤器,.mp4
无法被许多玩家和Androids mediaplayer
玩。我仍然可以在VLC
上播放“腐败”的文件和有很多编码的玩家,但我需要它们才能完美地工作。
唯一按预期工作的过滤器是Black and White
,命令是(已尝试过-vf
和-filter_complex
):
-i origin.mp4 -filter_complex hue=s=0 blackWhite.mp4
其他3个是Sepia
,Vintage
和Negative
"colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131", "curves=vintage", "curves=negative"
由于我无法在此处上传视频文件,因此我添加了3个文件的链接,原始视频文件,黑/白过滤文件(有效),复古文件(无法使用)。
曲线和colorchannelmixer滤镜仅适用于RGB像素,因此FFmpeg会根据需要预先转换视频。
使用典型的H.264编码器保存到MP4时,ffmpeg将转换为YUV颜色编码,但选择最高保真像素格式,对于RGB源,其为YUV 4:4:4。此格式与大多数玩家不兼容。解决方案是手动强制YUV 4:2:0输出。在输出文件名之前添加-pix_fmt yuv420p
。