Concat在视频

时间:2017-12-06 23:41:17

标签: windows ffmpeg

我正在创建一个像这样的切割清单

file 't1.MP4'
inpoint 1.45067
outpoint 3.18133
file 't2.MP4'
inpoint 3.45067
outpoint 6.18133
...

我就像这样使用它

ffmpeg -y -f concat -safe 0 -i list.txt -c:v libx264 -c:a aac -af aresample=async=1 -pix_fmt yuv420p output.mp4

输出几乎总是在开始时包含静止图像,有时是视频时间的一半,有时更少,显示第一帧然后最终视频开始。我注意到,inpointoutpoint分开的越少,开始时的静止图像就越长。也许它也与inpointoutpoint的数量有关。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

concat demuxer输出的数据包数量超出了范围中指定的数据包,因为视频需要更早的帧才能解码。

尝试

ffmpeg -y -f concat -safe 0 -copyts -segment_time_metadata 1 -i list.txt -vf select=concatdec_select,setpts=N/FRAME_RATE/TB,format=yuv420p -c:v libx264 -af aselect=concatdec_select,asetpts=N/SR/TB -c:a aac output.mp4

我假设所有文件都有相同属性的视频和音频,即帧率,分辨率,音频采样率,频道......等等。