将任何视频转码为最大的 mp4。 800 宽度或最大。 800高度+水印

Transcode any video to mp4 with max. 800 width or max. 800 height + watermark

我需要一个适用于每种视频(带音频)格式/类型的 ffmpeg 命令,以将其编码为 h264 mp4。输出的最大宽度为 800 像素,最大高度为 800 像素。也有必要在右下角添加水印......有没有办法用一个命令行完成所有这些事情?即使是 WMV、MOV、3gp 以及正在使用的任何文件类型?

使用

ffmpeg -i video -i watermark
       -filter_complex "[0]scale=min(800,iw):min(800,ih):force_original_aspect_ratio=decrease,
                           scale=2*trunc(iw/2):2*trunc(ih/2)[v];
                        [v][1]overlay=x=W-w-10:y=H-h-10" output.mp4

第一个缩放过滤器使视频适合 800x800 canvas 但按比例。 2nd scale 过滤器确保视频具有均匀的尺寸 - 标准 H264 播放兼容性所必需的。

图像叠加层叠加在右下角,从两个边缘偏移 10 个像素。