当前位置:首页>学习资料>Opus封装格式学习资料及libopus1.6.1开源库介绍

Opus封装格式学习资料及libopus1.6.1开源库介绍

  • 2026-05-04 15:04:06
Opus封装格式学习资料及libopus1.6.1开源库介绍

文章翻译自linopus的github开源库README以及自己实践补充,github仓库链接:https://github.com/xiph/opus

Opus 音频编解码器

Opus 是用于互联网交互式语音和音频传输的编解码器。

Opus 可覆盖广泛的交互式音频应用场景,包括IP 语音、视频会议、游戏语音聊天,甚至远程现场音乐表演。它能适配从低比特率窄带语音到超高质量立体声音乐的全范围音频需求。

当搭配合适的容器格式使用时,Opus 也适用于非实时的存储文件类应用,如音乐分发、游戏原声、便携式音乐播放器、点唱机等——这些场景过去常使用 MP3、AAC 或 Vorbis 等高延迟格式。

Opus 由 IETF RFC 6716 规范定义:https://tools.ietf.org/html/rfc6716

Opus 格式及本实现均遵循 COPYING 文件中规定的免版权费专利与版权许可

本软件包实现了一个用于编码和解码原始 Opus 码流的共享库。根据 RFC 7587 规范,原始 Opus 码流应通过 RTP 传输:https://tools.ietf.org/html/rfc7587

该软件包还包含多个测试工具,用于验证库的正常运行。这些工具读写的码流不可用于 Opus 文件分发——它们包含额外调试数据,且不支持 seek(定位播放)功能。

存储在文件中的 Opus 音频,应使用Ogg 封装格式,相关规范说明见:https://tools.ietf.org/html/rfc7845

另有 opus-tools 软件包,可用于编码和解码 Ogg 封装的 Opus 文件,并包含多项实用功能。opus-tools 可在以下地址获取:https://gitlab.xiph.org/xiph/opus-tools.git或 Opus 官方网站:https://opus-codec.org/

深度学习与 Opus

实时通信中,高丢包率网络始终是一大挑战。尽管 Opus 原始实现已提供优秀的丢包隐藏机制,但研发团队仍在持续优化,以提升复杂网络环境下的音频质量。

在 Opus 1.5 版本中,我们新增了基于深度学习的冗余编码器:通过在每个数据包的填充数据中嵌入 1 秒的恢复数据,增强丢包网络中的音频表现。用于编码/解码恢复数据的底层算法称为深度冗余(DRED)算法。借助数据包的填充数据传输,Opus 1.5 与旧版 Opus 完全向后兼容。如需了解 DRED 细节,请查看 "dnn" 子目录下的 README 文件。

DRED 由 AWS(亚马逊云服务)最初赞助的团队开发,该团队开源了相关实现,并在 IETF 启动了标准化流程:https://datatracker.ietf.org/doc/draft-ietf-mlcodec-opus-extension/Opus 1.5 不会改变 Opus 的许可协议或知识产权归属。

编译 libopus

从发布源码包编译,仅需执行以下步骤:

% ./configure% make

从 Git 仓库编译,则需按以下步骤操作:

0) 搭建开发环境

  • • Ubuntu/Debian 系列 Linux
sudo apt-get install git autoconf automake libtool gcc make
  • • Fedora/Redhat 系列 Linux
sudo dnf install git autoconf automake libtool gcc make
  • • 旧版 Redhat/Centos Linux
sudo yum install git autoconf automake libtool gcc make
  • • Apple macOS安装 Xcode 和 brew,然后在终端执行:
% brew install autoconf automake libtool

1) 克隆代码仓库

% git clone https://gitlab.xiph.org/xiph/opus.gitcd opus

2) 编译源码

% ./autogen.sh% ./configure% make
  • • x86 架构下,建议使用 -march= 选项启用 AVX2 指令集,以优化性能。

3) 安装编解码库(可选)

sudo make install

编译完成后,根目录下会生成 opus_demo 可执行文件

opus_demo 用法

