Avcodec:生成流的OPUS头
Avcodec : generate OPUS header for a stream
我使用带avcodec的OPUS对声音进行编码,并使用我自己的协议进行流式传输。
到目前为止,它与MP2编解码器一起工作,但当我切换到OPUS时,我有这个问题:
[opus @ 1b06d040] Error parsing the packet header.
我想不像MP2,我需要为我的OPUS编码数据流生成一个头,但我不知道如何。
有人能告诉我怎么做吗?谢谢。此错误来自ff_opus_parse_packet()失败,它处理原始opus数据包头,规范称之为'TOC'(用于目录表)字节和可选的子帧长度。这意味着libavcodec无法找到它期望的数据包持续时间。
所以你的自定义协议可能会损坏数据,返回错误的数据长度,或者你没有正确地将opus数据包从你的帧层中分离出来。
如果你不想,你不需要发明你自己的协议。有两种既定的设计:RFC 7587中记录了用于交互式使用的Opus(如延迟问题的实时聊天)。对于HTTP流,用于记录、播放和其他类似应用程序的文件存储使用Ogg容器,这里有文档说明。在libavformat中有这两种方法的实现。如果您对细节感兴趣,请参阅rt便士.c、oggenc.c和oggparseopus.c。
相关文章:
- 复制 avcodec 参数
- Opus编码和解码没有错误,但值不同
- 解码 OPUS 音频流时的慢动作效果
- 无法在安卓上编译 Opus
- 如何在fedora中添加c 中的avcodec.h
- 如何使用avcodec从OpenCV::Mat类型的jpeg图像创建视频
- 如何迫使Avcodec使用不一致的框架数据平面
- 将 Opus 与 PortAudio 结合使用
- 如何打开AVCodec
- 未定义的参考,在Ubuntu上使用FFMpeg库(AvCodec),64位系统
- Joining Portaudio and Opus
- avcodec YUV to RGB
- 如何使用libopus获得格式良好的opus文件
- 如何在c++中保存PCM到Opus (Float*)
- avcodec质量设置
- x264/avcodec:从 NAL 单元推断帧序列号
- Avcodec:生成流的OPUS头