惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
SecWiki News
SecWiki News
P
Proofpoint News Feed
P
Palo Alto Networks Blog
L
LINUX DO - 热门话题
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Spread Privacy
Spread Privacy
A
Arctic Wolf
Recorded Future
Recorded Future
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园_首页
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
DataBreaches.Net
量子位
K
Kaspersky official blog
I
InfoQ
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
Scott Helme
Scott Helme
U
Unit 42
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
T
Troy Hunt's Blog
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
Jina AI
Jina AI
Recent Announcements
Recent Announcements
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
H
Heimdal Security Blog
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
Security Latest
Security Latest
B
Blog RSS Feed
Project Zero
Project Zero
C
Cisco Blogs
S
Securelist
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
T
Tor Project blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
F
Fortinet All Blogs

博客园 - osoft

Sound Disable-Download-Chrome-AI-Mode DAR-PAR-SAR ffmpeg-layouts Blender-Tank-Tracks Blender-Curve Bézier-curve Bézier-VS-NURBS Walking-leg-mechanism-in-Blender Blender-Armatures Blender-Rigid-Body Simulate-pendulum-motion-using-Blender Platonic-solids Differential-Gear otvinta-Bevel-Gear-Calculator Bevel-gears Epicyclic-gearing Blender-Gears Blender5-WindowUI Video-file-size Windows-Execution-Policies Windows-PowerShell-prompt Windows-UAC Windows-Commands-prompt Windows-GameBar-ErrorLog Microsoft-Store-error Chrome-Gemini-Nano Windows-sfc Windows-Delivery-Optimization Windows-icacls Dism-Cleanup-image DISM-Get-cmds Windows11-GPT Generate-MAC-Address
Audio-Channel
osoft · 2026-07-01 · via 博客园 - osoft
1. 获取相关信息
	1.1 获取音频流信息
	1.2 声道布局
	1.3 音量 volumedetect
	1.4 多声道混合波形图
	1.5 不同声道的波形图
	1.6 统计信息
2. 拆分声道
	2.1 pan
	2.2 channelsplit
	2.3 小结
3. 查看单声道文件相关信息
	3.1 获取音频流信息
	3.2 音量 volumedetect
	3.3 波形图
	3.4 统计信息
4. volume 滤波器调节音量
	4.1 音量 volumedetect
	4.2 波形图
5. 合并
	5.1 获取音频流信息
	5.2 音量 volumedetect
	5.3 不同声道的波形图
	5.4 文件大小
6. AudioChannel命令参考
7. 文中用到的选项及滤镜

1. 获取相关信息

1.1 获取音频流信息

ffmpeg -i 2018.mp4

Stream #0:1[0x2](eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)

1.2 声道布局

ffmpeg -layouts

mono           FC

stereo         FL+FR

quad           FL+FR+BL+BR

quad(side)     FL+FR+SL+SR

5.1            FL+FR+FC+LFE+BL+BR

5.1(side)      FL+FR+FC+LFE+SL+SR

… 这里只列出本例遇到的及相关布局。

1.3 音量 volumedetect

ffmpeg -i 2018.mp4 -hide_banner -filter_complex volumedetect -c:v copy -f null /dev/null 

ffmpeg -i 2018.mp4 -filter:a volumedetect -vn -f null /dev/null

ffmpeg -i 2018.mp4 -filter volumedetect -vn -f null /dev/null

ffmpeg -i 2018.mp4 -af volumedetect -vn -f null /dev/null

[...] mean_volume: -30.8 dB

[...] max_volume: 0.0 dB

1.4 多声道混合波形图

 ffmpeg -i 2018.mp4 -filter_complex "showwavespic=s=1920*720" -frames:v 1 8a.png

图略

1.5 不同声道的波形图

 ffmpeg -i 2018.mp4 -filter_complex "showwavespic=s=1920*960:split_channels=1" -frames:v 1 8am.png 

图形放在第5.3节,与修改后的图形对比。

1.6 统计信息

ffmpeg -i 2018.mp4 -af astats -f null -

注: 8100运行此命令只有~15x的速度,耗时约7分半。

增加 -vn 选项,忽略视频部分,速度增加10倍。

ffmpeg -i 2018.mp4 -vn -af astats -f null -

