ffmpeg setpts应用统一偏移量而无需重新编码

时间:2018-11-20 07:53:44

标签: video ffmpeg offset pts

我有一系列要从.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偏移,而无需重新编码整个内容?

1 个答案:

答案 0 :(得分:1)

这样做的名义方法是

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

如果您需要对n流应用不同的偏移量,那么您将需要生成n输出,每个输出具有1个映射流,且其唯一偏移量。将所有输出重新混合在一起,并添加-copyts