首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输出到stdout (-c)中断,写入文件(-o)的相同命令工作

输出到stdout (-c)中断,写入文件(-o)的相同命令工作
EN

Unix & Linux用户
提问于 2017-10-24 13:23:31
回答 1查看 657关注 0票数 0

我试图用arecord记录音频,使用flac工具将其编码到.flac,然后再通过几个进程(gzip、gpg,但这里不相关)。

如果我使用flac参数将来自-o的结果写入文件,那么一切都很好:

代码语言:javascript
复制
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参数并将输出重定向到一个文件:

代码语言:javascript
复制
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上。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-10-24 13:33:06

它不能通过管道计算最终长度,所以不能将它写到flac的头上。它不会破坏文件,它会保存为livestream,您不应该知道什么时候会结束,并且头在文件的开头。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/400144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档