可以列出 Channel.(1~6) 的详细信息,其中的 RMS level dB 表示每个声道的平均音量。

Overall 则是综合6个声道的统计信息,Overall 的 RMS level dB 和前面使用 volumedetect 滤镜获取的 mean_volume 一致。

Channel 1 (FL) 2 (FR) 3 (FC) 4 (LFE) 5 (SL) 6 (SR) Overall 通道
DC offset -0.000008 -0.000009 -0.000009 0.000001 -0.00001 -0.000011 -0.000011 直流偏移
Min level -0.713869 -0.71056 -0.999829 -0.679425 -1.021281 -0.9638 -1.021281 最小电平
Max level 0.71264 0.695435 0.995467 0.677106 1.031011 0.962693 1.031011 最大电平
Min difference 0 0 0 0 0 0 0 最小差值
Max difference 0.628798 0.581773 0.694345 0.022837 0.370033 0.392021 0.694345 最大差值
Mean difference 0.001396 0.001468 0.003859 0.000021 0.001228 0.001224 0.001533 平均差值
RMS difference 0.003795 0.003989 0.009361 0.000128 0.003429 0.003426 0.004856 均方根差值
Peak level dB -2.927632 -2.96798 -0.001484 -3.35717 0.265267 -0.320259 0.265267 峰值电平 dB
RMS level dB -33.124027 -32.65356 -25.858851 -32.648587 -33.945536 -33.983928 -30.817171 均方根电平 dB
RMS peak dB -6.735127 -8.108412 -5.499001 -4.888176 -5.274029 -9.256225 -4.888176 均方根峰值 dB
RMS trough dB -112.519922 -111.171483 -111.433785 -3202.270341 -108.760425 -106.989207 -3202.270341 均方根谷值 dB
Crest factor 32.345936 30.498536 19.62765 29.145455 51.349962 48.215143   波峰因子
Flat factor 0 0 0 0 0 0 0 平坦因子
Peak count 2 2 2 2 2 2 2 峰值计数
Abs Peak count 1 1 1 1 1 1 1 绝对峰值计数
Noise floor dB -99.643932 -97.877327 -98.739502 -inf -97.807155 -101.373386 -97.807155 噪声基底 dB
Noise floor count 671 416 160 109866231 278 1 18311292.833333 噪声基底计数
Entropy 0.541997 0.554552 0.672009 0.267778 0.520391 0.523669 0.513399
Bit depth 31/32/32/32 31/32/32/32 31/32/32/32 31/32/32/32 32/32/32/32 31/32/32/32 32/32/32/32 位深度
Dynamic range 232.436339 237.004291 282.966711 279.886954 249.608638 234.34847   动态范围
Zero crossings 15226294 14816369 18927784 458054 14737991 14490558   过零点数
Zero crossings rate 0.044867 0.043659 0.055774 0.00135 0.043428 0.042699   过零率
Number of NaNs 0 0 0 0 0 0 0 NaN 值数量
Number of Infs 0 0 0 0 0 0 0 Inf 值数量
Number of denormals 0 0 0 0 0 0 0 非正规数数量
Number of samples 1 (FL) 2 (FR) 3 (FC) 4 (LFE) 5 (SL) 6 (SR) 339368208 样本数量

2. 拆分声道

2.1 pan

5.1(side)      FL+FR+FC+LFE+SL+SR

ffmpeg -i 2018.mp4 -filter_complex "[0:a]pan=1c|c0=c0[fl];[0:a]pan=1c|c0=c1[fr];[0:a]pan=1c|c0=c2[fc];[0:a]pan=1c|c0=c3[lfe];[0:a]pan=1c|c0=c4[sl];[0:a]pan=1c|c0=c5[sr]"  -map "[fl]" 8fl.ac3 -map "[fr]" 8fr.ac3 -map "[fc]" 8fc.ac3 -map "[lfe]" 8lfe.ac3 -map "[sl]" 8sl.ac3 -map "[sr]" 8sr.ac3 

或者拆开来运行: 结果都一样。

  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c0" 80.ac3
  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c1" 81.ac3
  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c2" 82.ac3
  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c3" 83.ac3
  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c4" 84.ac3
  • ffmpeg -i 2018.mp4  -af "pan=mono|c0=c5" 85.ac3

