使用ffmpeg录音

官方教程:http://ffmpeg.org/ffmpeg.html

录音方法:

开始找到了这个方法,但是不行呀,好像是没有这个oss吧。

oss 是linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss 用到的麦克的设备吧

ffmpeg -f oss -i /dev/dsp wheer.mp3

ffmpeg -f oss -i /dev/dsp -ar 8000 -ab 10200 wheer.amr

 

采用 alsa-oss 录制,就可以啦

ffmpeg -f alsa -ac 2 -i hw:0,0 out.mp3

ffmpeg -f alsa -ac 2 -i hw:0,0 out.wav

科大讯飞的合成或者识别,保存成的音频文件格式是16k或者8k,16bit,单声道pcm格式的音频。采用以下方式录音

 ffmpeg -f alsa  -ar 16000 -ac 1 -i hw:0 lib.wav

q——停止

但是 我使用以上命令时,提示说

cannot set channel count to 1 (Invalid argument)
hw:0: Input/output error

最后查阅资料,发现以下参数设置:

-ab bitrate 设置音频码率

-ar freq 设置音频采样率

-ac channels 设置通道 缺省为1

-an 不使能音频纪录

-acodec codec 使用codec编解码

如此按理说,去掉 -ac通道设置即可,运行以下命令:

 ffmpeg -f alsa  -ar 16000 -i hw:0 lib.wav
-acodec pcm_s16le

但还是无法识别,最后问了一下,是这样录音的:
ffmpeg -y -f alsa -i pluse -t 00:00:06 -ar 16000 -ac 1 lib.wav

其中

-y (global)
  Overwrite output files without asking.

-f fmt (input/output)
   Force input or output file format. The format is normally auto detected for input files and guessed from the file extension
   for output files, so this option is not needed in most cases.

-i url (input)
   input file url

-t duration (input/output)

   When used as an input option (before -i), limit the duration of data read from the input file.

   When used as an output option (before an output url), stop writing the output after its duration reaches duration.

   duration must be a time duration specification, see (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual.

   -to and -t are mutually exclusive and -t has priority.

 

//试试改改他的用法
ffmpeg -y -f alsa -i hw:0 -t 00:00:06 -ar 16000 -ac 1 lib.wav

 这个可以了。

感谢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值