【问题标题】:FFMpeg hls_time accuracyFFMpeg hls_time 精度
【发布时间】:2015-09-10 10:47:19
【问题描述】:

我在 ios 应用程序中使用 ffmpeg 库将 mp4 视频转换为 HLS。我想将 ts 文件的持续时间保持在 10 秒。所以我放了下面的代码。

av_opt_set_int(formatContext->priv_data, "hls_time", 10, AV_OPT_SEARCH_CHILDREN);

但结果并不完全是 10 秒,持续时间在 10 秒左右,比如 11 秒、12 秒、9 秒等。有没有什么方法可以从 ffmpeg 中获取准确的 10 秒片段?

【问题讨论】:

    标签: ios video time ffmpeg http-live-streaming


    【解决方案1】:

    每个 HLS 数据包都必须以一个关键帧开始,而这些关键帧的位置在您的源中似乎是可变的。

    FFmpeg 会尽最大努力将文件切割成 10s 的数据包,但如果某个时间点 2 个关键帧之间有 12s 的间隔,则该片段将是 12s。

    除了重新编码源代码并设置恒定的关键帧间隔之外,您无能为力。

    【讨论】:

    • 谢谢伊利。你知道设置关键帧的C代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    相关资源
    最近更新 更多