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. rac 10g 10.2.0.1升级到10.2.0.5具体解释

        RAC 10.2.0.1 升级到 10.2.0.5 一. 准备: Patch 包:p8202632_10205_LINUX.zip   节点数:3个节点       RAC1    RAC2  ...

  2. 服务器返回的“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0提供程序””错误解决

    未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0提供程序”

  3. tinyxml使用笔记与总结

    在TinyXML中,根据XML的各种元素来定义了一些类:        TiXmlBase:整个TinyXML模型的基类.        TiXmlAttribute:对应于XML中的元素的属性.   ...

  4. 栅栏加解密python实现(支持密钥加密)

    栅栏加解密是对较短字符串的一种处理方式.给定行数Row,依据字符串长度计算出列数Column,构成一个方阵. 加密过程:就是按列依次从上到下对明文进行排列,然后依照密钥对各行进行打乱.最后以行顺序从左 ...

  5. window.open("url?param="+paramvalue) 服务端 乱码问题解决

    window.open("url?param="+paramvalue)传递参数出现乱码,在客房端显示是正常的,可是到服务端就是乱码. 1. 利用一个js在客户端转码的函数,esc ...

  6. Android Protobuf应用及原理

    前言 之前一直忙于移动端日志SDK Trojan的开源工作,已十分稳定地运行在饿了么团队App中,集成了日志加密和解密功能.哎呀,允许我卖个狗皮膏药,不用不知道,用了就知道,从此爱不释手,Trojan ...

  7. go语言之进阶篇值语义和引用语义

    1.值语义和引用语义 示例: package main import "fmt" type Person struct { name string //名字 sex byte // ...

  8. ajax与java前后台传值及数据表查询解决一个bug的问题

    前台选中某些表,确定提交到后台,偶尔会报500错误,通过排查发现:由于后台代码写的不严谨,导致前台选中的表名如果全不存在的话就会导致后台走异常报500错误,所以决定在前台先对数据进行一次过滤,使至少有 ...

  9. 变量声明置顶规则、函数声明及函数表达式和函数的arguments属性初始化

    一.变量声明和变量赋值: if (!("a" in window)) { ; } alert(a);//a为? 你可能认为alert出来的结果是1,然后实际结果是“undefine ...

  10. python - 增强的格式化字符串format函数

    语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.form ...