可以把它当快速简易参考看,主要的功能有:

  1. 视频格式转换
  2. 音频格式转换
  3. 切割视频及音频
  4. 连接两段视频
  5. 视频音频同步
  6. 将图像系列转换成视频

这里是百鬼丸以前收集的一部分命令行视频音频编辑脚本命令,一直在自己的记事本里随时用,现在觉得新浪编辑器够方便,速度也够快,觉得把它们放在博客上更合适些。这些命令都是基于一些开源免费软件,如mencoder,ffmpeg, lame, sox,perl, ffmpeg2theora等,这些软件一般都没有图形界面,需要在命令行窗口输入执行。因此对家庭用户可能并不是太合适,需要花不少时间了解掌握。但对批量处理或者后台处理视频音频很有效。当你不想购买商业软件或者使用linux操作系统时,可以试试。

任务1: 延迟视频部分 (对avi文件有效)
mencoder -delay 0.7 -oac copy -ovc copy input.avi -ooutput.avi
解释:让视频轨比当前的音频轨落后0.7秒钟
任务2:延迟音频部分(对avi文件有效)
mencoder -oac copy -ovc copy -audio-delay -0.7 input.avi -ooutput.avi

解释:让音频轨比当前的视频轨落后0.7秒钟
任务3:切割视频轨
mencoder -ss 00:00:10 -endpos 60 -ovc copy -oac copy input.avi-o output.avi

解释:切割视频部分,从0分10秒开始,到1分10秒,时间长度为60秒。将结果存储为output.avi 
任务4:连接两段视频 (必须比特率相同)
mencoder -oac copy -ovc copy -idx -o output.avi input1.aviinput2.avi         
or(不要求bitrate相同):
ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy -acodec copy test12.avi -newvideo -newaudio

解释
任务5:将一系列静止图像和一个mp3文件转换为AVI视频文件
mencoder "mf://snap*.bmp" -mf fps=25 -oac mp3lame -lameoptsabr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcoptsvcodec=msmpeg4v2:vpass=1:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3-o leadnull
mencoder "mf://snap*.bmp" -mf fps=25 -oac mp3lame -lameoptsabr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcoptsvcodec=msmpeg4v2:vpass=2:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3-o lead.avi


解释:mono=3 代表单声道音频输出, mono=0 代表立体声音频输出。上面使用的视频编码是微软的msmpeg4,因此这个AVI文件可以直接在Windows mediaplayer中播放,不需要另外安装插件。 上面两条命令,表示两遍压缩。 为提高速度,也可以只实用第一条做单次压缩。输出视频的fps为25。
任务6:切割mp3音频文件
mplayer -ss 00:01:59 -endpos 102.5 input.mp3 -ao pcm
sox audiodump.wav result1.wav fade t 3
sox result1.wav result2.wav fade t 0 102.5 3.5
lame result2.wav -o fighting.mp3 -b 160


解释:这个过程由四条命令组成。 上面的例子中,
第一步:切割部分为1分59秒开始,到3分41.5秒结束,长度102.5秒。用户需自己计算切割部分,设定上述参数。 
第二步:用sox对音频开头3秒钟做一个淡入效果(声音逐渐增强)
第三步:用sox对音频结束3.5秒钟做一个淡出效果(声音逐渐衰减)
第四步:将lame处理好的音频重新编码成160kbps的mp3文件
其中,第二、第三步是可以省略的。 
任务7:将wma文件转换为mp3文件
mplayer input.wma -ao pcm
lame audiodump.wav -o output.mp3 -b 160


解释:一共两条命令。第一条将wma转化为wav文件,第二条再将wav转换为mp3文件,比特率为160kbps. 
任务8:将一系列图像文件转换为flv视频文件

mencoder  "mf://snap*.bmp" -mf fps=25-audiofile test.mp3 -o output.flv   -afresample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf-ovc lavc -lavcoptsvcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:vpass=1
mencoder  "mf://snap*.bmp" -mf fps=25 -ooutput.flv -audiofile test.mp3  -afresample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf-ovc lavc -lavcoptsvcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:vpass=2

解释:两遍压缩,将一系列snap001.bmp, snap002.bmp,...图像和一个mp3文件"test.mp3"转换成fps=25的录像。音频采样率设定为22050,视频画面大小为448x336,视频的比特率为260kbps。 
如果你希望更改视频中的keyframe,你可以在第一条命令执行后,手动编辑一个divx2pass.log文件。文件中"Type:1"表示关键帧keyframe (或者叫iframe), "Type:2"表示p-frame,就是只记录相邻帧变化部分的帧。 
任务9:将一系列图像文件转换为ogg视频文件