2.2 channelsplit

ffmpeg -i 2018.mp4 -filter_complex "channelsplit=channel_layout=5.1(side)[FL][FR][FC][LFE][SL][SR]"  -map "[FL]" 8fl.ac3 -map "[FR]" 8fr.ac3 -map "[FC]" 8fc.ac3 -map "[LFE]" 8lfe.ac3 -map "[SL]" 8sl.ac3 -map "[SR]" 8sr.ac3

2.3 小结

使用 channelsplit 滤镜,并没有按预期的生成所有单声道文件。

  • fc, lfe 这2个是 mono 单声道文件;比特率均为96kb/s。和上方的 pan 滤镜输出一致。
  • fl, fr 这2个是 stereo 立体声文件;比特率均为192kb/s。
    • 通过 astats 统计信息, 输出立体声的左右声道数据非常近似,相当于将输出的一个单声道,分别放到立体声的左右声道。
    • 使用 showwavespic 滤镜,生成不同声道的波形图,可以观察到,立体声2个声道是基本相同的波形。
  • sl,sr 这2个是 quad(side) 形式的4声道文件,比特率均为384kb/s。
    • 通过 astats 统计信息, 输出 quad(side) 的4个声道数据,前2个非常近似,相当于将输出的一个单声道,分别放到这2个位置,另外2个声道有数据,但属于静音范围,一样占用了一半的文件大小。
    • 使用 showwavespic 滤镜,生成不同声道的波形图,可以观察到,前2个声道是基本相同的波形,后2个声道只有占据了位置,没有任何波形(静音)。

拆分声道,使用 pan 滤镜,命令里已指定1c或mono,拆分出来的都是单声道文件,比特率均为96kb/s,体积都一样大。

  • 后面的内容都已 pan 滤镜生成的6个单声道文件为基础继续。

3. 查看单声道文件相关信息

3.1 获取音频流信息

ffprobe -i 文件名

Stream #0:0: Audio: ac3, 48000 Hz, mono, fltp, 96 kb/s

使用 pan 滤镜生成的所有6个文件,都是独立的单声道文件。

3.2 音量 volumedetect

ffmpeg -i 文件名 -af volumedetect -vn -f null /dev/null

信息见下方4.1节表格。

3.3 波形图

 ffmpeg -i 文件名 -filter_complex "showwavespic=s=1920*960" -frames:v 1 output.png

 ffmpeg -i 文件名 -filter_complex "showwavespic=s=1920*960:split_channels=1" -frames:v 1 output.png 

由于是单声道文件,所以这2行输出的图形是一样的。

这里将所有6个文件的图形分别输出,以便后续调整后对照。

3.4 统计信息

ffmpeg -i 文件名 -af astats -f null -

单声道音频文件的统计信息和前面5.1声道统计信息里的对应声道数据接近,但不完全相同。

4. volume 滤波器调节音量

将2018文件的6个声道分别调整适当的音量,然后再合并。

  • ffmpeg -i 8fc.ac3 -filter:a "volume=5dB" 8fc-u.ac3
  • ffmpeg -i 8fl.ac3 -filter:a "volume=7dB" 8fl-u.ac3
  • ffmpeg -i 8fr.ac3 -filter:a "volume=7dB" 8fr-u.ac3
  • ffmpeg -i 8lfe.ac3 -filter:a "volume=3dB" 8lfe-u.ac3
  • ffmpeg -i 8sl.ac3 -filter:a "volume=3dB" 8sl-u.ac3
  • ffmpeg -i 8sr.ac3 -filter:a "volume=3dB" 8sr-u.ac3

volume=号后面的数值若不带dB分贝单位,则表示按比例调整音量。

4.1 音量 volumedetect

ffmpeg -i 文件名 -af volumedetect -vn -f null /dev/null

