屏幕录像的功能对于分享游戏攻略、演示电脑软件的操作是必不可少的。在Windows下可能一般的用户就下载盗版的商业软件来做了。而在GNU/Linux操作系统下,则有现成的自由软件可供使用,只不过没有图形界面罢了,但也同样方便有效。更何况,这一点对于已经入门的Linux用户来说也不算什么难题。本文介绍如何使用recordmydesktop进行屏幕录像。

软件包的安装就不用说了。需要提及一点的是,在使用recordmydesktop之前,还需要安装pavucontrol(PulseAudio Volume Control)。否则,所得的视频只有图像而没有声音,无论怎么设置声音选项中的device都不行。pavucontrol简介如下:

PulseAudio Volume Control (pavucontrol) is a simple GTK+ based volume control tool (mixer) for the PulseAudio sound server. In contrast to classic mixer tools this one allows you to control both the volume of hardware devices and of each playback stream separately. It also allows you to redirect a playback stream to another output device without interrupting playback.

然后,运行pavucontrol,在其中的“Recording”选项卡中将声源选为“Monitor of Built-in Audio Analog Stereo”,则可以录制电脑上正在播放的音频。而若选择“Built-in Audio Analog Stereo”,则会录制由麦克风输入的声音。需注意的是,一定要先开启录音程序,这些设置选项才会出现。具体如下图所示:

接下来,就可以运行recordmydesktop命令录制屏幕了。其中所用参数的含义不言自明。需注意的是,--device选项的值为pulse。

recordmydesktop --display :0.0 -x 1728 -y 156 --width 1024 --height 768 --device pulse --overwrite -o wesnoth-under-the-burning-sun.ogv

录制bsnes游戏时,由于其默认的帧率为60,所以在下面的命令中,--fps选项也需要指定一下。同时,使用--s_quality选项设置了声音的质量为最高:

recordmydesktop --display :0.0 -x 1845 -y 278 --width 796 --height 581 --fps 60 --device pulse --s_quality 10 --overwrite -o bsnes.ogv

为了方便知晓需要被录像窗口的大小与位置,可以调用自己写的Sawfish函数display-window-paras来显示出窗口信息。该函数目前被绑定到了Super-e快捷键上。该函数的内容如下:

