首先当然是需要安装ffmpeg软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装ffmpeg:

(1)下载ffmpeg源码包,注意版本不能太高,应该与直接从源中安装的版本大抵相当最好;我刚开始下的版本比较高,编译时提示说有一个编译选项找不到,我到网上也没搜出什么结果,所以只能又降低了版本,最后使用的是ffmpeg-0.4.9-p20050906.tbz!

(2)参考文档 https://wiki.ubuntu.com/ffmpeg 进行编译安装,在编译的时候可能还会有很多错误提示,但多半是由于某些头文件找不到所致,所以直接从源中安装提供这些头文件的包即可(技巧提示,可以在源中直接搜索头文件*.h去掉后缀.h的名称*即可,一般需要安装其对应的*-dev包)!

安装完毕之后就可以进行转码操作了:

(1) 对于普通的avi视频文件,可以直接使用命令:
ffmpeg -y -i "tt.avi" -vcodec xvid -s 400x240 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 48000 -ab 128 -vol 200 -f mp4   "tt.mp4"

参数解释如下:

-y 覆盖输出文件,即如果tt.mp4文件已经存在的话,不经提示就覆盖掉了
-i "tt.avi" 输入文件名,可以自己修改路径和名字
-vcodec xvid 使用XVID编码压缩视频,不能改的
-s 400x240 输出的分辨率,注意片源一定要是16:9的不然会变形
-r 29.97 帧数 (一般用25就可以了)
-b 1500 视频数据流量,用-b xxx表示使用固定码率,数字可更改;还可以用动态码率如:-qscale 4和-qscale 6,4的质量比6高(一般用800就可以了,否则文件会很大)
-acodec aac 音频编码用AAC
-ac 2 声道数1或2
-ar 48000 声音的采样频率
-ab 128 音频数据流量,一般选择32、64、96、128
-vol 200 200%的音量,可更改(如果源文件声音很小,可以提升10到20倍(1000%~2000%),我试过,效果还行!但不能太大,200000%我也试验过,但嘈杂声太大了)
-f mp4 输出mp4格式
"tt.mp4" 输出文件名,也可以修改路径和名称

至于这些参数的值是如何得到的,那就得看你的播放设备(mp4,psp,手机等等)了!刚买播放设备的时候,里面肯定会预置有一些视频文件,通过查看这些预置文件即可得到你的播放设备所支持视频的各项参数!最简单的方法,可以到windows下用暴风影音或KMP播放器打开一个预置视频文件(KMP列出的比暴风影音还要详细),然后通过查看属性就能得到所有你需要的参数了!

(2) 对于wmv9,rm,rmvb等视频格式,ffmpeg还无法解析,但可以通过两次转换达到目的:
先用mencoder将其转换成avi格式:
mencoder tt.rmvb -ovc lavc -oac mp3lame -o tt.avi 
然后再利用(1)中的命令对该avi文件进行转换即可!

参数说明:

tt.rmvb 输入文件(可自己修改路径及名称)
-ovc lavc 视频编码格式(mp4视频)
-oac mp3lame 音频编码格式(mp3音频)
-o tt.avi 输出文件(可自己修改路径及名称)

mencoder是与mplayer一起安装的,安装了mplayer,系统肯定就会有mencoder! mencoder与ffmpeg好像都有windows版的!
mencoder的功能也很强大,至于为什么不用mencoder一次性转换到位?这个问题我也还在抽时间研究,因为它的参数使用更加复杂,我现在还没试验成功!

至于其它的视频文件格式,我用的不多,所以也没测试过,不过应该都能利用(1)中的命令进行搞定!

就这样,你喜欢的电影就能与你形影相随了!

补充一点:

我个人比较喜欢单个的视频文件,所以如果一个视频文件被分成了两个,也可以通过mencoder对其进行合并(好像仅支持avi视频格式的合并)!

假如有两个rmvb文件cd1.rmvb和cd2.rmvb,反正也是分别需要转换成avi格式的,那么转换到avi之后,就可以通过命令:
mencoder t1.avi t2.avi -ovc copy -oac copy -o all.avi 
对分割的文件进行合并,合并完之后,再将其转换成mp4即可!主要是看个人的爱好了!

参数说明:

