ffmpeg hls主播放列表生成

时间:2018-01-11 08:47:19

标签: ffmpeg hls

使用最近的ffmpeg主分支(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

1 个答案:

答案 0 :(得分:2)

原因是因为如果要复制流(-c复制),则FFMpeg无法计算出比特率。 HLS规范在主播放列表中需要一个带宽属性,因此,如果没有该信息,FFMpeg将不会写入主播放列表。

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

请参阅:https://trac.ffmpeg.org/ticket/7403