gpt4 book ai didi

ffmpeg - 使用 ffmpeg 合并一个视频和图像

转载 作者:行者123 更新时间:2023-12-04 23:18:57 25 4
gpt4 key购买 nike

我想编译一个包含以下内容的 .mp4 文件:
10 秒显示 mp4 文件
4 秒显示 image1.jpg
...
4 秒显示图像{n}.jpg
我想在视频和图像之间淡入淡出。
多谢

最佳答案

我找到了解决方案
我在 C# 中的代码

   List<string> tempimg = new List<string>();



var c = (int)Math.Ceiling(item.Users.Count / 6.0);

for (int i = 1; i <= c; i++)
{
//DO ADD IMAGE INTO tempimg

}


string video = "5small.mp4";

string output = $"{Guid.NewGuid()}.mp4";


IMediaInfo mediaInfo = FFmpeg.GetMediaInfo(video).Result;
var videoDuration = (int)mediaInfo.VideoStreams.First().Duration.TotalSeconds - 2;


int count = tempimg.Count;

string cmd = $@" -i {video} " + Environment.NewLine;

for (var i = 1; i <= count; i++)
cmd += $"-loop 1 -t 5 -i {tempimg[i - 1]} " + Environment.NewLine;

cmd += "-i 1.mp3 " + Environment.NewLine;


cmd += $@"-f lavfi -t 0.1 -i anullsrc=channel_layout=stereo:sample_rate=44100
-filter_complex "" " + Environment.NewLine;

for (int i = 1; i <= count; i++)
{
cmd += $@"[{i}]format = yuva444p,fade = d = 1:t =in:alpha = 1,setpts = PTS - STARTPTS + {videoDuration + (i * 3)} / TB[f{i - 1}];" + Environment.NewLine;

}

cmd += "[0][f0]overlay[bg1];" + Environment.NewLine;
for (int i = 1; i < count - 1; i++)
{
cmd += $@"[bg{i}][f{i}]overlay[bg{i + 1}];" + Environment.NewLine;
}
cmd += $@"[bg{count - 1}][f{count - 1}]overlay,format = yuv420p[v]"" -map ""[v]"" -map {count + 1}:a -shortest -movflags +faststart { output}";

关于ffmpeg - 使用 ffmpeg 合并一个视频和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70905981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com