为什么 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 封装而不是原生封装? 的相关文章

  • 用 nom 5.0 解析数字

    我正在尝试使用 Nom 5 0 解析一个大文件 数十 GB 流 解析器的一部分尝试解析数字 use nom IResult use nom character streaming char digit1 use nom character
  • Android 上的 RTSP 客户端实现

    我看到很多与此相关的问题 尽管如此 我认为我的答案还没有 我想在 Android 上使用已编码的 RTSP 客户端与 MediaCodec 一起使用 以便捕获 H264 中的 RTSP 流 然后解码并显示它 我使用了 VideoView 和
  • 使用 VLC 将文件流式传输为 RTSP

    我需要创建一个可以将 mp3 文件流式传输到另一个设备的服务器 我打算使用 VLC 我查看了 VLC 文档 并对执行此操作的前进方向感到困惑 我找到了这个链接 http www videolan org doc streaming howt
  • 使用 WCF 流上传文件,从流中进行微小读取

    我已经使用WCF的流实现了文件上传 一切都按预期进行 但是我遇到了一个问题 我分配 4kb 缓冲区来从传入流中读取数据 但 WCF 仅读取 255 字节 这是我的上传功能 public UploadResponse UploadFile F
  • HTML5 将 png 缓冲区加载到画布中(用于流式传输)

    通过 websocket 我检索 PNG 格式的图像的二进制缓冲区 类似的东西 http blog nihilogic dk 2008 05 compression using canvas and png html 我想将此 PNG 缓冲
  • 如何在没有任何服务器的情况下创建 P2P 网络聊天?

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

    如何使用 Scala Stream 读取大型 CSV 文件 gt 1 Gb 你有代码示例吗 或者您会使用不同的方式来读取大型 CSV 文件而不先将其加载到内存中吗 只需使用Source fromFile getLines正如你已经说过的 这
  • 比特率 JWplayer

    我无法让 jwplayer 以不同的比特率工作 对于每个视频 我都会创建具有不同后缀且比特率较低的新输出文件 例如 输出1 高比特率 test original mp4 输出 2 中等比特率 test medium mp4 输出 2 低比特
  • 如何将网络音频流保存到文件(c++/java)

    是否有任何库或众所周知的方法来保存音频网络流 网络广播 mp3 流 以编程方式归档 您可以使用 libvlcVLC http www videolan org vlc 项目 这wiki http wiki videolan org Libv
  • 如何以最小的内存占用直接将大内容流式传输为 PDF?

    我正在尝试以最小的内存占用 例如每个客户端 线程 20 MB 将格式化数据的大内容 例如 200 MB 流式传输为 PDF PDF结构是用Adobe postscript编写的 直接用PDF postscript格式编写比较复杂 我一直在使
  • 使用 FFMPEG 的 HLS FLAC 流

    我使用以下命令从 FLAC 文件创建了一个 HLS 流 并输出 FLAC ffmpeg i 10 brass in pocket flac map 0 a c a 0 flac f hls hls playlist type vod mas
  • 通过nodejs服务器+socket.io从mp3文件同步流式传输音乐

    我的服务器上有一个 mp3 文件 我希望所有访问该网址的客户都能同步收听该音乐 That is 假设该文件播放 6 分钟 我在上午 10 00 开始播放这首歌 上午 10 03 发出的请求应从歌曲的第 3 分钟开始收听 我所有的客户都应该同
  • 我应该将 FLV 文件放在哪里才能在本地 Red5 服务器上进行流式传输?

    我安装了最新的 Red5 服务器 但我不确定将 flv 文件放在哪里来进行流式传输 没有像我在网上找到的一些教程那样的 streams 或 ofla 目录 我应该将 flv 文件放在哪里来进行流式传输 Red5 附带了一些演示 但默认情况下
  • MySQL使用BLOB的二进制存储VS OS文件系统:大文件、大数量、大问题

    我正在运行的版本 基本上 最新的一切 PHP 5 3 1MySQL 5 1 41阿帕奇 2 2 14操作系统 CentOS 最新 情况是这样的 我有数千个非常重要的文档 从客户合同到语音签名 客户对合同的授权录音 文件类型包括但不限于jpg
  • 流媒体视频文件?

    我需要流式传输 flv 文件 流媒体应该看起来像直播 我应该有一种方法可以更改目标文件 抱歉我的英语不好 如果 流式传输 的意思是 显示 Flash 视频剪辑 则 flv streaming 并不是真正的流式传输 而是正常的文件传输 即使文
  • 如何使用 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并找到了一个解决方案 但如果
  • 在 Android 中通过蓝牙接收音频

    我想创建一个能够接收音频流的 Android 应用程序 我想过使用 A2DP 配置文件 但似乎 Android 不支持 A2DP 接收器 看起来有很多人正在寻找这个问题的解决方案 但是接收普通的比特流 然后在应用程序中将数据转换为音频呢 我
  • Azure 和直播

    我正在尝试使用 Azure 制作实时视频流 但我真的不知道应该先尝试什么 首先 有一个网站 上面有最新版本的 Flowplayer 现在我需要知道如何将网络摄像头的视频流传输到 Azure 我需要什么样的软件 我正在尝试使用 Express
  • 如何指定从 Delphi TStream 读取的组件的所有者?

    我正在从流中读取组件 并且希望能够指定 Owner 属性 var TComponent comp stream Seek 0 soFromBeginning comp stream ReadComponent nil 谁拥有 comp 我该

随机推荐