ffmpeg 捕获屏幕和采集声卡、摄像头、麦克风声音

本文转载自:

作者:且行且探索 
来源:CSDN 
原文:https://blog.csdn.net/encoder1234/article/details/51984779 

--------------------------------------------------------------------------------------------------------

ffmpeg在Linux下用X11grab进行屏幕录像,在Windows下用DirectShow滤镜

首先需要安装一个软件,screen capture recorder

编译好的下载地址是:

http://sourceforge.net/projects/screencapturer/files/

源码地址是:

https://github.com/rdp/screen-capture-recorder-to-video-windows-free

安装完了之后,在命令行执行:

ffmpeg -list_devices true -f dshow -i dummy 

系统输出大致如下:


[dshow @ 002db420] DirectShow video devices  
[dshow @ 002db420]  "screen-capture-recorder"  
[dshow @ 002db420] DirectShow audio devices  
[dshow @ 002db420]  "virtual-audio-capturer"  
ffmpeg已经可以捕获到DirectShow视频设备,和音频设备了.

"screen-capture-recorder" 这个就是桌面捕获设备,如果电脑上连有摄像头,也会列出来.

"virtual-audio-capturer" 这个是音频捕获设备


捕获摄像头视频:

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 mycamera.mkv 

注: Integrated Camera名称视个人电脑设备管理器里边摄像头的名称而定,我的是电脑是 Integrated Webcam.

捕获麦克风声音:

ffmpeg -f dshow -i audio="麦克风(High Definition Audio 设备)" -acodec aac d:\temp.aac

同时捕获桌面和声卡声音并录制成flv文件:

ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv temp.flv

上面组合命令设置了x264参数和aac添加adst filter,

如果想提高x264编码速度可使用 -preset:v ultrafast -tune:v zerolatency  两个参数,

举个例子:

ffmpeg -f dshow -i video="Integrated Webcam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency d:\test.mp4

=======================================================================

个人补充一下:

用这种方法可以抓取声卡输出的声音,用处很大,比如网络MP3无法下载时,可以结合ffmpeg实现在音乐播放时将其录制为MP3保存。使用的命令行为:ffmpeg -f dshow -i audio="virtual-audio-capturer" 1.mp3

通常可以在控制台下敲以上命令,开始录制。切换到网页开始播放歌曲。当歌曲播放结束时,输入"q"结束录制。

一个小问题是开始和结尾部分可能不刚好是音乐开始播放和结束播放的地方,这个时候可以使用ffmepg带的选项-ss和-t截取中间部分,比如ffmpeg -ss 00:00:1.20 -i C:\Users\qiuch\Desktop\3.mp3 -acodec copy 2.mp3表示从开始1.20s处截取,直到结束。

比如ffmpeg -t 00:03:32 -i 1.mp3 -acodec copy 2.mp3就表示从开始位置截取3分32秒,用于去除尾部多余录制的部分。-t选项可以直接带时间长度(单位s),如-t 253.20

-ss和-t选项可以同时使用。

ffmpeg命令行使用缺乏用户友好,如需基于该技术的带有用户界面的二次软件开发集成,可联系QQ群:386281755。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值