目标是从mkv生成与HLS兼容的MPEGTS片段,复制带有-c:v copy
的视频,但对音频进行转码。
但是,由于在输入搜索(-ss
(ffmpeg上寻求关键帧(对我来说,这似乎是最接近上的一个关键帧(,因此在大多数片段之前,我从关键帧开始,获得了N秒没有音频的视频。
可能的解决方案是:
-
定义段偏移量/持续时间,使其实际匹配关键帧;问题是我不知道如何快速提取关键帧及其偏移量的列表
-
强制 ffmpeg 以某种方式寻找适当的时间,并在那里生成一个关键帧来开始段;编辑:我认为这是不可能的,因为生成关键帧会更改之后的所有帧,这是不可能的
-c:v copy
请不要建议现有的HLS解决方案,除非它们在源代码中演示了该问题的解决方案。 必须使用FFMPEG来按需生成每个段。
对于解决方案 1。 ,您可以使用ffprobe -show_frames
来获取帧。关键帧信息是输出的一部分。选项 -print_format json
易于解析。