opus_demo [-e] <应用类型> <采样率 (Hz)> <声道数 (1/2)> <比特率 (bps)> [选项] <输入文件> <输出文件>opus_demo -d <采样率 (Hz)> <声道数 (1/2)> [选项] <输入文件> <输出文件>
  • • 应用类型(mode):voip | audio | restricted-lowdelay
  • • 选项说明:
    • • -e:仅运行编码器(输出码流)
    • • -d:仅运行解码器(读取码流作为输入)
    • • -cbr:启用恒定比特率(默认:可变比特率)
    • • -cvbr:启用约束可变比特率(默认:无约束)
    • • -bandwidth <NB|MB|WB|SWB|FB>:音频带宽(从窄带到全带;默认:采样率对应带宽)
    • • -framesize <2.5|5|10|20|40|60>:帧长(单位:ms;默认:20)
    • • -max_payload <字节数>:最大负载大小(默认:1024 字节)
    • • -complexity <复杂度>:复杂度,范围 0(最低)~10(最高);默认:10
    • • -inbandfec:启用 SILK 带内 FEC(前向纠错)
    • • -forcemono:强制单声道编码(即使输入为立体声)
    • • -dtx:启用 SILK DTX(不连续传输)
    • • -loss <百分比>:模拟数据包丢包率(0-100;默认:0)

输入/输出文件可以是小端有符号 16 位 PCM 文件,或采用 opus_demo 专用帧格式的 Opus 码流文件。

测试

本软件包包含自动化单元测试和系统测试套件。首次在新平台编译后,建议务必运行测试,以确保软件包正常工作。

运行集成测试

% make check

另有部分标准测试向量因体积原因未包含在本软件包中,可从以下地址获取:https://opus-codec.org/docs/opus_testvectors-rfc8251.tar.gz

测试后:

root@truedei-code:~/project/small-media-server/libs/opus-1.5.2# make checkmake  check-recursivemake[1]: Entering directory '/root/project/small-media-server/libs/opus-1.5.2'make[2]: Entering directory '/root/project/small-media-server/libs/opus-1.5.2'make[3]: Entering directory '/root/project/small-media-server/libs/opus-1.5.2/doc'make[3]: Nothing to be done for 'all'.make[3]: Leaving directory '/root/project/small-media-server/libs/opus-1.5.2/doc'make  check-TESTSmake[3]: Entering directory '/root/project/small-media-server/libs/opus-1.5.2'make[4]: Entering directory '/root/project/small-media-server/libs/opus-1.5.2'PASS: celt/tests/test_unit_cwrs32PASS: celt/tests/test_unit_dftPASS: celt/tests/test_unit_entropyPASS: celt/tests/test_unit_laplacePASS: celt/tests/test_unit_mathopsPASS: celt/tests/test_unit_mdctPASS: celt/tests/test_unit_rotationPASS: celt/tests/test_unit_typesPASS: silk/tests/test_unit_LPC_inv_pred_gainPASS: tests/test_opus_apiPASS: tests/test_opus_decodePASS: tests/test_opus_encodePASS: tests/test_opus_extensionsPASS: tests/test_opus_paddingPASS: tests/test_opus_projection============================================================================Testsuite summary for opus unknown============================================================================TOTAL: 15PASS:  15SKIP:  0XFAIL: 0FAIL:  0XPASS: 0ERROR: 0============================================================================make[4]: Leaving directory '/root/project/small-media-server/libs/opus-1.5.2'make[3]: Leaving directory '/root/project/small-media-server/libs/opus-1.5.2'make[2]: Leaving directory '/root/project/small-media-server/libs/opus-1.5.2'make[1]: Leaving directory '/root/project/small-media-server/libs/opus-1.5.2'root@truedei-code:~/project/small-media-server/libs/opus-1.5.2# 

libopus的测试很有意思,可以自己跑某个感兴趣的看:

