我使用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)?
答案 0 :(得分:0)
使用
ffmpeg -copyts -i "concat:in1.ts|in2.ts" -muxpreload 0 -muxdelay 0 -c copy joint.ts
您需要-copyts
来保留输入时间戳,直到muxer阶段。并且两个多路复用器输出选项设置为0,以防止MPEG-TS多路复用器进一步修改TS。