代码之家  ›  专栏  ›  技术社区  ›  vedeojunky

通过ffmpeg直播HLS,如何强制客户端从头开始播放?从第一段开始

  •  7
  • vedeojunky  · 技术社区  · 11 年前

    有没有一种方法,可能是通过ffmpeg选项或标志,强制客户端播放器在直播时始终从头开始播放列表,而不是实时中间流?

    假设用户在视频流开始后1分钟进入,而不是在1分钟开始观看,玩家将在视频开始时开始观看,因此0分钟。

    这是我的ffmpeg命令:

    ffmpeg -f "screen capture" -s 1280x720 -r 30 -i :0.0+nomouse -f alsa -ac 2 -i pulse -async 30 -vcodec libx264 -pix_fmt yuv420p -acodec libfdk_aac -ar 44100 -b:a 64k -threads 0 -s 640x360 -f hls -g 1 -hls_time 1 -hls_list_size 1 -hls_allow_cache 0 /hls/#{@stream_name}/index.m3u8
    

    谢谢

    1 回复  |  直到 11 年前
        1
  •  7
  •   aergistal    5 年前

    使用 -hls_list_size 0 以保持播放列表中的所有片段。使用大于0的值将导致播放列表使用 hls_list_size

    同样值得注意的是,使用 -hls_time 1 将大大增加播放列表文件的大小。Apple建议的值为6秒,因此应尝试将其增加到所需关键帧间隔的倍数。