我有一个视频,我想与多个mp3文件合并。合并之前,应修剪Mp3文件。音频文件应在其他时间替换输入视频中的音频-应该播放视频中的原始音频。
我通过命令执行此操作:
ffmpeg -i inputVideo.ts \
-i audio1.mp3 \
-i audio2.mp3 \
-filter_complex "[0]atrim=0:6,asetpts=PTS-STARTPTS[part0];[1]atrim=17:31,asetpts=PTS-STARTPTS[part1];[0]atrim=20:39,asetpts=PTS-STARTPTS[part2];[2]atrim=108:144,asetpts=PTS-STARTPTS[part3];[2]atrim=153:172,asetpts=PTS-STARTPTS[part4];[part0][part1][part2][part3][part4]concat=n=5:v=0:a=1[aout]" \
-map 0:v \
-map [aout] \
-c:v copy \
-c:a aac \
-async 1000 \
out.ts
问题:
产生的视频(out.ts)看起来很破损-可以播放,但是如果我尝试搜索(向前/向后)-可能会冻结帧并播放声音。
如果我将out.ts转换为mp4,则最终持续时间将比原始时间长(out.ts-96秒,out.mp4-112秒)。
我正在使用以下命令进行转换:
ffmpeg -i out.ts -c copy -bsf:a aac_adtstoasc out.mp4
另一个问题: 持续时间字符串中的“开始”是什么意思,例如:
.ts文件的持续时间为01:36,开始时间为1.45:
ffprobe out.ts
Duration: 00:01:36.18, start: 1.458667, bitrate: 1051 kb/s
.mp4文件-01:52并从0开始
ffprobe out.mp4
Duration: 00:01:52.07, start: 0.000000, bitrate: 825 kb/s
谢谢!