iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >如何利用HLS创建一个Golang视频流服务器
  • 452
分享到

如何利用HLS创建一个Golang视频流服务器

2023-06-20 20:06:20 452人浏览 薄情痞子
摘要

这篇文章给大家介绍如何利用HLS创建一个golang视频流服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HLS 是 Http Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流

这篇文章给大家介绍如何利用HLS创建一个golang视频流服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

HLS 是 Http Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流媒体传输协议, 并于 2009 年. HLS 流媒体已经成为应用最广泛的实时视频协议。它是一种将流分解成基于文件小段的格式, 可以通过 HTTP 下载,HLS 可以通过标准的 HTTP 或代理服务器等,这和基于 UDP 的协议(例如 RTP)不同。

优点

  • 应用广泛

  • 首先,刚才已经提到过,HLS 是应用最惯犯的实时视频协议。虽然最初苹果是为了自己的生态设计的,例如 iOS,Safari 浏览器等,但是背靠苹果,有强大的生态和研发能力,现在它几乎在所有浏览器上实现了。虽然现在的主流浏览器都支持一个类似的标准,称为 MPEG DASH,但是由于苹果 Safari 浏览器和 ioS 设备不支持它,个人认为 HLS 是一个更好的选择。

  • 自适应比特率

  • HLS 另一个巨大的优势是,它允许客户端根据可用带宽,从各种质量流中选出合适的。HLS 分解成一个个大约 10 秒的文件小段,通过分解,客户端应用程序只需要提前缓冲 10 秒。为用户节约了大量潜在带宽。

缺点

  • 糟糕的延迟

  • 虽然 HLS 设计出来是为了高效的处理多质量的流,但它并不是为了快速传输视频设计的。实际上,HLS 在流中引入流相当长的延迟,一般 20 秒左右,甚至更久。

  • 说到这里,你可能想问为什么?HLS 需要三个片段在队列中才允许回放,片段被视频中的关键帧分割。用 HLS 创建超低延迟流的唯一方法就是每 250 毫秒出现一个关键帧的视频进行编码,HLS 播放列表窗口将是四项长度,增加正在发生的 HTTP 调用频率,并给服务器增加额外的压力。

  • 未发布

  • HLS 是一个仅供用户使用的协议。不像 WEBRTC 有从浏览器发布的规范,HLS 仅支持播放流,如果你想发布一个设备的实时视频流,你只需要寻找其他的 SDK ,国外的例如 Red5 Pro(场景较为单一,巨贵), 来创建使用 RTP 的发布应用程序,然后通过 HLS 中继这些流,让人们在浏览器中查看。

  • 国内有几个较为成熟的音视频 SDK,例如声网等平台,提供很多场景的音视频解决方案。

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

首先准备一个 mp3 文件。然后安装 FFmpeg,在 Mac 上安装 FFmpeg,如果速度很慢可以尝试切换镜像。

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

到这一步你已经完成了文件格式转换,接下来进入 coding 阶段。

项目结构

如何利用HLS创建一个Golang视频流服务器

