7个版本 (稳定版)
1.2.4 | 2023年2月25日 |
---|---|
1.2.3 | 2023年2月23日 |
1.2.2 | 2023年1月11日 |
0.1.0 | 2023年1月5日 |
#284 in 音频
每月30次下载
37KB
760 行
Akasha
Akasha是一个无头录制应用程序,设计为将录制分割成多个段,以便更容易管理。
它设计为低资源消耗,因此可以作为后台进程使用,例如录制会议,无需保持OBS运行,或编写涉及sox
或ffmpeg
的笨拙的shell实用程序。
理论上支持所有主要平台(尽管我没有费心在非Linux平台上测试它,我已经尽力只使用平台无关的库)。
它支持自动检测输入设备,手动通过名称指定设备,并具有相当直观的命令行。要开始,大多数时候,你可以这样做
akasha rec --path-dir ~/MyAudioDirectory/
其中 --path-dir
是它将文件写入的目录。
如果你没有指定 --path-dir
,例如
akasha rec
...它将默认为 ~/Audio/akasha/
,其中 ~
是你的家目录。
任何不存在的目录都将自动创建。
如果它检测到的默认音频设备不正确,你可以覆盖它。首先,获取所有可用输入设备的列表
> akasha probe --type input-devices
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dsnoop.c:566:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dsnoop.c:566:(snd_pcm_dsnoop_open) unable to open slave
[
"jack",
"pipewire",
"pulse",
"default",
"sysdefault:CARD=Generic",
"front:CARD=Generic,DEV=0",
"surround40:CARD=Generic,DEV=0",
"surround51:CARD=Generic,DEV=0",
"surround71:CARD=Generic,DEV=0",
]
你将不得不原谅ALSA的呕吐——原因似乎是 CPAL没有正确设置错误处理器。也许我会提交一个PR并在某个时候修复它。
无论如何,你现在可以从该特定设备获取音频
akasha rec --device "pulse" --path-dir ~/Audio
还有一个可爱实时显示音量大小的功能,它使用通过RMS的SIMD音频音量计算。如果你想那样,可以传递 --display
标志。
待办事项
- 如果f32流全是零,添加警告,这样用户就不必启用
--display
模式来告诉。 - 使用snafu重构错误处理逻辑。
- 更好的错误消息
- 最终可能将所有流逻辑重构到 audio-stream crate 中。
- 默认录制路径,以便让新手更容易使用。
- 可能修复原始模式与日志功能不兼容的问题(
/n
->/r/n
)。 - 修复原始模式下跟踪回溯不工作的问题(https://werat.dev/blog/pretty-rust-backtraces-in-raw-terminal-mode/)
依赖项
~13–46MB
~731K SLoC