【问题标题】:ffmpeg hls master playlist generationffmpeg hls 主播放列表生成
【发布时间】:2018-01-11 08:47:19
【问题描述】:

通过最近的 ffmpeg master 分支(commit 7fcbeb),我们可以使用

生成主播放列表

-master_pl_name

选项。但我无法生成具有不同配置文件的主播放列表。尝试使用

-var_stream_map

我们如何使用这些选项来创建具有不同配置文件的主播放列表?

我正在尝试使用以下 ffmpeg 命令:

# ./ffmpeg  -y -loglevel error -err_detect careful -analyzeduration 8000000 -probesize 4000000 -rtbufsize 300000 -flush_packets 0 -fflags +genpts+discardcorrupt -f mpegts -i test.ts -c copy -var_stream_map "v:0,agroup:aud_high a:0,agroup:aud_high" -ignore_unknown -flags global_header -f hls -master_pl_name master.m3u8 -master_pl_publish_rate 32 -hls_time 4 -hls_list_size 40 -hls_flags delete_segments /webserver/video0_%v.m3u8

【问题讨论】:

  • 你看过examples for var_stream_map吗?
  • 已检查,但我找不到不同的 hls 配置文件级别。
  • 您对hls 配置文件级别 的理解是什么?
  • 现在,我明白你的要求了。将尝试在此处发布我的结果。
  • ./ffmpeg -y -fflags +genpts+discardcorrupt -f mpegts -i test.ts -i test1.ts -i test2.ts -map 0:v -map 0:a -map 1:v -map 1:a -map 2:v -map 2:a -var_stream_map "v:0,a:0,agroup:aud_low v:1,a:1,agroup:aud_medium v:2,a:2,agroup:aud_high" -ignore_unknown -flags global_header -f hls -master_pl_name master.m3u8 -master_pl_publish_rate 32 -hls_time 4 -hls_list_size 40 -hls_flags delete_segments /webserver/video0_%v.m3u8 这对我来说很好用。输入具有不同的分辨率。谢谢@aergistal

标签: ffmpeg http-live-streaming


【解决方案1】:

原因是如果您复制流(-c 复制),FFMpeg 无法计算出比特率。 HLS 规范要求主播放列表中有带宽属性,因此 FFMpeg 不会在没有该信息的情况下编写主播放列表。

要解决这个问题,只需使用 -b:v 和 -b:a 设置比特率。流仍会从源复制,但 FFMpeg 将使用提供的数字并编写主播放列表。

见:https://trac.ffmpeg.org/ticket/7403

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2022-08-18
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2018-06-29
    • 2015-05-08
    相关资源
    最近更新 更多