在执行 -c:v 复制时使用 ffmpeg 拆分精确的 .ts 片段



目标是从mkv生成与HLS兼容的MPEGTS片段,复制带有-c:v copy的视频,但对音频进行转码。

但是,由于在输入搜索(-ss(ffmpeg上寻求关键帧(对我来说,这似乎是最接近上的一个关键帧(,因此在大多数片段之前,我从关键帧开始,获得了N秒没有音频的视频

可能的解决方案是:

  1. 定义段偏移量/持续时间,使其实际匹配关键帧;问题是我不知道如何快速提取关键帧及其偏移量的列表

  2. 强制 ffmpeg 以某种方式寻找适当的时间,并在那里生成一个关键帧来开始段;编辑:我认为这是不可能的,因为生成关键帧会更改之后的所有帧,这是不可能的-c:v copy

请不要建议现有的HLS解决方案,除非它们在源代码中演示了该问题的解决方案。 必须使用FFMPEG来按需生成每个段。

对于解决方案 1。 ,您可以使用ffprobe -show_frames来获取帧。关键帧信息是输出的一部分。选项 -print_format json 易于解析。

相关内容

  • 没有找到相关文章

最新更新