首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Avcodec :生成流的OPUS头部

Avcodec :生成流的OPUS头部
EN

Stack Overflow用户
提问于 2015-06-01 04:06:15
回答 1查看 703关注 0票数 1

我正在使用带有avcodec的OPUS来编码声音,并使用我自己的协议进行流式传输。

到目前为止,它与MP2编解码器一起工作,但当我切换到OPUS时,我遇到了这个问题:

代码语言:javascript
复制
[opus @ 1b06d040] Error parsing the packet header.     

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

有人能给我解释一下怎么做吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-10-01 02:49:04

这个错误来自ff_opus_parse_packet()失败,它处理原始的opus数据包头,规范称之为'TOC‘(对于目录)字节和可选的子帧长度。这意味着libavcodec找不到预期的数据包持续时间。

因此,您的自定义协议可能损坏了数据,返回了错误的数据长度,或者您没有正确地将opus数据包从成帧层中分离出来。

如果你不想,你不需要发明你自己的协议。有两个既定的设计:RFC 7587中记录了用于交互使用(如延迟很重要的实时聊天)的Opus over RTP。对于HTTP流,用于记录、回放的文件存储和其他使用Ogg容器的应用程序,文档here。这两种方法都有libavformat的实现。如果您对细节感兴趣,请参阅rtpenc.c、oggenc.c和oggparseopus.c。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30562131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档