当然先安装了 gentoo 下一条命令搞定

emerge  ffmpeg

格式转换 (将file.avi 转换成output.flv)

ffmpeg -i  file.avi  output.flv

-i 表示输入文件

:现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi

两个命令                     ( video2.avi 是中间文件 ,用完可删)

ffmpeg -i video.avi -vcodec copy -an video2.avi  

ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi

-i 表示输入文件

-vcodec copy 表示 force video codec ('copy' to copy stream) 这个不知怎么译 ,估计是直接copy

-acodec copy   这个说的应该是音频了   跟上面一样

-an : 表示  disable audio  估计是audio no 之类的缩写   表示去掉video.avi 原有的音频

方法2 好像可以直接指定两个输入文件 ,

ffmpeg -i /tmp/a.wav  -i /tmp/a.avi /tmp/a.avi   两个文件 的顺序很重

从视频里提取声音(声音与视频的分离)

ffmpeg  -i 人生若只如初见.flv  -vn r.mp3  从flv 文件 中提取声音并保存为mp3 格式

-vn : 表示忽略视频 估计是video no 之类的缩写

ffmpeg  -i 人生若只如初见.flv  -an  r.flv   只留视频不留声音

-an : 表示忽略声音估计是audio
no 之类的缩写

从视频里提取图片( )

ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg       

 -ss 第8秒处 截一图

压缩mp3 文件

如果你觉得mp3 文件 有点大,想变小一点那么可以通过-ab 选项改变音频的比特率(bitrate)

ffmpeg -i input.mp3 -ab 128 output.mp3   //这里将比特率设为128

你可以用file 命令查看一下源文件 的信息

z.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo

其中的192 kbps 就是这个东西

mp3中比特率的含义是:在压缩音频文件至mp3时,由压缩软件所确定数码文件在播放时每秒传送给播放器大小,其单位是:千位/秒;英文的含义是:kbps - = kilobits per second。现在mp3文件的最高数位率是320 kbps。这样的文件体积很大,每分钟的音乐超过两兆字节。如果采用可变比特率(VBR)编码来生成mp3文件,获得与320 kbps相当音质,文件的体积会缩小25~50%。请注意:播放时间相同,而歌曲不同,所获的压缩mp3文件的一般不相同,这是因为VBR编码所生成的mp3文件的大小不仅仅取决于播放时间的长度,还取决于源音频文件的其它因素。

录音(要有可用的麦克风,并且如果用alsa
的话,好像得安alsa-oss,重启)

ffmpeg  -f oss -i /dev/dsp   out.avi  (should  hava oss or alsa-oss)

ffmpeg   -f  alsa -ac 2 -i hw:0,0  out.avi   (should )

ffmpeg   -f alsa -ac 2 -i pulse  (should hava PulseAudio)

oss 是linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss 用到的麦克的设备吧,可以这样理解

屏幕录像

ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi

ffmpeg -f x11grab  -s 320x240  -r 10 -i :0.0+100+200 wheer.avi

:0:0 表示屏幕(个人理解,因为系统变量$DISPLAY值就是:0.0)  而100,表示距左端100象素,200表示距上端200

-s 设置窗口大小

 -r 10 好像是设置频率,不懂

ffmpeg -f x11grab -s xga  
-qscale 5   -r 10 -i :0.0+0+0 wheer.avi

-qscale 8 设定画面质量,值 越小越好

屏幕录像,同时录音

ffmpeg -f oss -i /dev/dsp        -f x11grab -r 30 -s 1024x768 -i :0.0  output.mkv

ffmpeg   -ac 2 -f oss  -i  /dev/dsp   -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv

看到这,你会发现这个命令有多强大,

如果我屏幕上打开了一个窗口,我只想录这个窗口的内容,如何确定这个窗口的坐标位置呢

可以用另外一个命令

xwininfo 输入这个命令后,用鼠标点选目标窗口,

就会出现目标窗口的坐标,宽高等一系列信息

Absolute upper-left X:  276
  Absolute upper-left Y:  57
  Relative upper-left X:  2
  Relative upper-left Y:  23
  Width: 742
  Height: 499
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +276+57  -262+57  -262-244  +276-244
  -geometry 80x24+274+34 看到这一行了没 ()

比如根据上面的信息

ffmpeg -f oss  -i  /dev/dsp      -f  x11grab -r 30  -s 1280x752 -i :0.0+0+23  output.avi
Another thing you can change is the video frame rate (FPS). In the example above we used -r 30 which means capture at 30 FPS. You can change this value to whatever frame rate you want.

这个 -r 30 应该是每秒钟取样几次,估计是一秒截三十次屏,

切头去尾

