在 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以便它可以在文件完全下载之前开始播放。

相关内容