不支持 libx264

不支持 libx264

请帮助我解决我的问题,因为我在使用 ffmpeg 时遇到了麻烦,我使用以下命令:

ffmpeg -i whiskey.mkv -threads 0 -c:v libx264 -crf 28 -preset veryslow -vf "movie=logo.png[wm];[in][wm]overlay=0:0,subtitles=whiskey.srt[out]" whiskey2.mp4

但出现错误

root@:~/ffmpeg# ffmpeg -i whiskey.mkv -threads 0 -c:v libx264 -crf 2
8 -preset veryslow -vf "movie=logo.png[wm];[in][wm]overlay=0:0,subtitles=whiskey
.srt[out]" whiskey2.mp4
ffmpeg version N-80522-ge0faad8 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration:
  libavutil      55. 24.100 / 55. 24.100
  libavcodec     57. 46.100 / 57. 46.100
  libavformat    57. 38.102 / 57. 38.102
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 46.102 /  6. 46.102
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
Unrecognized option 'crf'.
Error splitting the argument list: Option not found

如果您有任何对水印 + 字幕进行无损编码的命令,请告诉我。

答案1

不支持 libx264

您正在尝试使用编码器 libx264,但您的ffmpeg配置未支持此编码器。您的configure行是空白的,但需要--enable-libx264&--enable-gpl才能使用 libx264。

解决这个问题最简单的方法是下载静态构建ffmpeg:它将支持libx264。

无“质量损失”

过滤需要重新编码,但您尝试使用会产生有损输出的选项。

如果您确实不想损失质量,则必须进行无损输出,但大多数用户并不希望这样做,因为文件会很大,而且并非所有播放器/设备都支持它。对于使用 libx264 的无损输出,请使用-crf 0

您实际上可能想要的是具有损耗但质量足够好以至于您无法判断其在技术上是否无损。对于此用途-crf 18

您的命令有多余的、无用的选项。清理后的示例如下:

ffmpeg -i whiskey.mkv -i logo.png -filter_complex \
"[0:v][1:v]overlay,subtitles=whiskey.srt" \
-c:v libx264 -crf 18 -preset veryslow output.mp4

如果输入音频与 MP4 容器兼容,则添加-c:a copy流复制音频而不是重新编码它。

另请参阅:

相关内容