我试图用arecord记录音频,使用flac工具将其编码到.flac,然后再通过几个进程(gzip、gpg,但这里不相关)。
如果我使用flac参数将来自-o的结果写入文件,那么一切都很好:
arecord -t raw -f S16_LE -r16000 -d 10 -D sysdefault:CARD=1 | flac - -f --endian little --sign signed --channels 1 --bps 16 --sample-rate 16000 -o test.flac如果我使用-c参数并将输出重定向到一个文件:
arecord -t raw -f S16_LE -r16000 -d 10 -D sysdefault:CARD=1 | flac - -f --endian little --sign signed --channels 1 --bps 16 --sample-rate 16000 -c > test.flac...the生成的文件可以很好地回放(声音工作),但是VLC不显示音频记录的长度,audacity以稳定增长的ETA数小时启动导入进程,并挂起取消。
这两个命令之间唯一的区别是-o test.flac和-c > test.flac。为什么这会破坏文件?
如果这有区别的话:FLAC1.3.2,记录1.1.3,运行在带有USB麦克风的Pi3上的最新的raspbian上。
发布于 2017-10-24 13:33:06
它不能通过管道计算最终长度,所以不能将它写到flac的头上。它不会破坏文件,它会保存为livestream,您不应该知道什么时候会结束,并且头在文件的开头。
https://unix.stackexchange.com/questions/400144
复制相似问题