ffmpeg -ss 00:00:10 -t 00:01:22 -i 五月天-突然好想你.mp3  output.mp3

只要 从第10秒开始截取,共截取1:22时长的内容

视频文件的连接,如两个flv 文件 连接成一

好像必须先将文件 转成mpg ,dv 等格式的文件后才能进行连接

  • 连接复数的AVI影片档之范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PS, DV格式亦可连接))
ffmpeg -i input1.avi -sameq inputfile_01.mpg -r 20

ffmpeg -i input2.avi -sameq inputfile_02.mpg  -r 20

cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg

ffmpeg -i inputfile_all.mpg -sameq outputfile.avi

上面将  input1.avi    input2.avi 合并成outputfile.avi

-sameq  表示  相同的质量(可能指的是画面,不太清楚)

 -r 指频率

=====================================================================下面是wiki 上给的几个例子

参数

FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编解码器的叙述。此外,参数明细可用 ffmpeg -h 显示;编解码器名称等明细可用 ffmpeg -formats 显示。

下列为较常使用的参数。

[编辑] 主要参数

  • -i 设定输入档名。
  • -f 设定输出格式。
  • -y 若输出档案已存在时则覆盖档案。
  • -fs 超过指定的档案大小时则结束转换。
  • -ss 从指定时间开始转换。
  • -title 设定标题。
  • -timestamp 设定时间戳。
  • -vsync 增减Frame使影音同步。

