【发布时间】:2023-03-17 09:58:01
【问题描述】:
我正在使用以下命令将给定图像叠加到视频上:
ffmpeg -y \
-i "Input.mp4" \
-loop 1 -t 17 -i "overlay.png" \
-filter_complex \
"[1:v]fade=in:st=3:d=1:alpha=1, \
fade=out:st=10:d=1:alpha=1 \
[ovr1]; \
[0][ovr1] overlay=(W-w)/2:H-h-10" \
-codec:a copy \
"Output.mp4"
该命令有效,但它会产生一个宽度与输入 overlay.png 不同的叠加层,但它具有相同的高度。
这里是overlay.png:
下面是 FFmpeg 叠加后它在视频中的显示方式:
overlay.png 的大小是274x79,但在视频中它变成了大约324x79。
我检查了这个建议使用scale的问题(ffmpeg overlay size),我将命令更改为以下内容:
ffmpeg -y \
-i "Input.mp4" \
-loop 1 -t 17 -i "overlay.png" \
-filter_complex \
"[1:v]scale=274:79 \
fade=in:st=3:d=1:alpha=1, \
fade=out:st=10:d=1:alpha=1 \
[ovr1]; \
[0][ovr1] overlay=(W-w)/2:H-h-10" \
-codec:a copy \
"Output.mp4"
但结果仍然相同(更大的宽度),我能够确认scale 确实有效,方法是将其编辑为scale=400:400 以检查其效果。
这是什么原因造成的?在将overlay.png 叠加到视频上后如何保持其原始大小?
编辑:
ffmpeg -i Input.mp4 显示如下:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Input.mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2018-12-30T12:38:54.000000Z
encoder : HandBrake 1.1.0 2018040700
Duration: 00:00:17.45, start: 0.000000, bitrate: 1179 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 720x480 [SAR 32:27 DAR 16:9], 1174 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2018-12-30T12:38:54.000000Z
handler_name : VideoHandler
【问题讨论】:
-
您的视频似乎变形了
ffmpeg -i input.mp4说什么? -
@Gyan 我已经编辑了我的问题以添加
ffmpeg -i Input.mp4输出。
标签: ffmpeg