t1.avi t2.avi 输入文件(可自己修改路径及名称,还可以更多,空格分开,注意顺序,还有这些输入文件的码流也需要一致)
-ovc copy 表示视频编码格式不变(因为是合并而不是转换,所以没必要变)
-oac copy 表示音频编码格式不变(同上)
-o tt.avi 输出文件(可自己修改路径及名称,按输入文件的顺序进行连接的)

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

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

  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

Linux下视频转换工具:转换,切割,连接,相关推荐

  1. Linux下C++开发工具介绍

    概述     就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, an ...

  2. Linux下PDF操作与转换

    Linux下PDF操作与转换 2013-07-02 09:44:58 分类: LINUX 如果说PDF是电子纸张,那么pdftk就是电子起钉器.打孔机.粘合剂.解密指环和 X光镜片.Pdftk是一个简 ...

  3. linux旋转图片,Linux下图像压缩、格式转换、缩放、旋转

    Linux下图像压缩.格式转换.缩放.旋转 1.jpegoptim:epel源 1.1.安装 # ubuntu: apt-get install jpegoptim -y # CentOS: yum ...

  4. linux服务器udp抓包工具,Linux下抓包工具tcpdump使用介绍

    点评:在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一,本文将介绍Linux下抓包工具tcpdump使用,需要的朋友可以参考下 在传统的网络分析和测试技术中,嗅探器 ...

  5. linux下 抓包工具下载,Linux下抓包工具tcpdump使用介绍

    Linux下抓包工具tcpdump使用介绍 发布时间:2012-11-30 17:11:39   作者:佚名   我要评论 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的 ...

  6. Linux下开源打包工具fpm的安装与使用(超详细)

    Linux下开源打包工具fpm的安装与使用 一.fpm概述 二.fpm的安装 1.安装ruby环境 2.安装fpm 三.fpm的使用 1.fpm常用参数 2.举例要求 3.准备目录 4.编写脚本文件 ...

  7. Linux 下的编程工具

    Linux 下的编程工具 BBS水木清华站∶精华区 发信人: Kongming (没日没夜...), 信区: Linux         标  题: Re: 如何学习linux下编程?  发信站: B ...

  8. linux查看某进程的连接,linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  9. Linux 下的 pstack 工具安装及简单应用

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  10. Linux下端口映射工具

    Linux下端口映射工具rinetd Linux下简单好用的工具rinetd,实现端口映射/转发/重定向 软件下载 wget http://www.boutell.com/rinetd/http/ri ...

最新文章

  1. ubuntu下配置交叉编译环境
  2. 171. Leetcode 406. 根据身高重建队列 (贪心算法-两个维度权衡题目)
  3. SAP KKBC_ORD报表中Plan和Target的区别
  4. LINQ系列:LINQ to SQL Join连接
  5. Linux vim显示/不显示行号
  6. php mysql扩展 5.4_编译php5.4及安装后添加扩展
  7. excel怎么设置打印区域_淘宝卖家想要打印快递单怎么设置
  8. Pygame实战:还在玩纸飞机?不—现在家里的小孩子都在玩儿飞机大冒险~
  9. classpath根目录
  10. AHU HuffmanTree编码数据结构实验
  11. 万年历—Java计算感恩节是哪天?感恩节是哪一天?2017年感恩节是哪一天?
  12. RefineDNet个人学习笔记
  13. 2020商业风口复盘:巨变下的重构与新生
  14. C++ std::string::find()函数(在字符串中查找内容)
  15. 基于opencv的BackgroundSubtractorMOG2和BackgroundSubtractorKNN通过背景减除来实现目标追踪
  16. obv代码matlab,通达信精进终极obv指标公式,通达信obv指标公式源码
  17. VMware Workstation 不可恢复错误:(vmui)
  18. el vue 手机号_Vue 正则表达式验证邮箱和手机号码
  19. commonjs 和esm
  20. WOL网络唤醒在微星主板上开启 - ubuntu 20.04

热门文章

  1. java根据ip反查地理位置的实现方法
  2. 创业基础-乐训课堂-第四章 创业风险及识别与管理-习题
  3. 点盾云播放视频没声音了怎么办?
  4. 【计算机管理——运筹学】——预测决策
  5. TX1储存空间装满不能正常进入系统问题的解决
  6. 你们公司要求你写过如软著和专利吗?
  7. bmap、百度地图自定义画矩形
  8. 带你一起用 ElasticStack 搞定 Wireshark 抓包数据可视化
  9. 全国一级计算机考证报名网站
  10. 开发Windows Mobile今日插件 -- 内存电量,桌面便笺,桌面记单词