FFmpeg concat命令更改start_time(ts块连接)

时间:2017-09-27 12:35:10

标签: video ffmpeg hls transcoding

我使用ffmpeg命令连接ts块: ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.ts

例如视频由10个ts块组成,我们只连接两个最后一个块(第九个和第十个块)。我们流式传输由旧(1-8)ts块和新的联合ts块组成的视频。结果联合块的回放存在问题。经过调查,我们发现在联合ts块中,一些属性是不同的:

start_pts=127141
start_time=1.412678

虽然在原始(第九)ts块中它们是:

start_pts=2021483
start_time=21.213400

开始时间和start_pts已更改,我们假设播放问题与ts chunk中的此属性有关。

有没有办法为结果联合ts chunk保留旧值(start_pts和start_time)?

1 个答案:

答案 0 :(得分:0)

使用

ffmpeg -copyts -i "concat:in1.ts|in2.ts" -muxpreload 0 -muxdelay 0 -c copy joint.ts

您需要-copyts来保留输入时间戳,直到muxer阶段。并且两个多路复用器输出选项设置为0,以防止MPEG-TS多路复用器进一步修改TS。