1. 安装依赖的包

sudo apt-get install -y ffmpeg oss-compat alsa-oss

2. 录制桌面视频并录音

aoss ffmpeg -f oss -i /dev/dsp -f x11grab -s wxga -r  -i :0.0 -sameq /tmp/out.mpg

3. 使用脚本在后台进行录像

#!/bin/bash -
#===============================================================================
#
# FILE: recordscreen.sh
#
# USAGE: ./recordscreen.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: linkscue (scue), linkscue@gmail.com
# ORGANIZATION:
# CREATED: 2013年08月17日 18时28分01秒 HKT
# REVISION: ---
#=============================================================================== #-------------------------------------------------------------------------------
# 使用举例:
#
# . 录制无声桌面视频
# ./recordscreen.sh
# 结束无声桌面视频录制
# ./recordscreen.sh off
#
# . 录制有声桌面视频
# ./recordsrceen.sh a
# 结束有声桌面视频录制
# ./recordscreen.sh a off
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# 结束视频录像函数
#------------------------------------------------------------------------------- kill_process(){
kill $(pidof ffmpeg)
} #-------------------------------------------------------------------------------
# -f oos -i /dev/dsp # 录音
# -f x11grab # 输入类型为x11grab
# -s wxga # 大小是wxga(1366x768)
# -r # 帧频是25(25张图片/秒)
# -i :0.0 # 设置输入源,本地X默认在0.
# -sameq # 与输入流一样的质量
# -vcodec msmpeg4v2 # 压缩输出的avi视频格式
#------------------------------------------------------------------------------- #默认录像不带声音,当有传参为a时录音
if [[ "$1" == "a" ]]; then
shift # 输入参数向左移 $ --> $
cmd="ffmpeg -f oss -i /dev/dsp -f x11grab -s wxga -r 25 -i :0.0 -sameq -vcodec msmpeg4v2"
acmd="aoss $cmd"
if [[ "$1" != "" ]]; then
kill_process
else
# 使用 nohup 使此命令忽略终端的退出(终端终止此命令依然运行)
nohup $acmd /tmp/out_$(date +%F_%X).avi >/dev/null >& &
fi
else
cmd="ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq -vcodec msmpeg4v2"
if [[ "$1" != "" ]]; then
kill_process
else
# 使用 nohup 使此命令忽略终端的退出(终端终止此命令依然运行)
nohup $cmd /tmp/out_$(date +%F_%X).avi >/dev/null >& &
fi
fi

〖Linux〗录像桌面视频同时录音的更多相关文章

  1. linux 远程桌面连接

    我们知道在windows下面我们可以用远程桌面连接来控制其它电脑, 但linux 远程桌面连接?不过在说怎样连接之前还是要先明确一个概念,为什么我标题没有用linux中的远程桌面连接呢, 这是因为Li ...

  2. Red Hat Enterprise Linux 6 “桌面”、“工作站”、“服务器” 版本差异比较

    Red Hat Enterprise Linux 6,共有三个版本.通过安装发现,所谓的"桌面"."工作站"."服务器"这三个版本的区别就在 ...

  3. CentOS 6.8 安装TigerVNC 实现 Linux 远程桌面并安装火狐浏览器

    CentOS 6.8 安装TigerVNC 实现 Linux 远程桌面并安装火狐浏览器 vnc客户端地址:https://files.cnblogs.com/files/MYSQLZOUQI/vnc- ...

  4. 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍

    **************************************************************************************************** ...

  5. 嵌入式Linux的web视频服务器的构建

    http://blog.sina.com.cn/s/blog_53d02d550102v8bu.html随着嵌入式处理器和开源Linux 的广泛应用,各种视频服务在嵌入式系统中逐渐发展起来. 1.引言 ...

  6. window用Xmanager4.0的Xstart连接linux远程桌面

    安装包: xorg-x11-xauth xterm.x86_64 0:253-1.el6 Execute command path:/usr/bin/xterm Xstart连接Linux远程桌面有一 ...

  7. Linux远程桌面(三)

    上一篇中的vnc配置已经很方便了,这一篇介绍更为简单的xmanager的配置,xmanager画面好一丢丢. Xmanager服务器配置             Linux远程桌面(二):vnc之xi ...

  8. Linux远程桌面(二)

    上一篇远程桌面采用的独立服务配置不适用于过多用户,这一篇采用超级Internet服务器搭建vnc服务可以解决多用户问题.  vnc之xinetd服务搭建配置 Linux远程桌面(一):vnc之独立服务 ...

  9. 远程访问Linux系统桌面

     让Windows可以远程访问Linux系统桌面 http://jingyan.baidu.com/article/d8072ac47b810eec95cefde8.html linux系统下,11款 ...

随机推荐

  1. 解决win8内置管理员无法激活此应用

    解决win8内置管理员无法激活此应用 方法/步骤   在运行中输入:“gpedit.msc”,就会启动组策略编辑器.   依次展开“计算机配置”里面的 “Windows设置” “安全设置” “本地策略 ...

  2. DevExpress SpreadSheet报表模板设置 z

    DevExpres SpreadSheetControl报表模板设置,这一个还是挺牛逼的,字段绑定直接在单元格里面设置公式(=Field("字段名")),当然直接拖更方便, 跟xt ...

  3. SRM 624 D2L3: GameOfSegments, 博弈论,Sprague–Grundy theorem,Nimber

    题目:http://community.topcoder.com/stat?c=problem_statement&pm=13204&rd=15857 这道题目须要用到博弈论中的经典理 ...

  4. Appium+python自动化5-Appium Inspector

    前言    appium Inspector从入门到放弃!反正你都打开了,那就看下为什么要放弃吧! Appium Inspector是appium自带的一个元素定位工具,上一篇介绍了如何使用uiaut ...

  5. 文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets

    clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * stream); 函数说明 ...

  6. Guava 源码分析之 Beta, GwtCompatible, GwtIncompatible, Charset, HashCode

    com.google.common.annotations.Beta /** * 表明一个公用API的未来版本是受不兼容变更或删除限制的 * 拥有这个注释标志的API不受任何兼容性保证 * */ @R ...

  7. Java集合框架2

    8. 枚举(Enum)使用示例 声明一个枚举类型的简单形式如下: 访问类型 enum 枚举类名{值1[,值2,......]}; 例8. 为枚举类添加辅助方法. package set; public ...

  8. @Logback简介

    Ceki Gülcü在Java日志领域世界知名.他创造了Log4J,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行.随后他又着手实现SLF4J这个"简单的日志前端接口 ...

  9. iOS:制作一个简易的计算器

    初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再接再厉. // // ViewController.m // 计算器 // // Created ...

  10. Linux获取当前时间

    代码(可以把clock_gettime换成time(NULL)) void getNowTime() { timespec time; clock_gettime(CLOCK_REALTIME, &a ...