目录

  • 1. 安装avconv工具
  • 2. 开始捕捉录制桌面视频
  • 3. 捕捉录制桌面的音频
  • 4. 同时捕捉录制桌面的视频和音频

Libav是一套跨平台的库和工具,用来处理多媒体文件、流及协议,它原生于ffmpeg项目。它包含的一些工具如下:

  • avplay:视频、音频播放器;
  • avconv:多媒体转换器,并可以对来自不同源的视频和音频进行录制;
  • avprobe:连接多媒体流文件流,并返回多种有用信息及统计数据的工具;
  • Libavfilter:为不同Libav工具提供的过滤器API。

本文将阐释如何使用DebianUbuntuLinux Mint发行版中的avconv进行Linux桌面音视频捕捉录制。

1. 安装avconv工具

avconvlibav-tools软件包的一部分,对于如Ubuntu和Mint等所有基于Debain的发行版,可从官方的资源库中获取并进行安装,命令如下:

$ sudo apt-get update
$ sudo apt-get install libav-tools

注意: 从缺省资源库中安装的软件包,版本可能有些旧,因此,推荐从官方的git资源库中获取最新版本进行编译安装,命令如下:

$ sudo apt-get install yasm
$ git clone git://git.libav.org/libav.git
$ cd libav
$ ./configure
$ make
$ sudo make install

当然,可以运行./configure –help命令,先列出所有的可选项,进行配置并安装需要的库。为了安装依赖项,可能有大量的工作要做。在使用从源代码编译安装时,要注意操作权限,可能要使用sudo avconv而不是avconv来运行。

2. 开始捕捉录制桌面视频

安装就绪后,可使用下面的命令捕捉录制桌面视频:

avconv -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 $HOME/output.avi

简单地介绍下上面的命令:

  • avconv -f x11grab是从X服务器捕捉视频的缺省命令;

  • -r 25是所需的帧频,可以根据需要进行调整;

  • -s 1920×1080是视频的分辨率,选定的值不应大于当前系统屏幕最大分辨率,否则可能会出现以下错误:

    avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developersbuilt on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
    [x11grab @ 0x9de2c0] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 1920 height: 1080
    [x11grab @ 0x9de2c0] shared memory extension  found
    X Error of failed request:  BadMatch (invalid parameter attributes)Major opcode of failed request:  130 (MIT-SHM)Minor opcode of failed request:  4 (X_ShmGetImage)Serial number of failed request:  11Current serial number in output stream:  11
    
  • -i :0.0要捕捉录制的当前X服务器的桌面,一般无需改变此值;

  • -vcodec libx264录制视频时所用的编码库;

  • -threads 4,录制时所用的线程数,根据需要调整合适的值;

  • $HOME/output,文件保存的目标路径;

  • .avi,视频的格式及文件的扩展名,支持的格式还有.flv.mp4.wmv.mov.mkv等。

在命令行终端中,回车执行该命令后,就自动开始录制,可以在该命令行终端窗口时使用Ctrl + C终止录制。

录制结束,可使用mplayer或者其他的多媒体播放器进行播放,或者可以使用此Libav包中自带avplay工具进行播放,命令如下:

$ avplay $HOME/output.avi

注意: 切勿忘记修改文件保存的目标路径。

3. 捕捉录制桌面的音频

如果要捕捉录制音频,首先执行下面的命令来列出所有可用的音频输入源:

$ arecord -l

该命令可能的输出如下:

card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]Subdevices: 1/1Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 2: ALC892 Alt Analog [ALC892 Alt Analog]Subdevices: 1/1Subdevice #0: subdevice #0
card 2: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]Subdevices: 1/1Subdevice #0: subdevice #0
card 2: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]Subdevices: 1/1Subdevice #0: subdevice #0

就我当前的系统而言,有card 0card 2两块卡作为音频输入源卡(尽管card 2是伪设备),依次执行下面的命令来捕捉录制桌面的音频:

avconv -f alsa -i hw:0 output.wav

如果录制成mp3格式,可采用下面的命令:

avconv -f alsa -i hw:0 -acodec libmp3lame output.mp3

或 avconv -f alsa -i hw:0 output.mp3

如果系统支持多线程,也可采用下面的命令:

avconv -f alsa -i hw:0 -acodec libmp3lame -threads 4 output.wav

对以上命令的简单解释:

  • -f alsa,捕捉音频的设备源可选项,其他的还有dv1394jackfbdevosspulse等;
  • -i hw:0,对应alsa设备的音频输入源,此选项中0arecord -l命令输出中card 0对应。

但采用alsa时,录制成的音频可能比源音频来音量小,推荐采用下面的方式改进:

  1. 先执行下面的路径,找到pulse的源设备:

     $ pactl list sources | grep analog-stereo.monitor
    

    该命令的输出可能如下:

     Name: alsa_output.pci-0000_00_14.2.analog-stereo.monitorName: alsa_output.2.analog-stereo.monitor
    
  2. 接着,采用-f pulse可选项进行捕捉录制音频,命令如下:

     avconv -f pulse -i alsa_output.pci-0000_00_14.2.analog-stereo.monitor output.wav
    