root@truedei-code:~/project/small-media-server/libs/opus-1.5.2# ./tests/test_opus_api Testing the libopus unknown API deterministically  Decoder basic API tests  ---------------------------------------------------    opus_decoder_get_size(0)=0 ................... OK.    opus_decoder_get_size(1)=18260 ............... OK.    opus_decoder_get_size(2)=27028 ............... OK.    opus_decoder_get_size(3)=0 ................... OK.    opus_decoder_create() ........................ OK.    opus_decoder_init() .......................... OK.    OPUS_GET_FINAL_RANGE ......................... OK.    OPUS_UNIMPLEMENTED ........................... OK.    OPUS_GET_BANDWIDTH ........................... OK.    OPUS_GET_SAMPLE_RATE ......................... OK.    OPUS_GET_PITCH ............................... OK.    OPUS_GET_LAST_PACKET_DURATION ................ OK.    OPUS_SET_GAIN ................................ OK.    OPUS_GET_GAIN ................................ OK.    OPUS_RESET_STATE ............................. OK.    opus_{packet,decoder}_get_nb_samples() ....... OK.    opus_packet_get_nb_frames() .................. OK.    opus_packet_get_bandwidth() .................. OK.    opus_packet_get_samples_per_frame() .......... OK.    opus_decode() ................................ OK.    opus_decode_float() .......................... OK.                   All decoder interface tests passed                             (1219433 API invocations)  Multistream decoder basic API tests  ---------------------------------------------------    opus_multistream_decoder_get_size(-1,-1)=0 ... OK.    opus_multistream_decoder_get_size(-1, 0)=0 ... OK.    opus_multistream_decoder_get_size(-1, 1)=0 ... OK.    opus_multistream_decoder_get_size(-1, 2)=0 ... OK.    opus_multistream_decoder_get_size(-1, 3)=0 ... OK.    opus_multistream_decoder_get_size( 0,-1)=0 ... OK.    opus_multistream_decoder_get_size( 0, 0)=0 ... OK.    opus_multistream_decoder_get_size( 0, 1)=0 ... OK.    opus_multistream_decoder_get_size( 0, 2)=0 ... OK.    opus_multistream_decoder_get_size( 0, 3)=0 ... OK.    opus_multistream_decoder_get_size( 1,-1)=0 ... OK.    opus_multistream_decoder_get_size( 1, 0)=18536 OK.    opus_multistream_decoder_get_size( 1, 1)=27304 OK.    opus_multistream_decoder_get_size( 1, 2)=0 ... OK.    opus_multistream_decoder_get_size( 1, 3)=0 ... OK.    opus_multistream_decoder_get_size( 2,-1)=0 ... OK.    opus_multistream_decoder_get_size( 2, 0)=36800 OK.    opus_multistream_decoder_get_size( 2, 1)=45568 OK.    opus_multistream_decoder_get_size( 2, 2)=54336 OK.    opus_multistream_decoder_get_size( 2, 3)=0 ... OK.    opus_multistream_decoder_get_size( 3,-1)=0 ... OK.    opus_multistream_decoder_get_size( 3, 0)=55064 OK.    opus_multistream_decoder_get_size( 3, 1)=63832 OK.    opus_multistream_decoder_get_size( 3, 2)=72600 OK.    opus_multistream_decoder_get_size( 3, 3)=81368 OK.    opus_multistream_decoder_create() ............ OK.    opus_multistream_decoder_init() .............. OK.    OPUS_GET_FINAL_RANGE ......................... OK.    OPUS_MULTISTREAM_GET_DECODER_STATE ........... OK.    OPUS_SET_GAIN ................................ OK.    OPUS_GET_GAIN ................................ OK.    OPUS_GET_BANDWIDTH ........................... OK.    OPUS_UNIMPLEMENTED ........................... OK.    OPUS_RESET_STATE ............................. OK.    opus_multistream_decode() .................... OK.    opus_multistream_decode_float() .............. OK.       All multistream decoder interface tests passed                             (576106 API invocations)  Packet header parsing tests  ---------------------------------------------------    code 0 (65 cases) ............................ OK.    code 1 (163456 cases) ........................ OK.    code 2 (326528 cases) ........................ OK.    code 3 m-truncation (64 cases) ............... OK.    code 3 m=0,49-64 (4096 cases) ................ OK.    code 3 m=1 CBR (81728 cases) ................. OK.    code 3 m=1-48 CBR (103544448 cases) .......... OK.    code 3 m=1-48 VBR (120832 cases) ............. OK.    code 3 padding (1519448 cases) ............... OK.    opus_packet_parse ............................ OK.                      All packet parsing tests passed                          (105760666 API invocations)  Encoder basic API tests  ---------------------------------------------------    opus_encoder_get_size(0)=0 ................... OK.    opus_encoder_get_size(1)=43580 ............... OK.    opus_encoder_get_size(2)=48492 ............... OK.    opus_encoder_get_size(3)=0 ................... OK.    opus_encoder_create() ........................ OK.    opus_encoder_init() .......................... OK.    OPUS_GET_LOOKAHEAD ........................... OK.    OPUS_GET_SAMPLE_RATE ......................... OK.    OPUS_UNIMPLEMENTED ........................... OK.    OPUS_SET_APPLICATION ......................... OK.    OPUS_GET_APPLICATION ......................... OK.    OPUS_SET_BITRATE ............................. OK.    OPUS_GET_BITRATE ............................. OK.    OPUS_SET_FORCE_CHANNELS ...................... OK.    OPUS_GET_FORCE_CHANNELS ...................... OK.    OPUS_SET_BANDWIDTH ........................... OK.    OPUS_GET_BANDWIDTH ........................... OK.    OPUS_SET_MAX_BANDWIDTH ....................... OK.    OPUS_GET_MAX_BANDWIDTH ....................... OK.    OPUS_SET_DTX ................................. OK.    OPUS_GET_DTX ................................. OK.    OPUS_SET_COMPLEXITY .......................... OK.    OPUS_GET_COMPLEXITY .......................... OK.    OPUS_SET_INBAND_FEC .......................... OK.    OPUS_GET_INBAND_FEC .......................... OK.    OPUS_SET_PACKET_LOSS_PERC .................... OK.    OPUS_GET_PACKET_LOSS_PERC .................... OK.    OPUS_SET_VBR ................................. OK.    OPUS_GET_VBR ................................. OK.    OPUS_SET_VBR_CONSTRAINT ...................... OK.    OPUS_GET_VBR_CONSTRAINT ...................... OK.    OPUS_SET_SIGNAL .............................. OK.    OPUS_GET_SIGNAL .............................. OK.    OPUS_SET_LSB_DEPTH ........................... OK.    OPUS_GET_LSB_DEPTH ........................... OK.    OPUS_SET_PREDICTION_DISABLED ................. OK.    OPUS_GET_PREDICTION_DISABLED ................. OK.    OPUS_SET_EXPERT_FRAME_DURATION ............... OK.    OPUS_GET_EXPERT_FRAME_DURATION ............... OK.    OPUS_GET_FINAL_RANGE ......................... OK.    OPUS_RESET_STATE ............................. OK.    opus_encode() ................................ OK.    opus_encode_float() .......................... OK.                   All encoder interface tests passed                             (1152209 API invocations)  Repacketizer tests  ---------------------------------------------------    opus_repacketizer_get_size()=1072 ............. OK.    opus_repacketizer_init ....................... OK.    opus_repacketizer_create ..................... OK.    opus_repacketizer_get_nb_frames .............. OK.    opus_repacketizer_cat ........................ OK.    opus_repacketizer_out ........................ OK.    opus_repacketizer_out_range .................. OK.    opus_packet_pad .............................. OK.    opus_packet_unpad ............................ OK.    opus_multistream_packet_pad .................. OK.    opus_multistream_packet_unpad ................ OK.                        All repacketizer tests passed                            (6713561 API invocations)  malloc() failure tests  ---------------------------------------------------    opus_decoder_create() ................... SKIPPED.    opus_encoder_create() ................... SKIPPED.    opus_repacketizer_create() .............. SKIPPED.    opus_multistream_decoder_create() ....... SKIPPED.    opus_multistream_encoder_create() ....... SKIPPED.(Test only supported with GLIBC and without valgrind)All API tests passed.The libopus API was invoked 115421979 times.root@truedei-code:~/project/small-media-server/libs/opus-1.5.2# ./tests/test_opus_encode Testing libopus unknown encoder. Random seed: 2917484423 (F9FE)Running simple tests for bugs that have been fixed previously  Encode+Decode tests.    Mode     LP FB encode  VBR,   6471 bps OK.    Mode     LP FB encode  VBR,  22714 bps OK.    Mode     LP FB encode  VBR,  95397 bps OK.    Mode Hybrid FB encode  VBR,  17420 bps OK.    Mode Hybrid FB encode  VBR,  39841 bps OK.    Mode Hybrid FB encode  VBR,  92528 bps OK.    Mode Hybrid FB encode  VBR, 107224 bps OK.    Mode   MDCT FB encode  VBR, 651616 bps OK.    Mode   MDCT FB encode  VBR,  15945 bps OK.    Mode   MDCT FB encode  VBR,  32125 bps OK.    Mode   MDCT FB encode  VBR,  95807 bps OK.    Mode   MDCT FB encode  VBR,  95309 bps OK.    Mode   MDCT FB encode  VBR,  99480 bps OK.    Mode     LP FB encode CVBR,   8877 bps OK.    Mode     LP FB encode CVBR,  19926 bps OK.    Mode     LP FB encode CVBR,  78691 bps OK.    Mode Hybrid FB encode CVBR,  18484 bps OK.    Mode Hybrid FB encode CVBR,  57495 bps OK.    Mode Hybrid FB encode CVBR,  55344 bps OK.    Mode Hybrid FB encode CVBR, 106082 bps OK.    Mode   MDCT FB encode CVBR, 712932 bps OK.    Mode   MDCT FB encode CVBR,  25903 bps OK.    Mode   MDCT FB encode CVBR,  47014 bps OK.    Mode   MDCT FB encode CVBR,  48283 bps OK.    Mode   MDCT FB encode CVBR, 123623 bps OK.    Mode   MDCT FB encode CVBR, 104458 bps OK.    Mode     LP FB encode  CBR,  10715 bps OK.    Mode     LP FB encode  CBR,  21312 bps OK.    Mode     LP FB encode  CBR,  55485 bps OK.    Mode Hybrid FB encode  CBR,  29148 bps OK.    Mode Hybrid FB encode  CBR,  54860 bps OK.    Mode Hybrid FB encode  CBR,  52063 bps OK.    Mode Hybrid FB encode  CBR,  95258 bps OK.    Mode   MDCT FB encode  CBR, 954242 bps OK.    Mode   MDCT FB encode  CBR,  25827 bps OK.    Mode   MDCT FB encode  CBR,  28258 bps OK.    Mode   MDCT FB encode  CBR,  87306 bps OK.    Mode   MDCT FB encode  CBR, 110127 bps OK.    Mode   MDCT FB encode  CBR, 190991 bps OK.    Mode     LP NB dual-mono MS encode  VBR,   5686 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  15413 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  43167 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  15879 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  22953 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  48063 bps OK.    Mode     LP NB dual-mono MS encode  VBR,  57454 bps OK.    Mode     LP NB dual-mono MS encode  VBR, 106463 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,   4920 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  15640 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  35600 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  15640 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  21025 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  54001 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR,  75637 bps OK.    Mode   MDCT NB dual-mono MS encode  VBR, 108025 bps OK.    Mode     LP NB dual-mono MS encode CVBR,   6350 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  15902 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  53277 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  15387 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  27853 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  63432 bps OK.    Mode     LP NB dual-mono MS encode CVBR,  56774 bps OK.    Mode     LP NB dual-mono MS encode CVBR, 128842 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,   4007 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,  12834 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,  36839 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,   8502 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,  18901 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,  38622 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR,  81109 bps OK.    Mode   MDCT NB dual-mono MS encode CVBR, 118246 bps OK.    Mode     LP NB dual-mono MS encode  CBR,   6151 bps OK.

