FFmpegでビデオ品質をコピーする

FFmpegでビデオ品質をコピーする

FFmpeg を使用して透かしを追加したいのですが、ビデオの品質は同じにしたいです。どうすればいいですか?

使用してみました-vcodec copy -acodec copyが、透かしがありませんでした:

ffmpeg -y -i treino.mp4 -vf "movie=logo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -vcodec copy -acodec copy video2.mp4

答え1

フィルターを使用しており、フィルタリングには再エンコードが必要なので-vcodec copyストリームコピービデオ。「同じ品質」が必要な場合は、ロスレス エンコーダを使用する必要があります。

ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
  • 結果のファイルは非常に大きくなる可能性があります。これはロスレス出力では予想されることです。

  • プレーヤーまたはデバイスではロスレス ファイルを再生できない可能性があります。

  • 技術的にはロスレスではないが、ほぼロスレスであるように見える「視覚的にロスレスな」出力が必要な場合は、-crf 18の代わりにを使用します-crf 0

  • 必要はありません映画ソース フィルター。私の例に示すように、他のファイルと同様に、入力にオーバーレイ イメージを追加するだけです。

  • PHP を使用しているので、ビデオをプログレッシブ ダウンロードで表示するものと想定します。-movflags +faststartファイルが完全にダウンロードされる前に再生を開始できるように追加します。

関連情報