ffmpeg concat 视频和图像问题

标签 ffmpeg ffmpeg-php

我有一个190秒长的视频。
我想显示带有音频和水印的视频的一部分(从第 28 秒到第 154 秒)
然后视频淡出,然后在视频结束时显示 5 秒钟的图像。

一切正常,直到我添加了 concat 和 endpic.jpg

这是它编写的脚本,但它不起作用。这真的让我发疯。

ffmpeg -y -ss 28 -i input.mp4 -loop 1 -i watermark.png -loop 1 -t 5 -i endpic.jpg -f lavfi -t 5 -i anullsrc -filter_complex "[1]fade=in:st=3:d=1:alpha=1,fade=out:st=20:d=1:alpha=1[w]; [0][w]overlay=main_w-overlay_w-10:main_h-overlay_h-10[sonh];[sonh]fade=out:st=154:d=1[sonhh];[sonhh:v][sonhh:a][2:v][3:a]concat=n=2:v=1:a=1[v][a]" -t 155 -map "[v]" -map "[a]" output.mp4

最佳答案

利用

ffmpeg -y -ss 28 -to 154 -i input.mp4 -loop 1 -t 22 -i watermark.png -loop 1 -t 5 -i endpic.jpg -f lavfi -t 5 -i anullsrc -filter_complex "[1]fade=in:st=3:d=1:alpha=1,fade=out:st=20:d=1:alpha=1[w]; [0][w]overlay=main_w-overlay_w-10:main_h-overlay_h-10,fade=out:st=154:d=1[sonhh];[sonhh][0:a][2:v][3:a]concat=n=2:v=1:a=1[v][a]" -t 155 -map "[v]" -map "[a]" output.mp4

如果您不限制输入持续时间,ffmpeg 将一直输入到输入的 190 秒,并且由于 -t 155 ,输出永远不会到达输入的末尾和 endpic 的开头。

在过滤器图中分配的链接标签不代表原始输入,因此 [sonhh:v][sonhh:a]无效。输入音频保持 [0:a] .

输入 -to几个月前添加的,因此请确保您使用的是最新版本的 ffmpeg。

关于ffmpeg concat 视频和图像问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741201/

相关文章:

c# - 为什么编译器将 bool 转换为整数并返回 bool 而不是返回 bool 本身?

laravel - 我无法在我的 laravel 项目上安装 ffmpeg 二进制驱动程序

Windows 上的 Php-ffmpeg “Unknown encoder libfaac”

ffmpeg - ffmpeg 中的 h.263 amd MPEG-4 ASP 编码器

php - 如何安装 ffmpeg-php Mac OS X 豹

Laravel FFMPEG 视频转换无需等待队列

FFMPEG 未执行

OpenCV 无法读取 ffmpeg 视频

ffmpeg - 'Past duration X.XXX too large'是什么意思?