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
ファイルが完全にダウンロードされる前に再生を開始できるように追加します。