mencoder 音视频格式转换

参考:mencoder_百度百科mencoder 是一款命令行方式的视频处理软件,是Mplayer自带的编码工具(Mplayer是Linux下的播放器,开源,支持几乎所有视频格式的播放,有windows和Mac版本)。https://baike.baidu.com/item/mencoder/9960724?fr=aladdin

例子: 将movie.wmv 转成 movie.avi 

mencoder movie.wmv -o movie.avi -ovc lavc -oac lavc

参数说明:

movie.wmv   原始文件

-o <filename>    输出文件 (output )

-ovc <video codec> OVC 输出 后的视频格式 ,ovc :output video ..

-oac <audio codec>   输出后的音频格式

或许你会说记不住 lavc 等音频格式,视频格式,你根本不用去记

 当你的选项中缺少-oac 时它会提示

$ mencoder a.mpg -o b.avi  
MEncoder SVN-r29796-4.4.3 (C) 2000-2009 MPlayer Team  
成功:格式:0  数据:0x0 - 0xca9800  
检测到 MPEG-PS 文件格式。  
VIDEO:  MPEG1  320x240  (aspect 1)  23.976 fps    0.0 kbps ( 0.0 kbyte/s)  
[V] 文件格式:2  fourcc:0x10000001  大小:320x240  帧速:23.976  帧时间:=0.0417  
没有选择音频编码器(-oac)。请选择一个编码器(参见 -oac help)或者使用 -nosound。  
正在退出..  
​

这个时候你只需输入

mencoder -oac help

就会给出如下提示

$ mencoder -oac help  
MEncoder SVN-r29796-4.4.3 (C) 2000-2009 MPlayer Team  
Available codecs:  
   copy     - frame copy, without re-encoding (useful for AC3)  
   pcm      - uncompressed PCM audio  
   mp3lame  - cbr/abr/vbr MP3 using libmp3lame  
   lavc     - FFmpeg audio encoder (MP2, AC3, ...)  
   twolame  - Twolame MP2 audio encoder  
   faac     - FAAC AAC audio encoder  
copy 表示直接把源视频中的音频部分不经解码直接copy 到新文件   
mp3lame  :表示mp3 编码音频  
​

任务1:  延迟视频 部分 (对avi文件有效)

mencoder -delay 0.7 -oac copy -ovc copy input.avi -o output.avi

解释 :让视频轨比当前的音频轨落后0.7秒钟

任务2:   延迟音频 部分(对avi文件有效)

mencoder -oac copy -ovc copy -audio-delay -0.7 input.avi -o output.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.avi input2.avi

解释 :

任务5:   将一系列 静止图像和一个mp3文件转换为AVI视频文件

mencoder "mf://snap*.bmp" -mf fps=25 -oac mp3lame -lameopts abr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcopts vcodec=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 -lameopts abr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcopts vcodec=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 media player中播放,不需要另外安装插件。 上面两条命令,表示两遍压缩。 为提高速度,也可以只实用第一条做单次压缩。 输出视频的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   -af resample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf -ovc lavc -lavcopts vcodec=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 -o output.flv -audiofile test.mp3  -af resample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf -ovc lavc -lavcopts vcodec=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 (或者叫i frame), "Type:2"表示p-frame,就是只记录相邻帧变化部分的帧。 

任务9:   将一系列 图像文件转换为ogg视频文件

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

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

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

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=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 -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=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, 音频编码192kbps ac3.  

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

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=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 -audiofile test.mp3

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=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 -audiofile test.mp3

解释 :两遍压缩,输入为snap001.jpg, snap002.jpg... 和test.mp3,图像系列的fps为25, 输出视频文件的fps为25. 视频编码为mpeg2, 音频编码为192kbps ac3. 

任务12:   将视频 文件转换为一系列图像

用ffmpeg命令如下

ffmpeg -i test.avi snap%05d.bmp

也可以用mplayer完成同样功能

mplayer video.avi -vo png -ss 00:00:10 -endpos 5.0 -vf crop=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转换为160kbps mp3文件。 

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 128000 test.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

其它例子:

例一:
mencoder basket.rm -ovc lavc -oac lavc -o basket.avi
把basket.rm文件转换为basket.avi文件,其中, 视频 转换为mp4格式,音频转换为
mp2格式。"-o basket.avi"定义转换成的文件名为"basket.avi","-ovc lavc"表示
用默认的mp4格式编码图象,"-oac lavc"表示用默认的mp2格式编码声音。

例二:
mencoder basket.rm -ovc lavc -oac mp3lame -o basket.avi
"oac mp3lame"表示用mp3格式编码声音。

例三:
mencoder basket.rm -ovc lavc -oac mp3lame -o basket.avi -ss 5:00 -endpos
8:00
"-ss 5:00 -endpos 8:00"告诉mencoder仅仅转换从5分0秒到13分0秒的片段。

例四:
mencoder basket.avi -ovc copy -oac copy -o newbasket.avi -ss 5:00
-endpos 8:00
"-ovc copy"表示不作 视频 转换,"-oac copy"表示不作音频转换。这个命令把
basket.avi文件中的5分0秒到13分0秒的部分拷贝到newbasket.avi文件中。

例五:
mencoder a1.avi a2.avi -ovc copy -oac copy -o asum.avi
这个命令把a1.avi和a2.avi文件 合并 为asum.avi文件。

例六:
mencoder basket.rm -ovc lavc -oac lavc -lavcopts vbitrate=100 -lavcopts
abitrate=32 -o basket.avi
限制目的文件的大小。目的文件中,一秒种图象占用100kbit空间,一秒钟声音占用
32kbit空间。较小的目标文件大小,一般意味着较低的图象和声音的质量。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值