按下Ctrl + C,终止录制。

4. 同时捕捉录制桌面的视频和音频

同时录制桌面的视频和音频命令如下:

$ avconv -f alsa -i hw:0 -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 output-02.avi

为改进音频的音量大小,推荐使用下面的命令:

$ avconv -f pulse -i alsa_output.pci-0000_00_14.2.analog-stereo.monitor -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 output-file2.avi

如果音频采用mp3进行压缩编码,可采用下面的命令:

$ avconv -f pulse -i alsa_output.pci-0000_00_14.2.analog-stereo.monitor -f x11grab -r 25 -s 1920x1080 -i :0.0 -acodec libmp3lame -vcodec libx264 -threads 4 output-file2.avi

参考资料:

  1. How to Record Your Desktop Video and Audio Using “Avconv” Tool in Ubuntu
  2. Recording speaker audio using avconv
  3. PCM (digital audio) interface

Linux下使用“avconv“捕捉录制桌面视频及音频相关推荐

  1. linux iphone文件,在linux下生成iphone所需要的视频和音频文件的方法总结

    在linux下生成iphone所需要的视频和音频文件的方法总结 (2011-05-07 09:53:18) 标签: linux iphone mencoder ffmpeg mplayer 一.生成可 ...

  2. 在 Linux 中使用avconv工具录制计算机桌面视频和音频

    在 Linux 中使用"avconv"工具录制计算机桌面视频和音频 Libav是一款跨平台的工具库,能够用来处理多媒体文件.流和协议.它最初是源自ffmpeg.Libav带有一些工 ...

  3. ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案

    ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案 参考文章: (1)ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案 (2)ht ...

  4. linux下安装navicat并生成桌面图标

    linux下安装navicat并生成桌面图标 下载客户端 下载连接 http://www.navicat.com.cn/dow... 从navicat官网下载试用客户端即可 下载ico http:// ...

  5. Linux下VNC配置多个桌面和修改密码 不会当系统重启vnc失效

    1:vncserver 2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT   客户端方式 3:iptables -I INPUT -p tcp --d ...

  6. 电脑技术分享:电脑怎样录制桌面视频

    喜欢在网上搜视频教程的小伙伴就知道现在有很多教程都是用电脑录制的,比方说Excel的使用方法.PS怎么去水印.怎么修改电脑设置和怎么修改电脑分辨率等等.那么电脑怎样录制桌面视频? 迅捷屏幕录像工具原画 ...

  7. navigator.mediaDevices.getUserMedia录制桌面视频并保存

    如果,需要同时录制麦克风声音以及桌面声音,请看最后 以下代码中有用到electron的desktopCapturer模块(用于PC应用开发),如果你并不需要,可以直接忽略,直接定义你要录制的视频源和音 ...

  8. javacv录制桌面视频_免费在任何操作系统上录制桌面视频

    javacv录制桌面视频 Sometimes screen shots just aren't enough to explain how to do something or to show the ...

  9. linux下下载优酷等的视频

    linux下下载优酷等的视频 2009年04月26日 星期日 14:31 火狐安装downthemall插件. 然后像平常一样寻找土豆或优酷的视频. 复制地址 打开 www.kisstudou.com ...

最新文章

  1. 解决了一个小问题 好像把逻辑有点复杂
  2. svm硬间隔与软间隔
  3. Java for循环的几种用法
  4. [渝粤教育] 中国地质大学 金融保险业会计 复习题
  5. 用vscode编写静态页面_开发中实用的VSCode插件推荐
  6. flowable 表名sql mysql和oracle
  7. tmux 上滚_实践中的tmux:回滚缓冲区
  8. 云上攻击太多怎么办?不妨试试这些工具
  9. android读写相册权限,androidQ 关于存储权限相册图片
  10. eclipse插件本地扩展安装
  11. 应用程序框架实战十八:DDD分层架构之聚合
  12. 在XP下,如何使指定的用户在登录界面可见
  13. 微波心得2——阻抗匹配
  14. 测试报告html模板,测试报告模板(标准版)
  15. 研报解读 | 中国云计算:从数据看未来
  16. wordpress 如何添加Canonical 标签(不通过插件)
  17. Windows 使用命令强制删除文件及文件夹
  18. maven阿里云中央仓库
  19. 立法保障交通权 日本交通政策基本法是如何制定的?
  20. 不要黄泛区及东北人?地域歧视谁之责

热门文章

  1. Numpy的数据类型
  2. 深度学习笔记(本文不讲技术细节,持续更新)
  3. 【VUE实战问题记录】只能输入0-100(包括两位小数及0和100)正则表达式
  4. 【Soul源码阅读】2.单机部署 Soul
  5. 计算机毕业设计Java多特蒙德周边商城系统(源码+系统+mysql数据库+lw文档)
  6. JavaScript:获取当月1号到当月当日的时间段
  7. 初一计算机课怎么上,初中信息技术七年级上册《初识计算机》公开课PPT课件
  8. Python -- Numpy库的使用
  9. IOS的 testflight测试设置(内部测试)
  10. 解决安装Electron缓慢问题