我的问题是录音很长,超过了 WAV 支持的长度。我说的是大约八小时长度的连续录音。
现在,我的大部分录音都使用袜队转换为 FLAC,这是最有意义的,因为这些是来自外部声卡的现场录音。
现在,我想将其编码为 MP3 或 AAC(在 MP4 容器中)。
我设法做到这一点的唯一方法是使用 FFmpeg,但实际上我宁愿使用编码器应用程序,例如lame
, 或neroaacenc
。
现在,我在可能的情况下这样做,但我使用 WAV 作为绕道。我将 FLAC 解码为 WAV,然后将 WAV 编码为最终产品。但正如我所说,它不适用于超过一定长度的录音。
现在,我的想法是使用管道并强制解码为 RAW,然后将其编码为目标格式。
我需要一些帮助。有人可以向我提供一些如何解码 FLAC 文件并通过lame
管道 RAW 数据将其编码为 MP3 的示例吗?
答案1
你应该尝试这样的事情:
flac -c -d -force-raw-format --endian=little --signed=unsigned input.flac | \
lame -r --little-endian --unsigned \
-s 44.1 [other encoding options here] - output.mp3
在一边flac
:
-c
表示输出到标准输出-d
解码-force-raw-format --endian=little --signed=unsigned
强制 RAW、小尾数、无符号输出
在一边lame
:
-
从标准输入读取(这几乎是标准的)-r
读取RAW PCM数据--little-endian --unsigned
匹配蹩脚的输出-s
频率:将该参数与您的 flac 文件包含的内容相匹配--bitwidth
如果您的 flac 文件不是 16 位/样本,您可能需要
关于字节序和符号,不确定您拥有的“本机”格式是什么(或如何确定它) - 尝试一些组合。只要它们在管道的两侧都匹配,选择错误的就只会花费 CPU 时间。
答案2
考虑使用mp3fs。这个用户空间文件系统守护进程在您的文件系统上创建一个视图,其中 flac 文件以 mp3 的形式呈现。安装后,您可以拥有例如。即使 mp3 物理上并不存在,您的媒体播放器也会直接从该文件系统读取。另外,您可以只从该文件系统复制文件,例如。你这个MP3播放器。