;; Display window position and dimension
(defun display-window-paras ()
"Display the position, dimension and group ID of the current window."
(interactive)
(let* ((cur-win (input-focus))
(win-width (car (window-dimensions cur-win)))
(win-height (cdr (window-dimensions cur-win)))
(win-x (car (window-position cur-win)))
(win-y (cdr (window-position cur-win))))
(display-message
(concat "Name: " (window-name cur-win) "\n"
"Dimension: " (number->string win-width) "x" (number->string win-height) "\n"
"Position: " (number->string win-x) "x" (number->string win-y) "\n"
"Group ID: " (number->string (window-actual-group-id cur-win)))
alert-msg-attrib))) (bind-keys window-keymap
"Super-e" `(display-window-paras))

执行display-window-paras后,其显示出的信息如下:

需要结束录像时,在终端窗口按Ctrl+c向recordmydesktop发现退出信号,在其保存完视频文件后便自动退出。接下来,需要将ogv格式的视频转化为常见的格式,如mp4。一个需要解决的问题是如何让声音与图像保持同步。目前是使用ffmpeg进行格式转换的(mencoder经试用后效果不好):

ffmpeg -i input_file.ogv -acodec libmp3lame -acodec ac3 -ab 128k -ac 2 -vcodec libx264 -preset slow -crf 22 -threads 4 output_file.mp4

使用recordmydesktop进行屏幕录像的更多相关文章

  1. Linux下使用RecordMyDesktop进行屏幕录像

    近期我们在评估给用户提供视频教程的可能性,以此来展示某些用视频才能更好表达的教程.在挖掘这个问题的时候,我们发现极丰富的可用于屏幕录像的工具.这些程序大体上特性的区别有:视频质量,性能,兼容性.这在此 ...

  2. Linux平台屏幕录像工具RecordMyDesktop

    如果你把Linux桌面效果自定义得很漂亮,是不是很想录下来和其他人一起分享呢?RecordMyDesktop完全满足需要,我期待这么一个软件很久了,以前也一直没有找到合适的. 以后每次发Ubuntu的 ...

  3. linux 屏幕录像(recordmydesktop)

    需求:命令行工具进行屏幕录像ffcast ffmpeg 简单点的是recordmydesktop. 1. 安装: apt-get install gtk-recordmydesktop recordm ...

  4. win7 audio repeater 虚拟声卡 屏幕录像专家

  5. Camtasia Studio屏幕录像安装与破解

    Camtasia Studio汉化版是一款功能强大的屏幕录像工具,能在任何颜色模式下轻松地记录屏幕动作,包括影像.音效.鼠标移动轨迹.解说声音等.Camtasia Studio具有强大的视频播放和视频 ...

  6. 屏幕录像专家V7.5(完美破解版,无水印)下载

    分享一个屏幕录像工具.屏幕录像专家V7.5(完美破解版,无水印).经测试可破解使用. 破解注册 点击安装.EXE,安装软件. 点击安装好的屏幕录像专家,会给你一个机器码,要你注册,复制下这个机器码(下 ...

  7. Ubuntu下屏幕录像、后期处理不完全攻略

    提要 如果要做成果展示或者效果演示,通常需要录取屏幕生成视频文件,在windows中我们可以用屏幕录像专家在录像, vegas 来做后期处理,Ubuntu可以么? 答案时当然可以!虽然第一次用觉得有点 ...

  8. 屏幕录像专家2014 v0318 免费版

    软件名称: 屏幕录像专家2014软件语言: 简体中文授权方式: 免费试用运行环境: Win8 / Win7 / Vista / WinXP软件大小: 7.9MB图片预览: 软件简介:屏幕录像专家201 ...

  9. 用JAVA捕获屏幕、屏幕录像、播放

    http://blog.csdn.net/njchenyi/article/details/447554 用JAVA捕获屏幕.屏幕录像.播放 标签: javaexceptionimageimportn ...

随机推荐

  1. jquery.validate.unobtrusive.js实现气泡提示mvc错误

    改写jquery.validate.unobtrusive.js实现气泡提示mvc错误 个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblog ...

  2. 空格&nbsp在不同浏览器中显示距离不一致问题解决方法

      在ie.firefox.chrome浏览器上显示的效果不太一样,主要是前面的空格宽度不同. 网上资料说不同的浏览器会有不同的默认字体,一般 IE默认字体都是宋体,而firefox和chrome的默 ...

  3. C#如何判断线程池中所有的线程是否已经完成之Demo

    start: System.Threading.RegisteredWaitHandle rhw = null; new Action(() => { ; i < ; i++) { new ...

  4. hibernate查询出的数据和数据库不一致

    之前直接使用hibernate的时候就出现过已经进行物理存储后的数据,查询不出来的情况,既然是已经存储后的数据,说明事务已经提交,想必问题出在查询时,查询的缓存,没有查询数据库.时有时无就很奇怪. 现 ...

  5. 前端基于easyui的mvc扩展(续)

    前端基于easyui的mvc扩展(续) 回顾及遗留问题 上一篇讲解了基于easyui的mvc扩展的基本实现,已经降低了在mvc内使用easyui的难度,但是仍然还有一些问题: 当我们要给生成的控件设置 ...

  6. Android While 循环导致的资源占用过高进而导致程序崩溃问题

    Timeline: Activity_launch_request time:6562004-14 15:31:25.347: I/dalvikvm(3483): Total arena pages ...

  7. Arduino 串口篇 Arduino发送二进制 send binary via RS232-to-USB to PC

    有用的链接在这里:http://hi.baidu.com/mizuda/item/06b7fdc1d0e45a0ec710b2dd 更加详细的内容请查阅Arduino官方:http://arduino ...

  8. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  9. 横瓜执导众程序员开展大讨论关于C、JAVA及其它主流IT技术使用情况和优点缺点。

    横瓜执导众程序员开展大讨论关于C.JAVA及其它主流IT技术使用情况和优点缺点. 遥执乾坤(44758121)  18:21:23 mysql据说只能使用一个索引,我这里几乎所有字段都有索引. 但每个 ...

  10. JVM内存模型及垃圾收集策略解析(一)

    JVM内存模型是Java的核心技术之一,之前51CTO曾为大家介绍过JVM分代垃圾回收策略的基础概念,现在很多编程语言都引入了类似Java JVM的内存模型和垃圾收集器的机制,下面我们将主要针对Jav ...