ffmpeg在输出

时间:2017-04-27 14:04:51

标签: ffmpeg offset

我正在尝试使用从特定偏移量开始的时间码创建.ts文件。让我们说输入文件input.ts存在。在它上运行ffprobe说“start:8636.xxx”。现在,我想创建一个带有额外开始时间偏移的副本,使用:

ffmpeg -i input.ts -someoption output.ts

我知道操作时间的选项,比如 -copyts -ss -timecode

不起作用。是否有一个选项允许我为视频流添加额外的时间偏移?

编辑:

这是原始ts文件的ffprobe输出:

Duration: 00:06:03.52, start: 6204.163600, bitrate: 3880 kb/s
  Program 12103
    Metadata:
      service_name    : ?ProSieben
      service_provider: ?Unitymedia
    Stream #0:0[0x21f]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x220](ger): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0:2[0x222](ger): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 384 kb/s
  No Program
    Stream #0:3[0x224]: Subtitle: dvb_teletext
Unsupported codec with id 94215 for input stream 3

这是运行ffmpeg -i input.ts -copyts -output_ts_offset 2428.6 output.ts后新创建的文件的ffprobe输出:

Duration: 00:06:03.36, start: 8634.319544, bitrate: 4372 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101](ger): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 384 kb/s

我对流格式本身了解不多。但是,我可以看到,新创建的输出文件包含较少数量的流,并且某些细节已经更改,例如“tv,progessiv”而不是“tv,top first”。

除了有其他时间戳之外,我想要一份原件的精确副本。这可能吗?

2 个答案:

答案 0 :(得分:3)

使用

ffmpeg -i input.ts -copyts -output_ts_offset 5 output.ts

由于FFmpeg会默认添加1.4秒到开始时间,上面的参数应该减去1.4秒,所以3.6

或者您可以使用

ffmpeg -i input.ts -copyts -muxdelay 0 -muxpreload 0 -output_ts_offset 5 output.ts

应用5秒的偏移。

答案 1 :(得分:0)

我需要为output.ts文件设置自己提供的开始时间。我刚刚删除了coptyts选项。

ffmpeg -i input.ts -muxdelay 0 -muxpreload 0 -output_ts_offset 5 output.ts

已更新

但是使用以上命令,hls stream无法正常工作。所以我使用了以下命令。

ffmpeg -i input.ts -muxdelay 0 -c:v copy -c:a copy -muxpreload 0 -output_ts_offset 5 output.ts

不要将组合参数用于音频和视频编解码器-c:av copy。它没有按预期工作。因此,请改用-c:v copy -c:a copy