Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video ffmpeg设置应用统一的偏移量,无需重新编码_Video_Ffmpeg_Offset_Pts - Fatal编程技术网

Video ffmpeg设置应用统一的偏移量,无需重新编码

Video ffmpeg设置应用统一的偏移量,无需重新编码,video,ffmpeg,offset,pts,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 \ -acod

我有一系列视频正在从
.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偏移量?

实现这一点的基本方法是

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

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

这看起来很明显,现在您已经将其布置成这样(facepalm)。我会尽力回复你的!对于输出,我可以明确地找到如何使其达到我创建两个单独的.ts文件的位置(一个仅包含视频,一个仅包含音频),但知道如何在一个带有复杂过滤器的单个命令中实现这一点吗?不用担心,如果没有-可以肯定地通过尝试和错误找出它
ffmpeg-y-i 1.mov-map 0:v-c拷贝-输出\u ts_偏移量4.54-muxdelay 0-muxpreload 0 1v.ts-map 0:a-c拷贝-输出\u ts_偏移量4.41-muxdelay 0-muxpreload 0 1a.ts