在 FFmpeg 上复制视频质量

1 video avi ffmpeg video-codecs

我想使用 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
Run Code Online (Sandbox Code Playgroud)

llo*_*gan 5

您正在使用过滤器,并且过滤需要重新编码,因此您无法用于-vcodec copy复制视频。如果您想要“相同的质量”,那么您需要使用无损编码器:

ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
Run Code Online (Sandbox Code Playgroud)
  • 生成的文件可能会很大:这是无损输出所期望的。

  • 您的播放器或设备可能无法播放无损文件。

  • 如果您想要“视觉上无损”的输出(技术上并非无损但看起来几乎如此),请使用-crf 18代替-crf 0

  • 不需要电影源过滤器。只需在输入中添加覆盖图像,就像我的示例中所示的任何其他文件一样。

  • 由于您使用的是 PHP,我假设您将通过渐进式下载来呈现视频。添加-movflags +faststart以便在文件完全下载之前就可以开始播放。