为什么 FLAC Streaming over HTTP 采用 Ogg 封装而不是原生封装?

2024-01-15

当前所有 FLAC 流媒体实现(例如 Edcast 和 Icecast)似乎都在流媒体时使用 Ogg 作为 FLAC 的容器。

  1. 这是什么原因呢?
  2. 有什么缺点not使用 Ogg,并改为流式传输“本机”FLAC 流?

我已经做了一些通过 HTTP 传输 FLAC 的测试,它似乎在 VLC 中工作得很好。 FLAC 好像是框架可以独立站立 http://flac.sourceforge.net/format.html,使其能够抵御流损坏和/或丢帧。鉴于此,我不太明白为什么需要将 FLAC 包装在 Ogg 中。


The FLAC 到 Ogg 映射页面 http://flac.sourceforge.net/ogg_mapping.html对于为什么在许多情况下需要使用 Ogg 封装而不是流式传输本机 FLAC 有相当详尽的解释:

原始 FLAC 格式包括非常薄的运输系统...被称为“原生 FLAC”。 ...它非常轻,而且不支持更复杂的传输机制例如多个逻辑流,...

原生 FLAC 传输不是标准编解码器设计方式中的传输“层”,因为它无法与有效负载完全分离。 ...

This 当尝试将 FLAC 封装在其他真正的传输层中时会出现问题 ...

另一种选择是将本机 FLAC 帧视为 Ogg 数据包并接受传输冗余。事实证明,这并不是什么太大的惩罚; ……冗余度只有百分之零点几。

[已添加强调]