运行测试向量对比

% curl -OL https://opus-codec.org/docs/opus_testvectors-rfc8251.tar.gz% tar -zxf opus_testvectors-rfc8251.tar.gz% ./tests/run_vectors.sh ./ opus_newvectors 48000

为 Windows 编译 libopus 及其他构建系统

请参考 cmake/README.md 或 meson/README.md 文件。

可移植性说明

本实现默认使用浮点运算,也可通过设置 --enable-fixed-point(使用 autoconf 编译时)或定义 FIXED_POINT 宏(手动编译时),切换至仅使用定点运算

  • • 定点运算实现的音频质量略低,且在快速浮点运算单元(FPU)平台上性能更差,通常仅用于嵌入式环境

该实现可使用 C89 或 C99 编译器编译。尽管代码不依赖 C89/C99 标准定义的未定义行为,但依赖于补码架构的通用实现定义行为

  • • 负数的右移操作与补码算术规则一致,即 a>>b 等价于 floor(a/(2^b))
  • • 转换为 N 位有符号整数时,数值会按 2^N 取模以适配类型范围;
  • • 负整数除法的结果向零截断;
  • • 编译器需提供 64 位整数类型(C99 要求,大多数 C89 编译器均支持)。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-04 18:28:57 HTTP/2.0 GET : https://67808.cn/a/486016.html
  2. 运行时间 : 0.230461s [ 吞吐率:4.34req/s ] 内存消耗:4,591.77kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ebf7fe755cf06933e5de7bdc2a0bb045
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000764s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000826s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001197s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000288s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000532s ]
  6. SELECT * FROM `set` [ RunTime:0.000206s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000536s ]
  8. SELECT * FROM `article` WHERE `id` = 486016 LIMIT 1 [ RunTime:0.009887s ]
  9. UPDATE `article` SET `lasttime` = 1777890537 WHERE `id` = 486016 [ RunTime:0.008515s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.006726s ]
  11. SELECT * FROM `article` WHERE `id` < 486016 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001225s ]
  12. SELECT * FROM `article` WHERE `id` > 486016 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002235s ]
  13. SELECT * FROM `article` WHERE `id` < 486016 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002471s ]
  14. SELECT * FROM `article` WHERE `id` < 486016 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002317s ]
  15. SELECT * FROM `article` WHERE `id` < 486016 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.026979s ]
0.235461s