Channel 章节: 3.2 章节: 4 章节: 4.1
file 平均音量 max +dB file 平均音量 max
1 (FL) 8fl.ac3 -33.1 dB -2.4 dB 7dB 8fl-u.ac3 -26.2 dB 0.0 dB
2 (FR) 8fr.ac3 -32.6 dB -2.5 dB 7dB 8fr-u.ac3 -25.7 dB 0.0 dB
3 (FC) 8fc.ac3 -25.9 dB 0.0 dB 5dB 8fc-u.ac3 -20.9 dB 0.0 dB
4 (LFE) 8lfe.ac3 -32.6 dB -3.4 dB 3dB 8lfe-u.ac3 -29.6 dB -0.4 dB
5 (SL) 8sl.ac3 -33.9 dB 0.0 dB 3dB 8sl-u.ac3 -31.0 dB 0.0 dB
6 (SR) 8sr.ac3 -34.0 dB -0.2 dB 3dB 8sr-u.ac3 -31.0 dB 0.0 dB

章节: 3.2,4.1音量对照表,所有文件大小均为80.9Mb,比特率为96kbs,Layouts:mono, 48000Hz。

4.2 波形图

 ffmpeg -i 文件名 -filter_complex "showwavespic=s=1920*960" -frames:v 1 output.png

与3.3调整音量前的图形对照。波形的幅度显著增大了。

5. 合并

5.1(side)      FL+FR+FC+LFE+SL+SR

  • ffmpeg -i 8fl-u.ac3 -i 8fr-u.ac3 -i 8fc-u.ac3 -i 8lfe-u.ac3 -i 8sl-u.ac3 -i 8sr-u.ac3  -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]join=inputs=6:channel_layout=5.1(side)[a]"   -map "[a]" output.ac3 
  • ffmpeg -i 8fl-u.ac3 -i 8fr-u.ac3 -i 8fc-u.ac3 -i 8lfe-u.ac3 -i 8sl-u.ac3 -i 8sr-u.ac3  -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]join=inputs=6:channel_layout=5.1(side):map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-SL|5.0-SR[a]"   -map "[a]" output1.ac3 
  • ffmpeg -i 8fl-u.ac3 -i 8fr-u.ac3 -i 8fc-u.ac3 -i 8lfe-u.ac3 -i 8sl-u.ac3 -i 8sr-u.ac3  -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[a]"  -map "[a]" output3.ac3

使用 amerge 函数时,所有输入必须具有相同的采样率和格式。如果输入持续时间不同,输出将以最短的持续时间结束。 

 No channel layout for input 1  

Input channel layouts overlap: output layout will be determined by the number of distinct input channels Output #0, ac3, to 'output3.ac3':   

Stream #0:0: Audio: ac3, 48000 Hz, 5.1, fltp, 448 kb/s

使用 amerge 滤镜过程中,提示没有指定 layout,默认会输出 5.1 声道,如上,但实际生成的文件是 5.1(side) 声道。

5.1 获取音频流信息

ffprobe -i output.ac3

Stream #0:0: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s

5.2 音量 volumedetect

ffmpeg -i output.ac3 -af volumedetect -vn -f null /dev/null

mean_volume: -25.8 dB。注: 第1.3节,原始音轨音量平均为:-30.8 dB

5.3 不同声道的波形图

  •  ffmpeg -i output.ac3 -filter_complex "showwavespic=s=1920*960:split_channels=1" -frames:v 1 output-m.png 
  •  ffmpeg -i output1.ac3 -filter_complex "showwavespic=s=1920*960:split_channels=1" -frames:v 1 output1-m.png 
  •  ffmpeg -i output3.ac3 -filter_complex "showwavespic=s=1920*960:split_channels=1" -frames:v 1 output3-m.png 


   

和原始输出对比,波形幅度更加突出(音量提高了约5dB)。

注:参照波形,其中output.ac3文件的第2和第3声道互调了。命令行里的输入顺序都是一致的。具体原因还不清楚。

5.4 文件大小

  • 原始输出ac3文件大小为539Mb。(640bps)
  • 拆分为6个单声道文件80.9Mb*6=485MB。(96kb/s * 6 = 576bps) 大约是原始文件的90%。
  • 将这6个文件分别调整音量后,文件大小没有变化,合计仍然是485MB。(576bps)
  • 将这6个文件合并为5.1(side)声道文件,文件大小变为377MB。(448bps) 大约是原始文件的70%。

6. AudioChannel命令参考

以下文档是每晚重新生成的(中文翻译),对应于最新的 FFmpeg 修订版。

7. 文中用到的选项及滤镜