ffmpeg - ffmpeg 记录 16 位,即使我只想要 8 位
问题描述
我尝试了以下命令:
ffmpeg -f dshow -sample_fmt u8 -ac 1 -ar 11025 -i audio="mic" output.wav
ffmpeg -f dshow -sample_fmt u8p -ac 1 -ar 11025 -i audio="mic" output.wav
每次我尝试获得 8 位输出时,ffmpeg 每个样本返回 16 位。
有什么方法可以记录每个样本 8 位?
解决方案
WAV 输出的默认编码器是 pcm_s16le(PCM 签名的 16 位小端序)。使用以下编码器之一:
编码器 | 描述 |
---|---|
pcm_s8 | PCM 签名 8 位 |
pcm_s8_planar | PCM 签名 8 位平面 |
pcm_u8 | PCM 无符号 8 位 |
例子:
ffmpeg -f dshow -channels 1 -sample_rate 11025 -i audio="mic" -c:a pcm_u8 output.wav
- 我更改了输入选项以使用记录在案的 dshow options。
- 参见
ffmpeg -encoders
编码器列表。
推荐阅读
- c# - 调用存储过程时参数错误的数量或类型错误
- angular - UI 中的角度变化检测 - 如何成功?
- algorithm - NEAT/HyperNEAT 算法中的重复和中间结果
- python - windows 10命令行运行带有多个点文件的python失败
- python - 如何在没有函数的情况下使用 turtle.reset() 函数
- python - Python,pyinstaller 不使用 matplotlib 生成可用程序
- android - Android Studio - 布局在另一个布局之上
- apache-zookeeper - Apache Curator:没有领导者被间歇性选择
- bash - 查找和替换文件名递归忽略文件夹
- asp.net - 有没有办法为 DI 创建一个 IDbContext 接口(使用 AutoFac)?