代码如下

 package main  import (     "fmt"    "log"    "net/http" ) func main() {    // 设置文件目录  const songsDir = "song"    const port = 8888  http.Handle("/", http.FileServer(http.Dir(songsDir)))    log.Printf("Serving %s on HTTP port: %v\n", songsDir, port)  log.Fatal(http.ListenAndServe(fmt.Sprintf(":%v", port), nil)) }

运行代码

Go run main.go

关于如何利用HLS创建一个Golang视频流服务器就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何利用HLS创建一个Golang视频流服务器

本文链接: https://www.lsjlt.com/news/299930.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用HLS创建一个Golang视频流服务器
    这篇文章给大家介绍如何利用HLS创建一个Golang视频流服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HLS 是 HTTP Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流...
    99+
    2023-06-20
  • 基于HLS创建Golang视频流服务器的优缺点
    HLS 是 HTTP Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流媒体传输协议, 并于 2009 年. HLS 流媒体已经成为应用最广泛的实...
    99+
    2024-04-02
  • 如何利用VUE创建视频流应用
    目录前言插件配置srccontrolsautoplay视频播放控制总结前言 前面在文章《创建 Node.js 视频流应用之后端》展示了构建一个用于在线流媒体视频传输后端服务。本文将继...
    99+
    2024-04-02
  • 利用nginx搭建RTMP视频点播、直播、HLS服务器
    目录nginx的服务器的搭建点播视频服务器的配置直播视频服务器的配置配置OBS如图:实时回看视频服务器的配置开发环境 Ubuntu 14.04 servernginx-1.8.1ng...
    99+
    2024-04-02
  • Python如何创建一个自定义视频播放器
    这篇文章主要讲解了“Python如何创建一个自定义视频播放器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何创建一个自定义视频播放器”吧!1、安装vlc的64位版本。2、安装p...
    99+
    2023-07-05
  • 好用的视频流服务器怎么搭建
    搭建一个好用的视频流服务器需要以下步骤:1. 选择合适的服务器软件:常用的视频流服务器软件有 Wowza Streaming Eng...
    99+
    2023-06-08
    视频流服务器 服务器
  • 如何使用HTML和CSS创建一个响应式视频展示布局
    如何使用HTML和CSS创建一个响应式视频展示布局随着移动设备使用的普及,响应式设计已经成为现代网页设计中必不可少的一部分。在本文中,我们将学习如何使用HTML和CSS创建一个响应式视频展示布局。这个布局将适应不同大小的屏幕,并在任何设备上...
    99+
    2023-10-25
    响应式 CSS html
  • Linux如何搭建一个golang服务器
    Golang是一门由Google开发的编程语言,它的特点是简洁、高效和可靠性强。最近几年,Golang在Web开发中越来越受欢迎,因为它拥有非常好的性能和并发操作能力。在本文中,我们将介绍如何在Linux服务器上搭建一个Golang服务器,...
    99+
    2023-05-14
    linux go语言 Golang
  • 如何利用Java AWT 创建一个简易计算器
    目录一、关于AWT二、逻辑部分1.对于数字按钮2.对于算术按钮3.对于等号按钮4.对于清除按钮5.对于退格按钮6.特殊插件功能7.==例如==:三、GIF演示四、附完整代码摘要:手把...
    99+
    2024-04-02
  • 利用MyBatis如何创建一个逆向工程
    利用MyBatis如何创建一个逆向工程?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.什么是逆向工程mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程...
    99+
    2023-05-31
    mybatis 逆向工程
  • 如何利用MyBatis创建一个存储过程
    如何利用MyBatis创建一个存储过程?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一. 在Derby中创建存储过程在Eclipse中创建一个新的普通Java项...
    99+
    2023-05-31
    mybatis
  • 如何利用Python创建一个游戏窗口
    本篇内容主要讲解“如何利用Python创建一个游戏窗口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用Python创建一个游戏窗口”吧!前言 想要利用Python创建一个游戏窗口...
    99+
    2023-07-02
  • 如何利用PHP开发一个简单的在线视频播放器
    随着互联网的快速发展,视频的使用已经成为人们日常生活中不可或缺的一部分。因此,开发一个简单的在线视频播放器成为了许多网站开发者的需求。在本文中,我们将介绍如何利用PHP语言来开发一个简单的在线视频播放器,让您能够在自己的网站上实现视频播放的...
    99+
    2023-10-21
    PHP编程指南 在线视频播放器开发 简单视频播放器
  • 如何使用golang创建WebSocket服务器
    如何使用golang创建WebSocket服务器WebSocket是一种在客户端和服务器之间实现双向通信的协议。它允许我们通过一个持久的连接在客户端和服务器之间传输数据。在这篇文章中,我将向你介绍如何使用golang创建一个简单的WebSo...
    99+
    2023-12-17
    websocket Golang (Go) 服务器 (Server)
  • 如何使用HTML和CSS创建一个响应式视频播放页面布局
    在当今互联网时代,视频已经成为我们日常生活中不可或缺的一部分。越来越多的网站和应用都提供了视频播放功能。而为了提供更好的用户体验,开发人员需要创建一个响应式的视频播放页面布局,以适应不同设备和屏幕尺寸。本文将详细介绍如何使用HTML和CSS...
    99+
    2023-10-21
    响应式设计 CSS样式 HTML布局
  • 使用Java如何实现创建一个thrift服务器
    使用Java如何实现创建一个thrift服务器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结...
    99+
    2023-05-31
    java thrift 服务器
  • Nodejs+express模块如何创建一个服务器
    这篇文章给大家分享的是有关Nodejs+express模块如何创建一个服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用express模块创建一个服务器新建一个文件夹,文件夹名字非中文,名字也不要和模块名字...
    99+
    2023-06-14
  • 如何用Golang搭建一个高性能web服务器
    一个高性能web服务器随着互联网越来越成为人们生活中不可或缺的一部分,web应用程序的需求越来越大。由于Golang具有高并发性能和简单易用的语言特性,成为了一种越来越流行的web服务器开发语言。那么,如何使用Golang来搭建一个高性能w...
    99+
    2023-05-14
  • 如何使用Maven创建一个Jersey REST 服务
    如何使用Maven创建一个Jersey REST 服务?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。创建项目使用 archetypeGroupId 为 org.glassfis...
    99+
    2023-05-31
    jersey rest restful
  • 如何使用美国服务器搭建视频网站
    要在美国服务器上搭建视频网站,首先需要选择一个适合的服务器提供商,并购买一个虚拟专用服务器(VPS)或专用服务器。然后,您可以按照以...
    99+
    2024-04-03
    美国服务器 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作