我正在尝试使用mocker.OnCallFunc(ReadFile).Do(ReadFileMock).Return(true);
向mp4
文件添加视觉过滤器。
我尝试了很多过滤器,但是其中有4个过滤器可以正常工作。我在FFmpeg
中使用它们,但是我在Android application
上使用windows cmd
尝试了相同的命令行,结果是相同的。 FFmpeg
带有3个过滤器,许多玩家和.mp4
都无法播放。我仍然可以在Androids mediaplayer
和具有许多法典的播放器上播放“损坏”的文件,但是我需要它们完美地工作。
按预期运行的唯一过滤器是VLC
,命令是(已经尝试过Black and White
和-vf
):
-filter_complex
其他3个是-i origin.mp4 -filter_complex hue=s=0 blackWhite.mp4
,Sepia
和Vintage
Negative
由于我无法在此处上传视频文件,因此我添加了3个文件的链接:原始视频文件,黑白过滤文件(有效),老式文件(无效)。
答案 0 :(得分:1)
曲线和colorchannelmixer滤镜仅适用于RGB像素,因此如果需要,FFmpeg可以预先转换视频。
当使用典型的H.264编码器保存到MP4时,ffmpeg将转换为YUV颜色编码,但会选择最高保真度像素格式,对于RGB源,该格式为YUV 4:4:4。此格式与大多数播放器不兼容。解决方法是手动强制输出YUV 4:2:0。在输出文件名之前添加-pix_fmt yuv420p
。