切换到窄版
检测IE内核浏览器

 找回密码
 点击文字激活账号
搜索
热搜: 活动 交友 discuz
扫描二维码关注官方公众号
查看: 13|回复: 0

利用ffmpeg生成m3u8

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:361
  • 打卡月天数:5
  • 打卡总奖励:149956
  • 最近打卡:2025-01-05 12:23:48
  • TA的每日心情
    擦汗
    2 小时前
  • 签到天数: 396 天

    连续签到: 11 天

    [LV.9]以坛为家II

    1083

    主题

    156

    回帖

    214748万

    积分

    管理员

    A1ZEYDVFewbz1

    积分
    2147483647
    威望
    2147483647 点
    金钱
    2147483647 cb
    贡献值
    2147483647 点
    违规
    0 次

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    QQ
    发表于 5 天前 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有账号?点击文字激活账号

    ×

    使用 FFmpeg 生成 .m3u8 文件(HLS 格式)的方法比较简单,基本上可以通过以下步骤来完成:

    基本命令

    假设你已经安装了 FFmpeg,并且有一个视频文件(如 input.mp4),你可以通过以下命令来生成 .m3u8 文件和分片的 .ts 文件:

    ffmpeg -i input.mp4 -preset fast -g 60 -sc_threshold 0 -f hls -hls_time 10 -hls_list_size 0 -hls_segment_filename "output_%03d.ts" output.m3u8

    参数说明:

    • -i input.mp4:输入的视频文件。
    • -preset fast:编码器预设,可以选择不同的编码速度(fastmediumslow)。fast 更快,但可能会牺牲一些压缩效率。
    • -g 60:指定每隔多少帧插入一个关键帧。通常,HLS 需要在每个分片的开始处有一个关键帧,常见的设置为视频帧率的两倍,或者根据需要调整。
    • -sc_threshold 0:这表示关闭场景切换检测。若不想自动切换,设为 0
    • -f hls:指定输出格式为 HLS。
    • -hls_time 10:每个分片的时长,单位是秒。这里是 10 秒一个分片。
    • -hls_list_size 0:表示 .m3u8 列表不限制包含的段数,通常设为 0 表示没有限制。
    • -hls_segment_filename "output_%03d.ts":分片文件的命名规则。%03d 会为每个文件生成一个递增的数字,例如 output_001.tsoutput_002.ts 等。
    • output.m3u8:生成的主 M3U8 文件的名称。

    示例命令解读:

    1. input.mp4:输入的视频文件。
    2. output_%03d.ts:分片文件名模板。
    3. output.m3u8:最终的 M3U8 播放列表文件。

    高级选项:

    如果你想生成多个不同的质量级别的 M3U8(例如用于自适应流),可以使用 FFmpeg 的 -map 参数和不同的编码参数生成多个输出流。例如:

    ffmpeg -i input.mp4 \
      -map 0:v:0 -map 0:a:0 -b:v:0 1000k -c:v:0 libx264 -preset fast -g 60 -sc_threshold 0 -f hls -hls_time 10 -hls_list_size 0 -hls_segment_filename "low_%03d.ts" low.m3u8 \
      -map 0:v:0 -map 0:a:0 -b:v:0 2000k -c:v:0 libx264 -preset fast -g 60 -sc_threshold 0 -f hls -hls_time 10 -hls_list_size 0 -hls_segment_filename "mid_%03d.ts" mid.m3u8 \
      -map 0:v:0 -map 0:a:0 -b:v:0 5000k -c:v:0 libx264 -preset fast -g 60 -sc_threshold 0 -f hls -hls_time 10 -hls_list_size 0 -hls_segment_filename "high_%03d.ts" high.m3u8

    这样你就会生成多个 .m3u8 文件,每个文件对应不同的质量等级(低、中、高),并且可以在播放时根据网络带宽自动选择最适合的流。

    总结:

    使用 FFmpeg 生成 .m3u8 文件的过程通常包括:

    1. 设置输入文件和视频编码参数。
    2. 设置输出文件格式为 HLS。
    3. 使用 -hls_time-hls_segment_filename 来控制分片大小和分片文件命名。
    4. 使用 .m3u8 文件作为主播放列表。

    如果你有特定需求,比如自适应流,或者调整分片大小、编码参数等,也可以根据需要修改命令。

    都是
    点评回复

    使用道具 举报

    本版积分规则

    更多主题

    QQ|站点统计|Archiver|手机版|小黑屋|73327424's BBS ( 京ICP备05008343号|京公网安备11010602022017号 )
    免责声明:
    本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

    Mail To:3574358495@qq.com

    GMT+8, 2025-1-5 14:44 , Processed in 0.201687 second(s), 38 queries .

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表