美文网首页
基于 HLS 创建 Golang 视频流服务器

基于 HLS 创建 Golang 视频流服务器

作者: Y了个J | 来源:发表于2022-03-28 23:14 被阅读0次

使用 FFmpeg,可以很轻易的将 mp3 文件转换为 HLS 格式,它由多个文件组成,其中一个包含元数据(.m3u8),元数据告诉客户端从哪里获取每个数据文件,以及数据文件中包含什么内容。数据文件拓展名是.ts,通常包含 10 秒的音频。

brew install ffmpeg

进入 mp3 所在文件夹,执行以下指令。

ffmpeg -i 江南.mp3 -c:a libmp3lame -b:a 128k -map 0:0 -f segment -segment_time 10 -segment_list outputlist.m3u8 -segment_format mpegts output%03d.ts

执行完毕后应该会看到一些结果,大致内容如下.

1 output000.ts  output008.ts  output016.ts  output024.ts
2 output001.ts  output009.ts  output017.ts  output025.ts
3 output002.ts  output010.ts  output018.ts  output026.ts
4 output003.ts  output011.ts  output019.ts  outputlist.m3u8
5 output004.ts  output012.ts  output020.ts  江南.mp3
6 output005.ts  output013.ts  output021.ts
7 output006.ts  output014.ts  output022.ts
8 output007.ts  output015.ts  output023.ts
9

Coding

1 package main
2 
3 import (  
4   "fmt" 
5   "log" 
6   "net/http"
7 )
8
9 func main() {  
10  // 设置文件目录
11  const songsDir = "song"  
12  const port = 8888
13
14  http.Handle("/", http.FileServer(http.Dir(songsDir)))  
15  log.Printf("Serving %s on HTTP port: %v\n", songsDir, port)
16
17  log.Fatal(http.ListenAndServe(fmt.Sprintf(":%v", port), nil))
18 }
19

打开浏览器地址
http://127.0.0.1:8888/outputlist.m3u8 就可以听到音乐了

相关文章

网友评论

      本文标题:基于 HLS 创建 Golang 视频流服务器

      本文链接:https://www.haomeiwen.com/subject/zcwmjrtx.html