从 FLAC 创建 HLS 音频流

问题描述

我有一个包含一首歌曲的 FLAC 文件。我想创建一个 HLS 流,其中质量最好的流是 FLAC(匹配输入,因此只是通过但分块),然后是 AAC-LC 320、160 和 96Kbps。

我该怎么做?

解决方法

以下命令是一个很好的起点:

./ffmpeg -i my.flac -map 0:a -map 0:a -map 0:a -map 0:a -c:a:0 flac -c:a:1 aac -c:a:2 aac -c:a:3 aac -b:a:1 320k -b:a:2 160k -b:a:3 96k -f hls -hls_playlist_type vod -master_pl_name master.m3u8 -var_stream_map "a:0 a:1 a:2 a:3" stream_%v.m3u8

一些解释:

  • -map 0:a 添加音频输入 4 次(0:a 表示来自第一个输入文件 (0) 的音频流)
  • -c:a:0 为每个流设置编解码器(0 = flac;1+2+3 为 aac)
  • -b:a:0 设置每个流的比特率(aac 320/160/96kbits 为 1-3)
  • -f hls 因为你想要 HLS
  • -hls_playlist_type vod 保留 HLS 流的所有片段
  • -master_pl_name master.m3u8 主播放列表的名称(包含所有 4 个流)
  • -var_stream_map "a:0 a:1 a:2 a:3" 将所有 4 个音频流添加到输出
  • stream_%v.m3u8 每个流的 HLS 播放列表的名称(带有用于流变体的占位符 %v

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...