@ audio/ decode-eac3 (英语)
解码为E-AC-3(多比数码+)——和平面AC-3——为PCM浮标样本.
弗伦佩格的 eac3 解码器——一个瘦小的LGPL-2.1-后期 libavcodec编号 :libavutil 构建(没有GPL组件)——被编译为单文件的WASM ES模块. 没有侧面文件,没有CDN,节点,工人和音频工作包的负载.
import decode, { decoder } from '@audio/decode-eac3'
let { channelData, sampleRate } = await decode(eac3Bytes)
let dec = await decoder()
let head = dec.decode(chunk1) // synchronous; partial frames carry over
let tail = dec.flush()
dec.free()
E-AC-3(多比数字加号) ATSC A/52:2018 附件E. . . . . . eac3 解码器共享其核心 ac3dec.c 和在位流上的发送 bitstream_id 字段 (bsid ≤ 10 经典AC-3语法, bsid = 16 —— E-AC-3),因此 此软件包同时解码 原AC-3和E-AC-3同步框架流(.ac3, (中文(简体) ), .ec3, (中文(简体) ), .eac3——集装箱脱衣机(@ audio/decode-mp4 (英语), (中文(简体) ), @ audio/decode-webm (英语), (中文(简体) ), @ audio/decode-avi沿着他们的E -AC -3轨迹走 同步框架( 同步词) 0x0B77使用 FFmpeg 自己公开的 av_ac3_parse_header 框架长度(frmsiz (单位:千美元) frmsizecod编号 :fscod 用于经典 AC-3 的表格——形状与 @ audio/decode-ac3 (英语)。 。 。 .
最多可达5.1 (7.1 有依赖的下流通道映射 FFmpeg 支持), 频道已经以 WAV 顺序出: FFmpeg's ac3dec.c 创建本地( 位码) AVChannelLayout 对于每个已解码的框架, 本地布局以上升方式列出频道 AV_CH_* 位顺序——哪个 实值 WAV订单(FL,FR,FC,LFE,BL,BR,.;FFmpeg标签为AC-3/E-AC-3后置对) SIDE_LEFT编号 :SIDE_RIGHT 而不是说 BACK_LEFT编号 :BACK_RIGHT,但位位置——因此输出槽——是相同的. 没有请求下行混合,因此保留了溪流自己的通道计数.
动态范围压缩( N)drc_scale强迫 0,使其失效 ——FFmpeg的AC-3解码器默认应用它(drc_scale = 1.0) (中文(简体) ). @audio/decode-ac3 (liba52) 也从未使用拨号或DJC; 强迫它关闭这里, 使输出水平在两个软件包之间保持可比性, 用于相同的AC-3输入—— 在 test.js 0.5分贝以下 ../decode-ac3/fixtures/stereo.ac3,由两者解码). 两个软件包都没有应用拨号——FFmpeg's ac3dec.c 没有读或应用它, 只有刚果民主共和国.
API 密码
decode(src: Uint8Array | ArrayBuffer): Promise<AudioData>
解码一个完整的流.
decoder(): Promise<Eac3Decoder>
同步流解码器 : decode(chunk) 返回迄今为止数据中每个完整框架的样本, flush() 丢弃后遗症部分框架, free() 释放WASM记忆. errors 计算无法解码的框架.
AudioData
{ channelData: Float32Array[], sampleRate: number }
使用时 : 您需要在浏览器或节点中播放或转码 E-AC-3(Dolby Digital Plus)——或AC-3.
许可证
ॐ • 妇女 LGPL-2.1- 或- 后期,从捆绑中继承 FFmpeg 组合键 eac3编号 :ac3 解码器( 无 --enable-gpl 看到了吗 build.sh 财务报告和审定财务报表 LICENSE.ffmpeg. FFmpeg 来源:共享 lib/ffmpeg 子模块 (release/7.1),也用于 @audio/decode-ape。 。 。 .
