【问题标题】:FFmpeg concat command changes start_time (ts chunks concatenation)FFmpeg concat 命令更改 start_time(ts 块连接)
【发布时间】:2018-03-08 22:49:16
【问题描述】:

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

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

start_pts=127141
start_time=1.412678

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

start_pts=2021483
start_time=21.213400

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

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

【问题讨论】:

  • 这是一个关于软件使用的问题。这类问题不在 SO 上。尝试在superuser.com 上提问

标签: video ffmpeg http-live-streaming transcoding


【解决方案1】:

使用

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

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

【讨论】:

  • 请在答案中添加更多上下文,而不仅仅是“使用 [我的代码]”
  • filter_complex 中 concat 的情况如何?那里的文案怎么用?
猜你喜欢
  • 2017-11-22
  • 2018-10-10
  • 2018-10-23
  • 2017-04-05
  • 2017-07-04
  • 2018-08-23
  • 2018-01-28
  • 2015-11-22
  • 2017-09-20
相关资源
最近更新 更多