ffmpeg2theora -f image2 snap%05d.bmp -V 320 -ooutput.ogg

解释:ogg录像还是有点用的,wikipedia, wikimeida都在用。上面的视频比特率为320kbps

任务10:将一系列图像转化为与NTSCDVD兼容的mpeg2格式文件。

mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 30000/1001 -o ntscdvd.mpg "mf://snap*.bmp" -mf fps=25-audiofile test.mp3
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 30000/1001 -o ntscdvd.mpg "mf://snap*.bmp" -mf fps=25-audiofile test.mp3

解释:两遍压缩,输入图像帧率为25fps, 输出帧率为29.97fps,视频编码mpeg2, 音频编码192kbpsac3.  

任务11:将一系列图像文件转换为与PALDVD兼容的mpeg2格式视频文件

mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 25 -o paldvd.mpg "mf://snap*.bmp" -mf fps=25 -audiofiletest.mp3
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 25 -o paldvd.mpg "mf://snap*.bmp" -mf fps=25 -audiofiletest.mp3


解释:两遍压缩,输入为snap001.jpg, snap002.jpg...和test.mp3,图像系列的fps为25, 输出视频文件的fps为25. 视频编码为mpeg2, 音频编码为192kbpsac3. 
任务12:将视频文件转换为一系列图像
用ffmpeg命令如下
ffmpeg -i test.avi snap%05d.bmp
也可以用mplayer完成同样功能
mplayer video.avi -vo png -ss 00:00:10 -endpos 5.0 -vfcrop=480:360:80:60
解释:这里mplayer的例子中,还提供了额外的切割选择功能。切割的部分从0分10秒开始,到0分15秒结束,长达5秒。同时画面也被切割,切割的位置从坐标(80,60)开始,宽度480像素,高度360像素。这里坐标系以屏幕左上角为(0,0). 
任务13:将midi文件转换为mp3文件

timidity input.mid -Ow
lame -b 160 -h -k input.wav output.mp3


解释:第一条命令使用timidity将midi转换为wav文件,第二条命令用lame将wav转换为160kbpsmp3文件。 
timidity配置和安装还是比较麻烦的。还需要额外安装高品质的sf2声音字体文件,配置sf2文件也异常容易出错。总体效果还可以接受。但无法使用目前流行的vst,因此可能会被慢慢淘汰掉。 
任务14:将一系列图像转换为swf格式的flash文件(需要perl)
flv2swf  input.flv output.swf
解释:有时候可能用swf来保存视频比flv更方便。如果图像数量不多的话,可以采用swftools来进行转换 
如果图像数量很多的话,首先我们用任务8中的命令将图像转换为一个flv文件。然后我们可以用adobe的各种软件很轻松的将flv录像加入一个flash项目里,最后输出为swf. 如果你熟悉perl的话,也可以用一个perl脚本将flv文件转换成swf.CPAN(Perl公共模块库)有一个FLV::info的模块,安装后就可以使用flv2swf命令了。

任务15:将mp3文件转换为wma文件

mplayer input.mp3 -ao pcm
ffmpeg -i audiodump.wav -acodec wmav2 -ab 128000test.wma1


解释:偶尔也需要这个功能的。第一步,将mp3文件转换为wav文件,第二步用ffmpeg将wav文件转换为wma. 
如果你只需要将单幅图像如某个封面,和一个mp3合并成一个视频文件,请参看前一篇博文。 
将一幅图像和一个mp3文件合并成录像文件的小工具
参考链接

上述命令基本上是参考了mplayer的用户手册,videohelp.com的论坛帖子写的。
http://www.mplayerhq.hu/DOCS/HTML/en/encoding-guide.html
http://forum.videohelp.com/
软件主页
mencoder的Windows binary: http://oss.netfarm.it/mplayer-win32.php
ffmpeg的Windows binary: http://ffmpeg.arrozcru.org/builds/
lame的Windows binary: http://lame.sourceforge.net/links.php
sox: http://sox.sourceforge.net/
ffmpeg2theora: http://v2v.cc/~j/ffmpeg2theora/
cpan: http://search.cpan.org/dist/FLV-Info/

