嘿伙计们我已经尝试了这项工作一段时间了,我似乎无法找到如何在连接后同步音频/视频,我已经搜索并测试过了一些解决方案,但无法使其发挥作用。
这就是我现在所做的,一切正常,但我必须做错事。
首先,我将视频分成我想要的视频
System.Diagnostics.Process.Start(ffmpegPath, "-i " +
video.Path + " -ss " + StartTime + " -t " + Duration + " " + video.Output);
"切割/分裂"我想要的视频就像我想要的那样,我尝试将视频连接在一起(使用-safe 0来使用绝对路径,否则它不起作用):
System.Diagnostics.Process.Start(ffmpegPath,
"-f concat -safe 0 -i " + txtFile + " C:\\Downloads\\Build\\" + rdn.Next(0,1000) + ".mp4");
之后,我发现音频/视频有时不同步,所以我搜索并找到this
所以我决定在拆分后填充所有视频:
System.Diagnostics.Process.Start(ffmpegPath,
"-i " + video.Output + " -af apad -c:v libx264 -shortest -avoid_negative_ts make_zero -fflags +genpts -report " + padding);
然后重新构建它,但它最终具有相同的音频不同步。
这是我第一次使用mp4s和FFMPEG,我确定我错过了什么。
答案 0 :(得分:0)
我感觉很糟糕,因为我似乎找到了答案(不是100%肯定,将需要做一些更多测试,但我测试了几次,它似乎工作到目前为止)在发布这个帖子后,我发现一个非常隐蔽的帖子......我甚至不知道我是怎么发现它的,但我做了,我很高兴我做到了。
他的回答是here
我担心相同的帧大小,音频和视频编解码器要连接 没问题,但我忘记了帧速率。
第一个样本视频(在我的问题中提到)帧率为12, 第二视频帧率为25;这就是进行同步的原因 问题
现在,我已将帧速率25设置为这两个视频(-r 25)并且它是 像魅力一样工作:)
下面的是完整的转换代码:
ffmpeg.exe -i“f:\ 1.avi”-r 25 -af apad -vf scale = 1280:720 -crf 15.0 -vcodec libx264 -acodec aac -ar 48000 -b:192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags + genpts 01.mp4希望它能在不久的将来帮助像我这样的人。
最好的问候