gpt4 book ai didi

c++ - Avcodec : generate OPUS header for a stream

转载 作者:行者123 更新时间:2023-12-02 10:25:35 28 4
gpt4 key购买 nike

我正在使用带有 avcodec 的 OPUS 对声音进行编码并使用我自己的协议(protocol)对其进行流式传输。

到目前为止,它适用于 MP2 编解码器,但是当我切换到 OPUS 时,我遇到了这个问题:

[opus @ 1b06d040] Error parsing the packet header.     

我想与 MP2 不同,我需要为我的 OPUS 编码数据流生成一个 header ,但我不知道如何。

有人可以解释我该怎么做吗?谢谢。

最佳答案

此错误来自 ff_opus_parse_packet() 失败,它处理原始 opus 数据包 header ,规范称为“TOC”(用于目录)字节和可选子帧长度。这意味着 libavcodec 无法在预期的位置找到数据包持续时间。
因此,您的自定义协议(protocol)可能正在破坏数据,返回错误的数据长度,或者您没有正确地将 opus 数据包从框架层中拆分出来。
如果你不想,你不需要发明自己的协议(protocol)。有两种既定的设计: 用于交互使用的 Opus over RTP(如延迟很重要的实时聊天)记录在 RFC 7587 中。 .对于 HTTP 流,用于记录、播放的文件存储和其他使用 Ogg 容器的应用程序,记录在 here .在 libavformat 中有这两种方法的实现。如果您对细节感到好奇,请参阅 rtpenc.c、oggenc.c 和 oggparseopus.c。

关于c++ - Avcodec : generate OPUS header for a stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562131/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com