[编辑] 影像参数

  • -b 设定影像流量,默认为200Kbit/秒。( 单位请参照下方注意事项
  • -r 设定FrameRate值,默认为25。
  • -s 设定画面的宽与高。
  • -aspect 设定画面的比例。
  • -vn 不处理影像,于仅针对声音做处理时使用。
  • -vcodec 设定影像影像编解码器,未设定时则使用与输入档案相同之编解码器。

[编辑] 声音参数

  • -ab 设定每Channel(最近的SVN版为所有Channel的总合)的流量。( 单位请参照下方注意事项
  • -ar 设定采样率。
  • -ac 设定声音的Channel数。
  • -acodec 设定声音编解码器,未设定时与影像相同,使用与输入档案相同之编解码器。
  • -an 不处理声音,于仅针对影像做处理时使用。
  • -vol 设定音量大小,256为标准音量。(要设定成两倍音量时则输入512,依此类推。)

[编辑] 注意事项

  • 以-b及ab参数设定流量时,根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同。(可用ffmpeg -h显示说明来确认单位。)
例如,单位为bits/sec的情况时,欲指定流量64kbps时需输入‘ -ab 64k ’;单位为kbits/sec的情况时则需输入‘ -ab 64 ’。
  • 以-acodec及-vcodec所指定的编解码器名称,会根据使用的ffmpeg版本而有所不同。例如使用AAC编解码器时,会有输入aac与libfaac的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats确认输入的编解码器是否能运作。

[编辑] 范例

  • 将MPEG-1影片转换成MPEG-4格式之范例
ffmpeg -i inputfile.mpg -f mp4 -acodec libfaac -vcodec mpeg4 -b 256k -ab 64k outputfile.mp4
  • 将MP3声音转换成MPEG-4格式之范例
ffmpeg -i inputfile.mp3 -f mp4 -acodec libaac -vn -ab 64k outputfile.mp4
  • 将DVD的VOB档转换成VideoCD格式的MPEG-1档之范例
ffmpeg -i inputfile.vob -f mpeg -acodec mp2 -vcodec mpeg1video -s 352x240 -b 1152k -ab 128k outputfile.mpg
  • 将AVI影片转换成H.264格式的M4V档之范例
  • ffmpeg -i inputfile.avi -f mp4 -acodec libfaac -vcodec libx264 -b 512k -ab 320k outputfile.m4v
  • 将任何影片转换成东芝REGZA可辨识的MPEG2格式之范例
  • ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg
  • 连接复数的AVI影片档之范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PS
DV格式亦可连接)、

ffmpeg -i input1.avi -sameq inputfile_01.mpg

ffmpeg -i input2.avi -sameq inputfile_02.mpg

cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg

ffmpeg -i inputfile_all.mpg -sameq outputfile.avi

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

http://ffmpeg.org/ffmpeg-doc.html

http://ubuntuforums.org/showthread.php?t=1392026

同时搞明白的一些问题

在alsa 体系中声卡(也可能是麦克风,)叫hw:0,0 而在oss 体系中叫/dev/dsp (用词可能不太专业)  Linux在安装了声卡后,会有一些设备文件生

成。

   采集数字样本的

/dev/dsp文件,针对混音器的

/dev/mixer文件,用于音序器的

/dev/sequencer,

/dev/audio文件一个

基于兼容性考虑的声音设备文件。只要向

/dev/audio中输入

wav文件就能发出声音。而对

/dev/dsp文件读取就能得到

WAV文件格式的声音文

件。

ffmpeg 命令的使用的更多相关文章

  1. 【Andorid】短视频拍摄SDK——Vitamio Recorder 2.0 发布(支持ffmpeg命令行)

    简介 VCamera SDK Android 版(短视频拍摄SDK)是炫一下(北京)科技有限公司推出的软件开发工具包,为Android开发者提供简单.快捷的接口,帮助开发者实现Android平台上的短 ...

  2. java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流

    前言: 之前已经对FFmpeg命令进行了封装http://blog.csdn.net/eguid_1/article/details/51787646,但是当时没有考虑到扩展性,所以总体设计不是太好, ...

  3. 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现

    上一篇文章简单介绍了java如何调用ffmpeg的命令:http://blog.csdn.net/eguid_1/article/details/51777716 上上一篇介绍了nginx-rtmp服 ...

  4. 搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.环境搭建 1.安装ffmpeg 下载对应系统的ffmpeg安装包,个人采用windows平台进行开发,所以安装了windo ...

  5. FFmpeg命令行工具学习(一):查看媒体文件头信息工具ffprobe

    一.简述 ffprobe是ffmpeg命令行工具中相对简单的,此命令是用来查看媒体文件格式的工具. 二.命令格式 在命令行中输入如下格式的命令: ffprobe [文件名] 三.使用ffprobe查看 ...

  6. 使用 FFMPEG 命令为视频嵌入字幕

    有些电影的视频与字幕是分离的,如果在视频中嵌入字幕,那么观看起来会更方便一些,不必在播放前额外去加载字幕文件. 在 Linux 中,可以使用 ffmpeg 命令实现上述功能. ffmpeg -i in ...

  7. FFmpeg命令详解

    命令格式 功能 FFmpeg命令是在ffmpeg.exe可执行文件环境下执行,ffmpeg.exe用于音视频的转码,加水印,去水印,视频剪切,提取音频,提取视频,码率控制等等功能. 最简单的命令 ff ...

  8. FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑

    FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...

  9. 流媒体中ffmpeg 命令的使用

    在linux系统中,使用到的有关流媒体音视频流进行处理的ffmpeg 命令的常用的命令己命令对应的参数如下:记录一下: 1.分离视频音频流 ffmpeg -i input_file -vcodec c ...

  10. 音视频】5.ffmpeg命令分类与使用

    GT其实平时也有一些处理音视频的个人或者亲人需求,熟练使用ffmpeg之后也不要借助图示化软件,一个命令基本可以搞定 G: 熟练使用ffmpeg命令!T :不要死记硬背,看一遍,自己找下规律,敲一遍, ...

随机推荐

  1. List根据多个字段分组

    List<ClassEntity> distinctClass = classEntities.stream().collect(Collectors.collectingAndThen( ...

  2. jmeter 分布式配置(含参数化问题)

    这次用的是 jmeter 5.1.1  jdk8 调度机: 修改bin目录下jmeter.properties文件 第258行 remote_hosts=192.168.87.34:1856,192. ...

  3. [AI] 深度数学 - Bayes

    数学似宇宙,韭菜只关心其中实用的部分. scikit-learn (sklearn) 官方文档中文版 scikit-learn Machine Learning in Python 一个新颖的onli ...

  4. shell脚本批量执行命令----必需判断上一步执行结果--没有捷径

    # 注意:shell脚本批量执行命令,不能只写一个函数,然后把所有命令复制进去,之前试过这样是不行的.必须要有一个判断命令执行成功与否的语句 # 简单的命令可以不加结果判断符号,但是遇到解压包.sed ...

  5. css 命名规范参考[转]

    命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...

  6. 《C语言程序设计》学习笔记(二)

    第八章 函数 函数的基本概念 定义:函数由函数名.参数和函数体组成. 函数定义的一般形式: 类型说明符 函数名(形式参数声明) { [说明与定义部分] 语句: } 说明: 1.类型说明符用来说明函数的 ...

  7. Haar-like特征来龙去脉

    Haar-like特征来龙去脉 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ haar-like特征概念 haar-like特征是是计算机视觉领域一种常用的 ...

  8. ansible介绍、安装与配置

    一.ansible简介 (1)简介: Ansible是近年越来越火的一款自动化运维工具,其主要的功能是帮助运维实现IT工作的自动化,降低人为操作失误.提高业务自动化率,常用于软件部署.配置自动化.管理 ...

  9. 路由 router-view

    路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容.Home按钮 => home 内容, ...

  10. Maven打包成可执行JAR(带依赖包)

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...