以编程方式创建和更新 HLS 播放列表

Posted

技术标签:

【中文标题】以编程方式创建和更新 HLS 播放列表【英文标题】:Create and update HLS playlist programmatically 【发布时间】:2018-02-26 10:31:41 【问题描述】:

我有一个 C++ 应用程序,它从我的默认输入设备录制音频,以 AAC 格式对其进行编码并写入 .aac 文件。我想使用 HTTP Live Streaming 来直播这个 AAC 文件。根据this question,我必须创建一个FFMPEG 脚本来将我的音频文件拆分为几个.ts 文件。

# bitrate, width, and height, you may want to change this
BR=512k
WIDTH=432
HEIGHT=240
input=$1

# strip off the file extension
output=$(echo $input | sed 's/\..*//' )

# works for most videos
ffmpeg -y -i $input -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s $WIDTHx$HEIGHT -vcodec libx264 -b $BR -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 7 -trellis 0 -refs 0 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate $BR -bufsize $BR -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 30 -qmax 51 -qdiff 4 -level 30 -aspect $WIDTH:$HEIGHT -g 30 -async 2 $output-iphone.ts

(在我的情况下略有不同,因为我只处理音频)

我可以在 C++ 中以编程方式执行此操作吗?如果可以,我是否必须使用第三方库或 macOS 是否提供本机函数来执行此操作?

【问题讨论】:

【参考方案1】:

不,您不必拆分它(您可以将字节偏移量放入 m3u8 中),不,您不需要给我们一个 ts。 HLS 支持 .aac 文件。是的,您可以在没有库的情况下以编程方式制作 m3u8。 C++ 或任何其他编程语言都可以。

【讨论】:

以上是关于以编程方式创建和更新 HLS 播放列表的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建 ios 天才播放列表

AVPlayer 播放受保护的 HLS,令牌过期如何更新?

当您拥有结构名称和字段值列表时,是不是可以以编程方式创建结构对象并填充字段

多个ListViews在android中以编程方式创建

以编程方式删除 Spotify 播放列表

创建具有甘特图的 Sharepoint 列表 - 以编程方式