ffmpeg hls 主播放列表生成

标签 ffmpeg http-live-streaming

通过最近的 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

最佳答案

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

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

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

关于ffmpeg hls 主播放列表生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202908/

相关文章:

javascript - Videojs HLS Live 长时间播放内存问题

html - FFMPEG HLS 流式传输和动态转码到 HTML 播放器 - 转码时视频持续时间发生变化

java - FFMPEG 和 JNI - 将 AVFrame 数据传递给 Java 并返回

video - DE-10 FFMPEG 原始 YCbCr 4 :2:2 Frame to PNG or Video leads to bad result

ios - 直播应用 iOS

FFmpeg HLS 保存原始时间戳

KitKat 4.4.3 上的 Android MediaPlayer HLS 更改

nginx - FFmpeg -> JSMpeg Websocket 反复关闭

node.js - NodeJS管道与ffmpeg

video - FFMPEG 忽略 "-shortest"