其实wav, mp3, aac, ac3, ogg之间的互相转换是相似的:
- 转换成mp4
mp4 to mp3:
- 把AVI里的音频保存成mp3文件
flac to wav:
ffmpeg -i Lt.wav -i Rt.wav -map 0,0 -map 1,1 -acodec copy Stereo.mov
解释:
ffmpeg -i input.wav -acodec libfaac output.aac
注:
ffmpeg -i input.flac output.flac
“-i sdcard/input.mp4 -f avi sdcard/output.avi”
Active perl的Windows版本:
至于其他参数选项,视需求使用。
-vcodec
后面不一定要跟copy,可以改为h264之类的视频编码,但是这样会增加转换的时间
aac to wav:
ffmpeg -i video_origine.avi -s 320×240 -vcodec msmpeg4
video_finale.avi
lame audiodump.wav -o output.mp3 -b 160
mp4 to wav:
9.多wav合并
任务2: 延迟音频部分(对avi文件有效)
ffmpeg -i $ID.webm -ac 1 -ar 16000 $ID.wav
ffmpeg.exe -i test.3gp -f m4v test.m4v
解释:两遍压缩,输入图像帧率为25fps,
输出帧率为29.97fps,视频编码mpeg2, 音频编码192kbpsac3.
libmp3lame: 使用libmp3lame编码mp3
ffmpeg.exe -i test.3gp -vcodec copy -f m4v test.m4v
-vn: 不做视频记录
ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176×144
-acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp
第二步:用sox对音频开头3秒钟做一个淡入效果(声音逐渐增强)
wav to aac:
- AVI转FLV
timidity input.mid -Ow
ffmpeg -i input.aac -libvorbis output.ogg
ffmpeg -y -i test.wmv -ac 1 -acodec libamr_nb -ar 8000 -ab 12200 -s
176×144 -b 128 -r 15 test.3gp
参数解释如下:
-ar: sample rate 设置音频采样率
“-i 输入视频 -f 格式 输出视频”
第四步:将lame处理好的音频重新编码成160kbps的mp3文件
-ab: bitrate 设置音频码率
例:
ffmpeg -i test.avi snap%05d.bmp
-ac: channel 设置通道3, 默认为1
输出视频的格式不为.mp4的原因,好像是ffmpeg的版权原因,只有MP4的解码库,没有编码库
ffmpeg -i $ID.webm -acodec libmp3lame -ac 1 -ar 16000 $ID.mp3
之所以添加了 -vcodec 和-s 是因为原来转换出来,后半部分视频变模糊.
ffmpeg的Windows binary:
-acodec: 使用codec编解码
- 完全无损的中间视频格式
mplayer input.wma -ao pcm
输出是mp3: -acodec libmp3lame
ffmpeg.exe -i TF2_Trailer2.f4v -vcodec copy -acodec copy -f asf 1.asf
任务1: 延迟视频部分 (对avi文件有效)
版权声明:本文为博主原创文章,未经允许不得转载。
ffmpeg -i video_origine.avi -acodec libmp3lame -ab 56K -ar 44100 -b
200K -r 15 -s 320×240 -f flv video_finale.flv
输出是ac3: -acodec ac3
或
解释:这里mplayer的例子中,还提供了额外的切割选择功能。切割的部分从0分10秒开始,到0分15秒结束,长达5秒。同时画面也被切割,切割的位置从坐标(80,60)开始,宽度480像素,高度360像素。这里坐标系以屏幕左上角为(0,0).
wav to ac3:
ffmpeg -i source_video.avi -vn -ar 44100 -acodec libmp3lame -ac 2 -ab
192K -f mp3 sound.mp3
flv2swf input.flv output.swf
aac to ogg:
-s 为指定视频分辨率
输出是ogg: -acodec libvorbis
例:
webm to wav:
(2016,8,11修改,音频视频顺序是可以变的,现在我用的命令行为
wav to ogg:
ffmpeg -i t_needss_e309_excl_hd.mov -vcodec huffyuv -acodec
pcm_s16le 2.avi
ffmpeg -i input.wav -acodec libvorbis output.ogg
“ffmpeg -i 音频 -i 视频 输出视频”
ffmpeg -i audio.aac audio.wav
ffmpeg -i source_video.avi -b 300K -s 320×240 -vcodec xvid -ab 32K
-ar 24000 -acodec aac final_video.mp4
ffmpeg -i $ID.mp4 -ac 1 -ar 16000 $ID.wav
- 转换成3gp
解释:mono=3 代表单声道音频输出, mono=0
代表立体声音频输出。上面使用的视频编码是微软的msmpeg4,因此这个AVI文件可以直接在Windows
mediaplayer中播放,不需要另外安装插件。 上面两条命令,表示两遍压缩。
为提高速度,也可以只实用第一条做单次压缩。输出视频的fps为25。
ffmpeg -i audio.aac -acodec ac3 audio.ac3
或
mencoder -oac copy -ovc copy -audio-delay -0.7 input.avi -ooutput.avi
ffmpeg -i input.wav -acodec ac3 output.ac3
)
解释:两遍压缩,将一系列snap001.bmp,
snap002.bmp,…图像和一个mp3文件”test.mp3″转换成fps=25的录像。音频采样率设定为22050,视频画面大小为448×336,视频的比特率为260kbps。
ffmpeg -i input.wav -vn -ar 44100 -ac 2 -ab 192k -f mp3 output.mp3
ffmpeg -i audio.wav -acodec libmp3lame audio.mp3
-i sdcard/iutput.mp4 -i sdcard/handclap.wav -vcodec copy -s 768×1024
-f avi sdcard/output.avi
ffmpeg -i audio.aac -acodec libmp3lame -ac 2 -ab 160 audio.mp3
“ffmpeg -i sdcard/soundtouch.wav -i sdcard/input.mp4
sdcard/output.avi”
解释:ogg录像还是有点用的,wikipedia,
wikimeida都在用。上面的视频比特率为320kbps
ffmpeg -i input.wav output.flac
- 从3gp里dump出m4v(直接拷贝 不重新编码)
可以把它当快速简易参考看,主要的功能有:
ffmpeg -i $ID.mp4 -acodec libmp3lame -ac 1 -ar 16000 $ID.mp3
ffmpeg -i $ID.mp4 -vn -ab 128k -ar 16000 -y $ID.mp3
- 转码 把.f4v转码成.asf
任务13: 将midi文件转换为mp3文件
ffmpeg是Linux中转换音频视频文件的常用工具。
2.AVI转成divx编码mpeg4的AVI
输出是aac: -acodec libfaac
任务4: 连接两段视频 (必须比特率相同)
wav to mp3:
解释:一共两条命令。第一条将wma转化为wav文件,第二条再将wav转换为mp3文件,比特率为160kbps.
-f:
强制使用某种输出格式,通常输入文件的格式是自动检测的,输出文件的格式根据后缀猜测,所以大多数情况不需要设置
-f
wav to flac:
-y: 覆盖输出文件
mencoder -delay 0.7 -oac copy -ovc copy input.avi -ooutput.avi
webm to mp3:
lame -b 160 -h -k input.wav output.mp3
任务7: 将wma文件转换为mp3文件
-i: 表示输入的音频或视频
用ffmpeg命令如下
aac to ac3:
任务10: 将一系列图像转化为与NTSCDVD兼容的mpeg2格式文件。
aac to mp3:
如果图像数量很多的话,首先我们用任务8中的命令将图像转换为一个flv文件。然后我们可以用adobe的各种软件很轻松的将flv录像加入一个flash项目里,最后输出为swf. 如果你熟悉perl的话,也可以用一个perl脚本将flv文件转换成swf.CPAN(Perl公共模块库)有一个FLV::info的模块,安装后就可以使用flv2swf命令了。
cpan:
mencoder -oac copy -ovc copy -idx -o output.avi
input1.aviinput2.avi
参考链接
第三步:用sox对音频结束3.5秒钟做一个淡出效果(声音逐渐衰减)
sox result1.wav result2.wav fade t 0 102.5 3.5
-y 覆盖输出文件,即如果tt.mp4文件已经存在的话,不经提示就覆盖掉了
-i “tt.avi” 输入文件名,可以自己修改路径和名字
-vcodec xvid 使用XVID编码压缩视频,不能改的
-s 400×240 输出的分辨率,注意片源一定要是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列出的比暴风影音还要详细),然后通过查看属性就能得到所有你需要的参数了!
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_www.710.com ,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
如果你只需要将单幅图像如某个封面,和一个mp3合并成一个视频文件,请参看前一篇博文。
其中,第二、第三步是可以省略的。
软件主页
解释:这个过程由四条命令组成。 上面的例子中,
解释:偶尔也需要这个功能的。第一步,将mp3文件转换为wav文件,第二步用ffmpeg将wav文件转换为wma.
mencoder是与mplayer一起安装的,安装了mplayer,系统肯定就会有mencoder!
mencoder与ffmpeg好像都有windows版的!
mencoder的功能也很强大,至于为什么不用mencoder一次性转换到位?这个问题我也还在抽时间研究,因为它的参数使用更加复杂,我现在还没试验成功!
任务11: 将一系列图像文件转换为与PALDVD兼容的mpeg2格式视频文件
tt.rmvb 输入文件(可自己修改路径及名称)
-ovc lavc 视频编码格式(mp4视频)
-oac mp3lame 音频编码格式(mp3音频)
-o tt.avi 输出文件(可自己修改路径及名称)
任务5: 将一系列静止图像和一个mp3文件转换为AVI视频文件
(1) 对于普通的avi视频文件,可以直接使用命令:
ffmpeg -y -i “tt.avi” -vcodec xvid -s 400×240 -r 29.97 -b 1500 -acodec
aac -ac 2 -ar 48000 -ab 128 -vol 200 -f mp4 “tt.mp4”
公海710登录网址 ,就这样,你喜欢的电影就能与你形影相随了!
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
t1.avi t2.avi
输入文件(可自己修改路径及名称,还可以更多,空格分开,注意顺序,还有这些输入文件的码流也需要一致)
-ovc copy 表示视频编码格式不变(因为是合并而不是转换,所以没必要变)
-oac copy 表示音频编码格式不变(同上)
-o tt.avi 输出文件(可自己修改路径及名称,按输入文件的顺序进行连接的)
上述命令基本上是参考了mplayer的用户手册,videohelp.com的论坛帖子写的。
mplayer -ss 00:01:59 -endpos 102.5 input.mp3 -ao pcm
ffmpeg2theora -f image2 snap%05d.bmp -V 320 -ooutput.ogg
- 视频格式转换
- 音频格式转换
- 切割视频及音频
- 连接两段视频
- 视频音频同步
- 将图像系列转换成视频
安装完毕之后就可以进行转码操作了:
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
将一幅图像和一个mp3文件合并成录像文件的小工具
解释:让音频轨比当前的视频轨落后0.7秒钟
任务6: 切割mp3音频文件
这里是百鬼丸以前收集的一部分命令行视频音频编辑脚本命令,一直在自己的记事本里随时用,现在觉得新浪编辑器够方便,速度也够快,觉得把它们放在博客上更合适些。这些命令都是基于一些开源免费软件,如mencoder,ffmpeg,
lame, sox,perl,
ffmpeg2theora等,这些软件一般都没有图形界面,需要在命令行窗口输入执行。因此对家庭用户可能并不是太合适,需要花不少时间了解掌握。但对批量处理或者后台处理视频音频很有效。当你不想购买商业软件或者使用linux操作系统时,可以试试。
第一步:切割部分为1分59秒开始,到3分41.5秒结束,长度102.5秒。用户需自己计算切割部分,设定上述参数。
我个人比较喜欢单个的视频文件,所以如果一个视频文件被分成了两个,也可以通过mencoder对其进行合并(好像仅支持avi视频格式的合并)!
上述软件被广泛使用,其源代码部分没有什么问题,但因为专利和版权的问题,公布其Windows的二进制可执行文件则可能触犯了一些国家的法律,目前合法性这个问题还比较模糊。
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
解释:两遍压缩,输入为snap001.jpg,
snap002.jpg…和test.mp3,图像系列的fps为25, 输出视频文件的fps为25.
视频编码为mpeg2, 音频编码为192kbpsac3.
ffmpeg -i soundtrack.wav -acodec aac -ab 128kb output.m4a
任务14: 将一系列图像转换为swf格式的flash文件(需要perl)
mplayer input.mp3 -ao pcm
任务8: 将一系列图像文件转换为flv视频文件
or(不要求bitrate相同):
假如有两个rmvb文件cd1.rmvb和cd2.rmvb,反正也是分别需要转换成avi格式的,那么转换到avi之后,就可以通过命令:
mencoder t1.avi t2.avi -ovc copy -oac copy -o all.avi
对分割的文件进行合并,合并完之后,再将其转换成mp4即可!主要是看个人的爱好了!
任务12: 将视频文件转换为一系列图像
(1)下载ffmpeg源码包,注意版本不能太高,应该与直接从源中安装的版本大抵相当最好;我刚开始下的版本比较高,编译时提示说有一个编译选项找不到,我到网上也没搜出什么结果,所以只能又降低了版本,最后使用的是ffmpeg-0.4.9-p20050906.tbz!
mencoder的Windows binary:
15条常用的视频音频编辑脚本命令(mencoder/ffmpeg等)
(2)
对于wmv9,rm,rmvb等视频格式,ffmpeg还无法解析,但可以通过两次转换达到目的:
先用mencoder将其转换成avi格式:
mencoder tt.rmvb -ovc lavc -oac mp3lame -o tt.avi
然后再利用(1)中的命令对该avi文件进行转换即可!
(2)参考文档 进行编译安装,在编译的时候可能还会有很多错误提示,但多半是由于某些头文件找不到所致,所以直接从源中安装提供这些头文件的包即可(技巧提示,可以在源中直接搜索头文件*.h去掉后缀.h的名称*即可,一般需要安装其对应的*-dev包)!
sox:
参数说明:
至于其它的视频文件格式,我用的不多,所以也没测试过,不过应该都能利用(1)中的命令进行搞定!
补充一点:
mplayer video.avi -vo png -ss 00:00:10 -endpos 5.0 -vfcrop=480:360:80:60
sox audiodump.wav result1.wav fade t 3
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
ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy
-acodec copy test12.avi -newvideo -newaudio
ffmpeg2theora:
任务15: 将mp3文件转换为wma文件
wav转aac命令 可参考
解释:切割视频部分,从0分10秒开始,到1分10秒,时间长度为60秒。将结果存储为output.avi
lame result2.wav -o fighting.mp3 -b 160
解释:有时候可能用swf来保存视频比flv更方便。如果图像数量不多的话,可以采用swftools来进行转换
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
timidity配置和安装还是比较麻烦的。还需要额外安装高品质的sf2声音字体文件,配置sf2文件也异常容易出错。总体效果还可以接受。但无法使用目前流行的vst,因此可能会被慢慢淘汰掉。
首先当然是需要安装ffmpeg软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装ffmpeg:
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
解释:让视频轨比当前的音频轨落后0.7秒钟
mencoder -ss 00:00:10 -endpos 60 -ovc copy -oac copy input.avi-o
output.avi
也可以用mplayer完成同样功能
lame的Windows binary:
解释:第一条命令使用timidity将midi转换为wav文件,第二条命令用lame将wav转换为160kbpsmp3文件。
任务9: 将一系列图像文件转换为ogg视频文件
参数说明:
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
如果你希望更改视频中的keyframe,你可以在第一条命令执行后,手动编辑一个divx2pass.log文件。文件中”Type:1″表示关键帧keyframe
(或者叫iframe), “Type:2″表示p-frame,就是只记录相邻帧变化部分的帧。
任务3:切割视频轨
ffmpeg -i audiodump.wav -acodec wmav2 -ab 128000test.wma1