美文网首页
基于 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