请参阅完整页面以获取更多信息,但结果是,虽然可用于流媒体,但本机 FLAC 不太适合更复杂的设置,而且 Ogg 封装的成本相当低。如果原生 FLAC 可以很好地满足您的特定需求,您可以继续使用它,但 Ogg 最终将为您提供更大的灵活性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 FLAC Streaming over HTTP 采用 Ogg 封装而不是原生封装? 的相关文章

  • 命令行流网络摄像头,带有来自 Ubuntu 服务器的 WebM 格式的音频

    我正在尝试从连接到无头 Ubuntu 服务器 运行 Maverick 10 10 的网络摄像头传输视频和音频 我希望能够以 WebM 格式 VP8 视频 OGG 进行流式传输 带宽有限 因此流必须低于 1Mbps 我尝试过使用 FFmpeg
  • AWS Lambda 处理来自 DynamoDB 的流

    我正在尝试创建一个消耗 dynamoDB 表中的流的 lambda 函数 但是我想知道处理在执行过程中可能因某些错误而未处理的数据的最佳实践是什么 例如 我的 lambda 失败并且丢失了部分流 这是重新处理丢失数据的最佳方法 这是为你处理
  • 对 DStream 进行类型参数化

    Can a DStream have type parameters 如果是 怎么办 当我尝试时lazy val qwe mStream mapWithState stateSpec on myDStream DStream A B 类参数
  • 将大数据从 WCF 服务发送到客户端的最佳方式是什么?

    我有一项返回大量数据的特定服务 WCF 中处理此问题的最佳实践和选项是什么 这些大数据在完成所有过滤后返回 因此无法再进行过滤 数据可以达到GB 我确实知道系统可以处理的数据量是有限的 但在上述场景中 您会推荐哪些选项 替代方案 使用流媒体
  • 在 JavaScript 中播放流音频

    我目前正在使用node lame对原始 PCM 输入流进行编码 我在 Node JS 中有以下代码 可以成功输出二进制 MP3 块 server on request req res gt encoded pipe res 我尝试在前端界面
  • 如何从 Google 云端硬盘视频获取redirector.googlevideo.com 链接

    我有一个谷歌驱动器视频文件 例如https drive google com file d FILE ID view https drive google com file d FILE ID view 并且我想获取其redirector
  • HTML5 将 png 缓冲区加载到画布中(用于流式传输)

    通过 websocket 我检索 PNG 格式的图像的二进制缓冲区 类似的东西 http blog nihilogic dk 2008 05 compression using canvas and png html 我想将此 PNG 缓冲
  • C# 中的 StreamReader 和缓冲区

    我对 StreamReader 的缓冲区使用有疑问 这里 http msdn microsoft com en us library system io streamreader aspx http msdn microsoft com e
  • 如何在没有任何服务器的情况下创建 P2P 网络聊天?

    有没有一种方法可以在没有任何服务器的情况下创建 P2P 网络聊天 可以 但是您必须决定见面地点 如果你的朋友把他的IP发给你 你就可以连接 那么你只需要告诉更多的人加入即可 一段时间后 你会变得越来越大 然后 如果网络上的某个链接发生故障
  • 如何通过 YouTube 直播 API 更改我的活动使用的流?

    所以我一直在寻找一种从 YouTube 获取 16 位流名称的方法 我终于通过这行代码找到了它 gt streamName returnedStream getCdn getIngestionInfo getStreamName 流名称只是
  • 使用 slick/scala 进行流式传输

    我正在研究 scala slick 流 并试图了解它是如何工作的 这是我的测试代码 val bigdata TableQuery BigData val x db stream bigdata result transactionally
  • 窗口后 Apache-beam 挂在 groupbykey 上 - 不触发

    TLDR 如何使用 python SDK 更正触发计数窗口 Problem 我正在尝试创建一个用于转换和索引维基百科转储的管道 目标是 从压缩文件中读取 只需一个进程并以流式传输方式 因为该文件不适合 RAM 并行处理每个元素 ParDo
  • 如何将网络音频流保存到文件(c++/java)

    是否有任何库或众所周知的方法来保存音频网络流 网络广播 mp3 流 以编程方式归档 您可以使用 libvlcVLC http www videolan org vlc 项目 这wiki http wiki videolan org Libv
  • 使用 ImageIO 发送图像流?

    我设置了一个 ServerSocket 和一个 Socket 因此 ServerSocket 使用 ImageIO write 发送图像流 并且 Socket 尝试读取它们并用它们更新 JFrame 所以我想知道 ImageIO 是否可以检
  • 使用 Servlet 启动 VLC HTTP Stream 时出现问题

    我正在为自己开发一个 VLC 项目 我的目标是创建一个 HTML 前端来启动流 我通过使用 Java Servlet 来完成此操作 概述 乌班图13 04 Java 7 21 冰茶 2 3 9 Eclipse JAVAEE IDE 雄猫7
  • 计算流数据的直方图 - 在线直方图计算

    我正在寻找一种算法来生成大量流数据的直方图 最大值和最小值事先未知 但标准差和平均值在特定范围内 我很欣赏你的想法 Cheers 我刚刚找到了一个解决方案 秒 从流式并行决策树算法构建在线直方图 论文的 2 2 该算法由 Hive 项目中的
  • Storm动态拓扑

    Storm 支持动态拓扑吗 我想要的功能是在 Storm 拓扑运行时根据用户要求动态更改拓扑 例如 当用户想知道流的前 10 个单词时 我使用前 10 个 Bolt 来处理它 当用户想知道其他内容时 我使用另一个 Bolt 来处理流并 拔掉
  • 如何使用 Angular/Ionic/JS 显示 Motion JPEG 二进制数据流?

    我正在为设备编写应用程序 此类设备将收到 POST 请求 并发回multipart x mixed replace二进制数据流 我必须在我的应用程序主页的一部分上显示此类流 我查了一下 这种情况的资源非常有限 到目前为止 我发现如果 Mot
  • RequestDispatcher.forward 到媒体文件?

    我最近有一个需要解决的问题 https stackoverflow com questions 19385223 how to transparently stream a file to the browser并找到了一个解决方案 但如果
  • Java中的媒体播放器库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在评估用于在 Java 中播放音频 视频的库 它不需要 100 Java Java 与本机库的绑定

随机推荐