【问题标题】:ffmpeg setpts apply uniform offset without re-encodingffmpeg setpts 应用统一偏移量而不重新编码
【发布时间】:2019-04-22 15:06:50
【问题描述】:

我将一系列视频从 .mov 转换为 .ts,然后为其创建 HLS 播放列表。我能够找出任何给定视频的音频和视频流的结束点,并在转换序列中的后续视频时应用该结束(累积)偏移量。例如:

ffmpeg -y -i 1.mov \
  -filter:a "asetpts=PTS-STARTPTS+367534" \
  -filter:v "setpts=PTS-STARTPTS+363000" \
  -codec:v libx264 -crf 18 -preset veryfast \
  -acodec aac -muxdelay 0 1.ts

这可行,但需要相当数量的 CPU。我希望能够理想地复制视频/音频流。有什么方法可以为 .ts 文件的音频/视频流应用统一的 pts 偏移量,而无需重新编码整个内容?

【问题讨论】:

    标签: video ffmpeg offset pts


    【解决方案1】:

    执行此操作的名义方法是

    ffmpeg -y -i 1.mov -c copy -output_ts_offset 4.54 -muxdelay 0 -muxpreload 0 1.ts
    

    如果您需要对n 流应用不同的偏移量,那么您需要生成n 输出,每个输出具有1 个映射流及其唯一偏移量。 remux 将所有输出合二为一,并添加了-copyts

    【讨论】:

    • 这看起来很明显,因为你已经把它布置成这样了(facepalm)。会尝试回复你!对于输出,我绝对可以弄清楚如何将其创建到我创建 2 个单独的 .ts 文件(一个仅包含视频,一个仅包含音频)的位置,但不知道我如何能够在单个命令中执行此操作复杂的过滤器?如果没有,请不要担心 - 绝对可以通过反复试验来解决!
    • ffmpeg -y -i 1.mov -map 0:v -c copy -output_ts_offset 4.54 -muxdelay 0 -muxpreload 0 1v.ts -map 0:a -c copy -output_ts_offset 4.41 -muxdelay 0 -muxpreload 0 1a.ts
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    相关资源
    最近更新 更多