`
guanhuaing
  • 浏览: 1229098 次
文章分类
社区版块
存档分类
最新评论

Mencoder的一些基本认识

 
阅读更多
Mencoder的一些基本认识
2007-10-12 10:53
本文是笔者对Mencoder的一些基本认识,对于初学者,或许可以当作教程来看。如果对Mencoder有很深的研究,欢迎与我交流。qq:151952789。msn:tangyifei830217@hotmail.com


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

在命令行中输入这行代码(注意: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的官方文档;

-lavcoptsvcodec=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?block找到最优化编码;

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的设置比较重要,还有很多参数本文没有涉及到,在笔者参考的文献中会有具体的说明,感兴趣的可以去看一下。我对于Mencoder的认识主要也是来源于下面2篇文章,实践的比较少,如果有理解和翻译的失误,再次欢迎与我交流。

参考文献:

《Mplayer官方文档,英文版》http://www.mplayerhq.hu/DOCS/HTML-single/en/MPlayer.html

《Linux Reviews》http://linuxreviews.org/man/mencoder/
分享到:
评论

相关推荐

    mencoder视频转码工具

    mencoder的基本转换命令格式如下: ``` mencoder input_video.ext -o output_video.ext -oac audio_codec -ovc video_codec ``` - `input_video.ext` 是源视频文件的路径和扩展名。 - `-o output_video.ext` 指定...

    mencoder视频转换工具

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

    mencoder(视频处理软件)

    mencoder 是一款命令行方式的视频处理软件,是Mplayer自带的编码工具(Mplayer是Linux下的播放器,开源,支持几乎所有视频格式的播放,现在有windows和Mac版本)。 在linux下,安装完Mplayer后,就有mencoder,无需...

    ffmpeg和mencoder的总结

    以下是FFmpeg和MEncoder的一些关键知识点: 1. **基本命令行用法**:两个工具都通过命令行接口操作,用户需要指定输入文件、输出文件以及转换参数。例如,将一个MP4文件转换为WebM格式,FFmpeg命令可以是`ffmpeg -i...

    ffmpeg、mencoder转码工具

    FFmpeg和MEncoder是两种广泛使用的命令行工具,主要用于音视频的编码、解码、转换以及流处理。在IT行业中,这些工具对于处理多媒体数据,尤其是视频内容的开发者和运维人员来说,是不可或缺的。 FFmpeg是一个开源...

    ffmpeg+mencoder集合

    以下是一些FFmpeg常用的功能和命令示例: 1. **音视频转换**:使用`-i`参数指定输入文件,`-c:v`和`-c:a`分别指定视频和音频编码器,`output.mp4`为输出文件名。例如: ``` ffmpeg -i input.avi -c:v libx264 -c:...

    mencoder.exe

    mencoder 是一款命令行方式的视频处理软件,是Mplayer自带的编码工具,mencoder支持几乎所有的格式的视频转换,可以将任意格式转换到任意格式,转换功能可以说是相当强大。目前市面上流行的格式转换器,都是基于...

    mencoder 编码解码

    mencoder 的基本用法 mencoder 的使用通常涉及以下参数: - `-i` 或 `--input`:指定输入文件,即要处理的视频源。 - `-o` 或 `--output`:指定输出文件,定义编码后的视频保存位置。 - `-of` 或 `--output-...

    mencoder转换工具

    使用mencoder进行y4m到yuv的转换,你需要了解基本的命令行语法。例如,一个基本的转换命令可能如下: ```bash mencoder input.y4m -o output.yuv -of rawvideo ``` 这里,`input.y4m`是源文件,`output.yuv`是目标...

    mencoder视频转换程序

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

    基于mencoder实现的视频截取合并demo

    以上就是使用mencoder进行视频截取、合并以及添加字幕的基本操作。需要注意的是,mencoder可能不支持某些高级的视频编码和解码,特别是对于较新的视频格式。在这种情况下,可以考虑使用FFmpeg,这是一个更为现代且...

    FFmpeg和mencoder的音视频转码工具

    5. **视频滤镜**:虽然不如FFmpeg全面,但mencoder也提供了一些基础的视频滤镜,如去隔行、调整亮度、对比度等。 FFmpeg与mencoder的对比: - FFmpeg功能更为全面,不仅限于转码,还包含录制和流化功能,适合复杂...

    ffmpeg 及 mencoder的 exe可执行程序

    4. **视频处理**:MEncoder也包含一些基本的视频过滤器,但相比于FFmpeg,其过滤器功能相对较弱。 5. **兼容性**:MEncoder对老旧和罕见的视频格式有很好的支持,特别适合处理一些难以处理的文件。 在Windows XP...

    mencoder文档

    ### mencoder与x264编码器的使用详解 #### 一、引言 在视频处理领域,`mencoder`是一款强大的工具,用于转换、剪辑以及编码视频文件。其支持多种格式,并能够利用不同的编码器来实现高质量的视频转码。其中,`x264`...

    ffmpeg+mencoder

    FFmpeg和Mencoder是两个非常重要的视频处理工具,在IT领域,尤其是多媒体开发和视频处理方面,它们被广泛应用。本文将详细介绍这两个工具以及如何在Java环境中调用它们进行视频转码。 FFmpeg是一款开源的跨平台...

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

    在Java中使用FFmpeg,通常会借助于一些第三方库,如JNA(Java Native Access)或jni4net,这些库允许Java代码直接调用FFmpeg的C/C++接口。例如,可以创建一个Java方法,传递FFmpeg的命令行参数,然后通过`Runtime....

    mencoder ubuntu下

    vp6编码用到的mencoder,在离线状态,64位suse下总是没法顺顺当当安好mencoder。 这事unbuntu下面 apt-get install的mencoder。

    Mencoder实现视频剪切合并添加字幕

    首先,让我们来了解视频剪切的基本步骤。假设你有一个名为`video.mp4`的视频文件,你想剪切出其中的一部分。你可以使用以下Mencoder命令: ```bash mencoder input_video.mp4 -ss 开始时间 -endpos 持续时间 -o ...

    ffmpeg和mencoder视频文件

    在使用FFmpeg和MEncoder时,要注意版权和许可证问题,因为它们的一些组件可能受到不同的许可限制。另外,确保你对命令行参数有深入理解,以避免处理过程中出现错误或不期望的结果。 总的来说,这个压缩包提供了一套...

Global site tag (gtag.js) - Google Analytics