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行は空白ですが、libx264 を使用するには--enable-libx264& が必要です。--enable-gpl

これを修正する最も簡単な方法は静的ビルドをダウンロードする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ストリームコピーオーディオを再エンコードするのではなく、

以下も参照:

関連情報