FFMPEG,批量转换与输入大小相同带水印的视频

问题描述 投票:0回答:1

我想为目录中的一些视频添加水印。我使用尺寸为 3840x2160 的 png 水印。视频上的水印应为全尺寸。因为我的视频有不同的分辨率,所以我使用这个批处理脚本

set /p add_watermark=Wasserzeichen Addieren? (Standard: ja/nein):
if /i "%add_watermark%" == "" set add_watermark=ja

if /i "%add_watermark%" == "ja" (
    for %%f in (%cd%\output\tmp\*.mp4) do (
        set "filename=%%~nf"
        ffmpeg -i "%%f" -i %cd%\watermark\watermark.png -filter_complex "[0:v][1:v]scale2ref=oh*mdar:ih[v0][v1];[v0][v1]overlay=main_w-overlay_w-0:0" -c:a copy -map 0 -y "%cd%\output\%%~nf.mp4"
    )
)

这对于 4k 视频效果很好,但如果我的输入是高清视频,它会将输出缩放到水印大小的 4k。

如果我尝试添加

-c:v copy
FFMPEG 发出错误

Streamcopy requested for output stream fed from a complex filtergraph. Filtering and streamcopy cannot be used together.

我的问题是,如何将输出设置为与带有缩放水印的输入视频相同的大小,而不需要分两步进行。

batch-file video ffmpeg
1个回答
0
投票

因为似乎没有其他想法如何在不重新编码的情况下将其归档,我做了一个批处理脚本,从视频文件中提取分辨率,并使用它来更改不同分辨率的 watermark.png 的链接。

例如:

watermark_1920x1080.png
watermark_2560x1440.png
watermark_3840x2160.png

等等。这只是一个不切实际的解决方法(但它有效)我让这个问题开放。

© www.soinside.com 2019 - 2024. All rights reserved.