FFmpeg视频过滤器损坏了mp4文件

时间:2018-09-12 13:04:02

标签: video filter ffmpeg mp4

我正在尝试使用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 SepiaVintage

Negative

由于我无法在此处上传视频文件,因此我添加了3个文件的链接:原始视频文件,黑白过滤文件(有效),老式文件(无效)。

Dropbox - video files link

1 个答案:

答案 0 :(得分:1)

曲线和colorchannelmixer滤镜仅适用于RGB像素,因此如果需要,FFmpeg可以预先转换视频。

当使用典型的H.264编码器保存到MP4时,ffmpeg将转换为YUV颜色编码,但会选择最高保真度像素格式,对于RGB源,该格式为YUV 4:4:4。此格式与大多数播放器不兼容。解决方法是手动强制输出YUV 4:2:0。在输出文件名之前添加-pix_fmt yuv420p