`
hz_chenwenbiao
  • 浏览: 1007833 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mencoder转换flv参数详解(转)

阅读更多


Mencoder简介:

Mencoder是Mplayer自带的编码工具(Mplayer是Linux下的播放器,开源,支持几乎所有视频格式的播放,现在有windows和Mac版本)。

 

Mplayer的获得与配置:

Mplayer windows版本下载列表:http://www5.mplayerhq.hu/MPlayer/releases/win32/
列表中会有版本发布日期,可以挑选最新的版本,也可以选择old/去下载老的版本,笔者用的是6月份的版本。下载后解压到某个文件夹中即可。

Codecs下载列表:http://www5.mplayerhq.hu/MPlayer/releases/codecs/
选择windows-all-********.zip(*表示年月日)下载,将zip包中的文件夹下所有文件,包括*.dll、*.acm、*.ax等等全部copy到Mplayer根目录下的codecs文件夹中。

此时最好把Mplayer.exe所在路径,同时也是Mencoder.exe所在路径添加到环境变量path中。

现在可以试试用Mplayer播放视频,比如有个视频位于D:\music\APerfectMatch.wmv,那么可以打开一个cmd窗口,输入mplayer “D:\music\APerfectMatch.wmv”,感受一下来自Linux的播放器吧,可以通过键盘来操纵。

 

Mencoder转换视频格式:

以将各种格式转换为flv格式为例(flv格式是flash支持的视频格式):

mencoder 'E:\test.m2p' -o 'E:\output.flv' -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts  vcodec=flv:vbitrate=500 :mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=512:-3 -ofps 12 -srate 22050


Mencoder 转 flv 
mencoder -ffourcc FLV1 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 input.xxx -o output.flv

 

质量控制参数:vcodec=flv:vbitrate=200:

 

 

在命令行中输入这行代码(注意:windows的命令行是不支持换行的),按回车运行,一段时间之后就可以得到一个.flv文件,播放一下看看品质如何(可以直接用Mplayer播放)。

     下图是我这边转换的效果对比,左边是原视频,右边是转换后的视频:

 

所有人都会觉得,转换后品质下降了很多,确实是这样,同时可以发现转换后的文件由原来的13M变成了1M,如果要提高品质,可以将vbitrate=500改为vbitrate=5000。

      转换后的效果对比,左边是原视频,右边是转换后的视频:

品质几乎一样了,但同时,转换文件变成了6M。

关于命令中的一些参数,解释一下:

-o 'E:\output.flv':是输出文件路径;

-of lavf:是输出文件格式,这里不是flv而是lavf,是因为flv属于libavformat;

-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:-lavfopts表示对lavf进行一些设置,设置的内容就是i_certify_that_my_video_stream_does_not_use_b_frames,翻译成中文就是:我确定,我的视频不用B frames,对于转换flv格式,最好加上这个参数,否则可能会报错,如图:

 

-oac mp3lame:oac=output audio codec,输出音频编码器,这里用的mp3lame;

-lameopts abr:br=56:lame options,是专门针对mp3lame的参数设置,abr:br=56,是设置音频比特率为56(比特率:每秒钟输出的音频大小,单位kb/s);

-ovc lavc:ovc=output video codec,输出视频编码器,lavc表示one of libavcodec’s video codec,输出格式为libavformat之一,编码器当然也是libavcodec之一啦,至于libavodec里都有哪些编码器,可以查看Mplayer的官方文档;

-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:trell:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1:对lavc进行一些设置,详细介绍如下:
vcodec=flv:指定视频编码器为flv;
vbitrate=500:指定视频比特率为500,这个参数很重要,vbitrate大了可以让视频品质增加,但会让文件变的很大(可以参考flash8自带的转换工具的参数:低品质为150kb/s,中等品质为400kb/s,高品质为700kb/s)。
mbd:宏模块选择算法,值为0~2默认为0,值越大转换越缓慢,但在品质和文件大小方面有好处;
mv0:编译每个宏模块并选择最好的一个,当mbd=0时无效;
v4mv:会稍微增加品质,mbd>0时效果更明显;
trell:量子化网格搜索,对每8×8block找到最优化编码;
cbp:只能和trell一期使用,评估失真的图像块编码;
last_pred=3:与上一帧相比的移动数量预测,值为0~99,1~3比较合适,大于3时对品质的提高已经无关紧要,但却会降低速度;
dia=4:移动搜索范围,值为-99~6,对于快速转换,-1是个不错的值,如果不是很重视速度,可以考虑2~4;
cmp=6:值为1~2000,默认为0,设置用于全象素移动预算的比较函数
vb_strategy=1:对动作很大的场景会有帮助,对有些视频,设置vmax_b_frames会有损品质,加上vb_strategy=1会好点。

以上是对-lavcopts的详细解释,接下来继续说明mencoder的参数:

-vf scale=512:-3:-vf表示视频格式,scale是缩放,512:-3表示强制将宽度设置为512,高度写为-3表示保持高宽比,也可以设置为-1或-2,具体表示什么,有兴趣的可以尝试一下。如果要强制转化为统一大小,可以直接写-vf scale=640:480,但笔者个人建议用-3来保持高宽比。-vf里还有expand和crop参数,例如:-vf scale=512:384,expand=512:384:::1,crop=512:384:0:0,expand表示膨胀,crop表示裁剪;

-ofps 12:输出视频的帧频,一般,用于flash播放的视频帧频高了没有没有意义,反而会增加视频文件大小,但如果ofps设置的不合适,比如源视频帧频不是ofps的整数倍,可能会导致转换后的视频、音频不同步,似乎可以将这一参数改为-noskip来解决这一问题;

-srate 22050:音频采样率一般为22050或44100。

对于转换flv格式,lavsopts的设置比较重要,还有很多参数本文没有涉及到。

分享到:
评论
1 楼 Tree_pjf 2012-04-01  
看看

相关推荐

    利用ffmpeg、mencoder转换视频格式为FLV格式

    FFmpeg和mencoder是两种广泛使用的开源工具,用于处理音视频文件,包括转换视频格式为FLV(Flash Video)格式。在本文中,我们将深入探讨这两个工具,了解它们的工作原理,以及如何使用它们来完成视频格式转换。 ...

    用java程序调用ffmpeg执行视频文件格式转换flv

    如果文件格式需要预先转换,程序会先调用`processAVI()`,该方法使用Mencoder将文件转换为AVI,然后再次调用`processFLV()`将AVI转换为FLV。 在`processAVI()`方法中,你需要通过调用Mencoder来执行转换操作。这...

    ffmpeg+mencoder两种视频转换成flv的文件

    FFmpeg和MEncoder是两种广泛使用的开源视频处理工具,它们都可以将不同的视频格式转换为FLV(Flash Video)格式,适合在Web上进行流媒体播放。让我们深入了解一下这两个工具及其在视频转码过程中的应用。 FFmpeg是...

    mencoder视频转换工具

    **mencoder视频转换工具详解** mencoder是一款强大的命令行视频编码和转换工具,它是MPlayer项目的组成部分,由其开发团队创建。MPlayer以其强大的播放能力而闻名,而mencoder则在视频处理领域提供了丰富的功能,...

    mencoder转换工具

    **mencoder转换工具详解** mencoder是MPlayer项目的一部分,是一个强大的命令行视频编码工具,可用于将各种视频格式转换为其他格式。它支持广泛的输入和输出格式,包括但不限于AVI、MP4、MKV、MOV以及流媒体格式。...

    基于FFMPEG和MENCODER的视频转换PHP网页.pdf

    FFMPEG可以将多种格式的视频转换成FLV格式,而MENCODER可以将ITfl和rmvb格式的视频转换成FLV格式。 在视频转换过程中,需要首先将视频文件上传到服务器,然后使用FFMPEG和MENCODER将其转换成FLV格式,最后将其嵌入...

    mencoder媒体格式转换

    mencoder是MPlayer项目的一部分,是一个强大的命令行工具,主要用于进行多媒体文件的编码和转换。在处理各种媒体格式时,mencoder提供了一种灵活且高效的解决方案,支持多种输入和输出格式,使得用户可以在不同的...

    网页在线flv转换代码

    网页在线FLV转换代码主要涉及的是视频文件格式的转换技术,尤其关注FLV与其他常见视频格式(如RMVB、RM和AVI)之间的互转。在这个过程中,mencoder是一个重要的工具,它通常被用于视频编码和格式转换。下面将详细...

    mencoder xxx to flv

    标题 "mencoder xxx to flv" 指的是使用 mencoder 这个工具将某个视频文件(xxx)转换为 FLV 格式的过程。mencoder 是 MPlayer 的一个命令行工具,广泛用于视频编码和格式转换。在本文中,我们将深入探讨 mencoder ...

    mencoder视频转换程序

    《mencoder视频转换程序:整合mencoder、ffmepg与flvmdi的高效应用》 在数字媒体处理领域,视频转换是一项常见的任务,而mencoder、ffmepg和flvmdi是其中三个重要的工具,它们分别在视频编码、截图和元数据编辑方面...

    JAVA 利用 ffmpeg 和 mencoder 对视频进行转换

    本文将深入探讨如何使用Java结合FFmpeg和mencoder工具对视频进行转换。FFmpeg是一个强大的跨平台的命令行工具,用于处理音频和视频文件,而mencoder是MPlayer的一部分,同样用于视频编码和转换。 首先,让我们理解...

    最新FFMEPG+mencoder命令行视频转换,加水印

    最新版FFMPEG,支持水印命令,可将多种常见格式视频文件转换为FLV或者其他格式,最新版mencoder,支持将rm,RMVB,WMV转换为AVI,flv或者其他多种格式。亲测通过。

    mencoder视频格式转换+ffmpeg视频截图DEMO

    在本DEMO中,mencoder被用来将视频转换为FLV格式,这是一种广泛应用于网络流媒体的格式,因其体积小、播放流畅而受到欢迎。转换过程通常包括以下步骤: 1. 首先,确定源视频文件的位置和输出目标。 2. 使用mencoder...

    在ASP.Net中实现flv视频转换

    通过上述介绍,我们了解了如何在ASP.NET环境中利用FFmpeg和MEncoder实现FLV视频转换。这不仅有助于提高视频内容的兼容性和可访问性,还可以根据不同的应用场景灵活调整输出质量,满足用户需求。对于开发人员而言,...

    将多种视频文件转换为flv格式

    本篇文章将详述如何使用开源工具ffmpeg和mencoder将不同格式的视频文件转换为FLV(Flash Video)格式,以及如何从这些视频文件中提取第一帧作为图片。同时,我们还会提及如何在C#环境中调用这些工具,实现自动化处理...

    Flv,ffmpeg,mencoder,flvmdi,mediainfo,mpc在线转换程序

    【标题】"Flv,ffmpeg,mencoder,flvmdi,mediainfo,mpc在线转换程序"涉及到的关键技术是视频处理和在线转换服务,主要工具包括ffmpeg、mencoder、flvmdi、mediainfo和mpc。这些工具在IT行业中扮演着重要的角色,特别...

    asp.net 视频格式转换成flv格式

    3. **转换过程**:mencoder或ffmpeg根据提供的参数执行转换操作,将源视频编码为FLV格式。这可能需要一定时间,尤其是对于大文件,因此在实际应用中,可能需要考虑异步处理或者提供进度反馈。 4. **存储转换后的...

    mencoder+ffmpeg

    要使用mencoder将视频文件转换为`.flv`格式,你可以使用以下命令格式: ```bash mencoder input_video_file -o output.flv -of lavf -oac mp3lame -lameopts abr:br=64 -ovc lavc -lavfopts i伏=flv -vf scale=...

    asp.net中将各种视频文件转换成.flv格式

    在ASP.NET环境中,将各种视频文件转换为FLV格式是一项常见的需求,特别是在处理在线视频流或构建媒体库时。此过程涉及多个步骤和技术组件,包括使用特定的编码工具(如FFmpeg和Mencoder)、配置应用设置、以及实现...

Global site tag (gtag.js) - Google Analytics