Active perl的Windows版本:http://www.activestate.com/activeperl/
上述软件被广泛使用,其源代码部分没有什么问题,但因为专利和版权的问题,公布其Windows的二进制可执行文件则可能触犯了一些国家的法律,目前合法性这个问题还比较模糊。

wav转aac命令 可参考
ffmpeg -i soundtrack.wav -acodec aac -ab 128kb output.m4a

15条常用的视频音频编辑脚本命令(mencoder/ffmpeg等)相关推荐

  1. 15 条实用 Linux/Unix 磁带管理命令

    导读 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中. ...

  2. linux+查看磁带信息,15 条实用 Linux/Unix 磁带管理命令

    导读 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中. ...

  3. 37条常用Linux Shell命令组合

    2019独角兽企业重金招聘Python工程师标准>>> 37条常用Linux Shell命令组合,推荐个各位网友,老手和新手们都值得收集和总结的东西.一起来看看 序号 任务 命令组合 ...

  4. 查看Linux系统架构类型的5条常用命令

    导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎 ...

  5. unity3d做会减少的血条_用Unity做血条或进度条常用脚本 - 纳金网

    本节汇宝盆为大家带来的是:用Unity做血条或进度条常用脚本 * 血条或进度条的效果 用Unity3d做血条或进度条真的很方便,GUI里scrollbar就可以轻松实现,再加上lerp一个血条或进度条 ...

  6. 爹地,我找到了!15个极好的Linux find命令示例

    原文出处: thegeekstuff   译文出处: oschina - 一刀, 和雨冰风, hylent 前阵子,我们审查了15件实事 find命令的例子(第一部分).查找命令可以做很多比只是在寻找 ...

  7. cmd脚本命令--之基本命令锦集

    转自:http://www.jb51.net/article/26994.htm 目录 第一章 批处理基础 第一节 常用批处理内部命令简介 1.REM 和 :: 2.ECHO 和 @ 3.PAUSE ...

  8. Linux01-03:(10k)文件目录,30条常用指令

    文章目录 Linux_day01 ipv4地址 服务器 Linux_day02 Linux的文件目录 Linux基本指令 一.基础指令 1.ls指令: 2.pwd命令 3.cd命令--改变目录 4.m ...

  9. Linux随笔2 - Linux的目录配置、文件元数据信息、符号链接与硬链接和常用文件和目录管理命令示例

    目录 1. Linux的目录配置与FHS(Filesystem Hierarchy Standard) 1.1 根目录(/)的意义与内容 1.1.1 FHS要求根目录中必须存在的目录 1.1.2 FH ...

最新文章

  1. php 实例说明 socket通信机制
  2. 浏览器阻挡cookies_解决WordPress登录提示”Cookies被阻止或者您的浏览器不支持”...
  3. 通过公式处理SAP Analytics Cloud里的dimension,使其符合Date格式需求
  4. Cannot add product to Opportunity in Fiori - RFC error
  5. laravel created_at 时间戳_使用 HTTP 测试测试 Laravel 中间件
  6. 11-散列1 电话聊天狂人
  7. 解决ubuntu上在androidstudio中启动emulator闪退的问题(1)
  8. Oracle修改实例名SID
  9. 写软件的需求分析全方位攻略
  10. ../bin/testCurveFitting 出现的错误以及解决办法
  11. 教师录微课及剪辑软件推荐
  12. 如何评价兰州交通大学的软件工程专业?
  13. 拳王虚拟项目公社:骚年,你想成为百年难遇的“地摊之王”吗?
  14. 日常工作计划安排工具
  15. 新办的卡为什么显示无服务器,为什么插入卡后显示无服务,有时有有时又没有?...
  16. Python编程:通过百度文字识别提取表格数据
  17. 5G的速度到底能有多快
  18. 数字经济专家高泽龙:映客更名映宇宙,元宇宙会成为映客下一个增长引擎吗?
  19. python统计单词出现次数
  20. 开发者自己搭建IM服务器所要面临的问题

热门文章

  1. ABP入门系列(6)——定义导航菜单
  2. Razor语法和Razor引擎大全
  3. 基本类型优先于装箱基本类型
  4. python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片
  5. linux shell跳板机,用shell开发跳板机
  6. mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录
  7. CCNA-第八篇-OSPF-上
  8. 【CodeForces - 144D】Missile Silos(单源最短路,枚举中间边,枚举情况可能性)
  9. 【HDU - 5672】String(尺取法)
  10. Apollo自动驾驶入门课程第②讲 — 高精地图