跳转到内容

MPlayer

0% developed
来自维基教科书,开放世界中的开放书籍

MPlayer 是一个跨平台的多媒体播放器。它支持多种文件格式,可以播放 CD、VCD 和 DVD。MPlayer 还包含 Mencoder,这是一个强大的视频转换程序。MPlayer 和 Mencoder 都可以在命令行(shell)中使用。MPlayer 只有一个官方图形界面(GMplayer),但是有一些第三方图形界面可以访问 Mencoder 的一些功能。

安装 MPlayer

[编辑 | 编辑源代码]

MPlayer 有三个组成部分:MPlayer 本身、GMplayer(图形界面)和 Mencoder(视频转换工具)。如果你没有将它们打包在一起,你可能需要单独安装每个部分。

你可能还需要一些外部编解码器,用于 MPlayer 不原生支持的视频文件格式。

MPlayer 包可以通过你的 Linux 发行版软件管理器(RPM、DEB 等)获取,也可以从 MPlayer 网站http://www.mplayerhq.hu/获取,该网站还包含适用于其他操作系统(Windows、Apple、Amiga)的版本,以及你可能需要的额外编解码器。

MPlayer 在 Windows 中的功能与 Linux 非常相似。

启动 MPlayer & 播放文件

[编辑 | 编辑源代码]

最简单的情况下,你可以从命令行启动 MPlayer;执行文件后跟你想观看的视频文件

mplayer <filename> 

如果你发现你的 MPlayer 执行文件不在你的路径中,你可能需要指定其位置

/usr/bin/mplayer <path to file>

或者

C:\> "C:\Program Files\mplayer\mplayer.exe" <path to file>

作为一个例子。

GUI

当你启动 GMplayer 时,会打开两个窗口

  • 一个观看窗口 - 这是播放视频/DVD 的地方。
  • 一个控制窗口 - 这是你可以在 MPlayer 中使用最常用命令的地方。

要播放文件,在观看窗口中右键单击,点击“打开”,然后点击“播放文件”。然后应该会打开一个文件选择对话框。重要的是要注意,对话框底部文件格式过滤器默认设置为“视频文件”。这意味着,如果你想播放音频(声音)文件,它不会在对话框中显示。要查看音频文件,点击文件格式过滤器框左侧的下拉箭头,并选择“所有文件”。选择一个文件,然后点击“确定”。文件应该立即开始播放。

Windows 命令行(无 GUI)

最简单的方法是从 MPlayer 主站点获取基本的 MPlayer 包和编解码器(名称中没有 GUI)。将所有必需文件解压缩到你选择的目录中。从那里,右键单击要观看的视频,选择“打开方式”,然后选择其他。浏览你创建的新的 mplayer 目录,并选中“始终使用此程序”,使其可以通过双击工作。

如果你遇到问题,只需通过 Windows CMD 启动 mplayer,以获得有关问题的良好反馈。将文件拖放到 Windows 命令行中会打印文件名,以避免必须键入名称/目录。这适用于 mplayer 的所有功能。

(调整内容位置并从这里继续清理 - kokushibyou)。

这显示了一个正常启动的文件;有一些错误(没有字幕字体,如果需要,很容易解决)以及你可能感兴趣的其他有趣反馈。

 (move this to the bottom soon)
 C:\Documents and Settings\DL.UNIVERSE>G:\mplayer\mplayer.exe "N:\testfile.rmvb"
 MPlayer dev-CVS-050626-17:02-3.4.2 (C) 2000-2005 MPlayer Team
 CPU: Advanced Micro Devices Athlon MP/XP Thoroughbred (Family: 6, Stepping: 1)
 Detected cache-line size is 64 bytes
 CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
 Compiled with runtime CPU detection - WARNING - this is not optimal!
 To get best performance, recompile MPlayer with --disable-runtime-cpudetection.
 
 Cannot load font: C:\mplayer\font-arial-iso-8859-1\font-arial-14-iso-8859-1\font.desc
 Playing N:\testfile.rmvb.
 REAL file format detected. 
 Stream description: Audio Stream
 Stream mimetype: audio/x-pn-realaudio
 Stream description: Video Stream
 Stream mimetype: video/x-pn-realvideo
 Stream mimetype: logical-fileinfo
 VIDEO:  [RV40]  640x368  24bpp  23.000 fps    0.0 kbps ( 0.0 kbyte/s)
 Clip info:
 name: testfile.rmvb
 Opening audio decoder: [realaud] RealAudio decoder
 opening win32 dll 'cook3260.dll'
 Audio codec: [24] 64 kbps Stereo Music - RA8
 Audio bitrate: 64.083 kbit/s (8010 bps)
 AUDIO: 44100 Hz, 2 ch, s16le, 64.1 kbit/4.54% (ratio: 8010->176400)
 Selected audio codec: [racookwin] afm:realaud (Win32 RealAudio COOK) 
 <vo_directx><ERROR>Your card doesn't support overlay
 Opening video decoder: [realvid] RealVideo decoder
 opening win32 dll 'drv43260.dll'
 Selected video codec: [rv40win] vfm:realvid (Win32 RealPlayer 9 RV40 decoder)
 Building audio filter chain for 44100Hz/2ch/s16le -> 0Hz/0ch/??...
 AO: [dsound] 44100Hz 2ch s16le (2 bps)
 Building audio filter chain for 44100Hz/2ch/s16le -> 44100Hz/2ch/s16le...
 Starting playback...
 VDec: vo config request - 640 x 368 (preferred csp: Planar I420)
 Could not find matching colorspace - retrying with -vf scale...
 Opening video filter: [scale]
 VDec: using Planar I420 as output csp (no 0)
 Movie-Aspect is 1.74:1 - prescaling to correct movie aspect.
 SwScaler: using unscaled Planar YV12 -> BGR 16-bit special converter
 VO: [directx] 640x368 => 640x368 BGR 16-bit
 New_Face failed. Maybe the font path is wrong.
 Please supply the text font file (~/.mplayer/subfont.ttf).
 subtitle font: load_sub_face failed.

(并且电影在自己的窗口中启动,而 cmd 窗口在后台)。

播放 CD、DVD 和 VCD

[编辑 | 编辑源代码]

GMplayer 的菜单允许访问你的 CD/DVD 驱动器,以播放大多数磁盘上的视频文件。在命令提示符下,你只需引用 DVD:// 设备,或者如果你在硬盘上有一个磁盘镜像,你可以使用 BIN:// 或 ISO:// 设备。一个 Win32 例子是 mplayer -dvd-device e: dvd://1(对于标题 1)。

如果磁盘无法播放,那么系统可能没有 CDDA 提取器,比如cdparanoia,或者 MPlayer 没有用正确的选项从源代码编译。CDDA 提取器仅在编译时需要。

编解码器

[编辑 | 编辑源代码]

在大多数情况下,mplayer 会自动识别视频的格式和它运行的环境。然后它会尽力显示视频。如果你运行的是图形界面(XWindow、MS Windows),你可能希望启动 MPlayer 的 GUI。这也可以从命令行或从桌面的“运行文件”选项或通过其菜单系统启动。在以上所有情况下,命令都是;gmplayer。

如果你在尝试确定为什么视频/声音无法工作时遇到问题,请尝试以下几个方法

  • 尝试仅使用命令行运行 mplayer - 你的提示符通常会输出有关错误的良好信息。
  • 确保你从http://www.mplayerhq.hu获取了完整的编解码器包;或者任何其他不在那里的编解码器包(你在他们的网站上已经可以获得几乎所有你需要的编解码器)。

观看时

[编辑 | 编辑源代码]

MPlayer 的键盘快捷键包括

  • q = 退出
  • r = 字幕位置 -
  • t = 字幕位置 +y
  • T = 启用/禁用置顶模式
  • y = 字幕延迟重置为 0
  • o/O = 切换屏幕显示(启用、禁用、时间流逝、时间流逝/剩余时间)
  • p = 播放/暂停
  • [ = 速度 -10%
  • ] = 速度 +10%
  • { = 速度 x 1/2
  • } = 速度 x 2
  • a = 字幕对齐
  • d = 切换丢帧(开、硬、关)
  • f = 切换全屏
  • j = 切换字幕(关、语言 1、语言 2 等)
  • l = 将文件加载到播放列表(仅限 GUI)
  • z = 字幕延迟 -
  • x = 字幕延迟 +
  • c = 皮肤浏览器
  • v = 启用/禁用字幕
  • b = 切换字幕(关、语言 1、语言 2 等)
  • m = 静音开/关
  • / = 音量减小,
  • 0 = 播放
  • . = 帧前进
  • 1 = 对比度 -
  • 2 = 对比度 +
  • 3 = 亮度 -
  • 4 = 亮度 +
  • 5 = 色调 -(绿色)
  • 6 = 色调 +(红色)
  • 7 = 颜色 -
  • 8 = 颜色 +
  • / = 音量 -
  • * = 音量 +
  • - = 音频-视频延迟 -
  • + = 音频-视频延迟 +
  • 上 = 前进 1 分钟
  • 下 = 倒退 1 分钟
  • 左 = 倒带
  • 右 = 快进
  • Home = 起始
  • End = 结束
  • Pg Up = 前进 10 分钟
  • Pg Dn = 倒退 10 分钟
  • # = 切换音频


OSD 菜单

[编辑 | 编辑源代码]

Mplayer 有一个自由配置的 OSD 菜单。不幸的是,它没有得到很好的记录(或者更确切地说,根本没有记录...)。以下是一个 menu.conf 的示例(放在 GNU/Linux 系统上的 ~/.mplayer 中)

 <keybindings name="default">
    <binding key="UP" cmd="menu up" />
    <binding key="DOWN" cmd="menu down" />
    <binding key="LEFT" cmd="menu left" />
    <binding key="RIGHT" cmd="menu right" />
    <binding key="ENTER" cmd="menu ok" />
    <binding key="ESC" cmd="menu cancel" />
    <binding key="HOME" cmd="menu home" />
    <binding key="END" cmd="menu end" />
    <binding key="PGUP" cmd="menu pageup" />
    <binding key="PGDWN" cmd="menu pagedown" />
    <binding key="JOY_UP" cmd="menu up" />
    <binding key="JOY_DOWN" cmd="menu down" />
    <binding key="JOY_LEFT" cmd="menu left" />
    <binding key="JOY_RIGHT" cmd="menu right" />
    <binding key="JOY_BTN0" cmd="menu ok" />
    <binding key="JOY_BTN1" cmd="menu cancel" />
    <binding key="AR_VUP" cmd="menu up" />
    <binding key="AR_VDOWN" cmd="menu down" />
    <binding key="AR_PREV" cmd="menu left" />
    <binding key="AR_NEXT" cmd="menu right" />
    <binding key="AR_PLAY" cmd="menu ok" />
    <binding key="AR_MENU" cmd="menu cancel" />
    <binding key="AR_PREV_HOLD" cmd="menu home" />
    <binding key="AR_NEXT_HOLD" cmd="menu end" />
    <binding key="MOUSE_BTN3" cmd="menu up" />
    <binding key="MOUSE_BTN4" cmd="menu up" />
    <binding key="MOUSE_BTN0" cmd="menu click" />
    <binding key="MOUSE_BTN2" cmd="menu cancel" />
 </keybindings>
 <keybindings name="list" parent="default">
    <binding key="AR_PREV" cmd="menu pageup" />
    <binding key="AR_NEXT" cmd="menu pagedown" />
 </keybindings>
 <keybindings name="filesel" parent="list">
    <binding key="BS" cmd="menu left" />
 </keybindings>
 <keybindings name="chapsel" parent="list" />
 <keybindings name="cmdlist" parent="list">
    <binding key="AR_PREV" cmd="menu left" />
    <binding key="AR_NEXT" cmd="menu right" />
 </keybindings>
 <keybindings name="txt" parent="list" />
 <keybindings name="pt" parent="list" />
 <keybindings name="pref" parent="list">
    <binding key="AR_PREV" cmd="menu left" />
    <binding key="AR_NEXT" cmd="menu right" />
    <binding key="AR_PREV_HOLD" cmd="menu left" />
    <binding key="AR_NEXT_HOLD" cmd="menu right" />
 </keybindings>
 <filesel name="open_file"/>
 <filesel name="open_list" file-action="loadlist '%p'" auto-close="yes"
         title="Open a playlist: %p"
         filter="/etc/mplayer/extensions_filter"
         actions="d:run 'mp_loader \'%p\' d',c:run 'mp_loader \'%p\' c'" />
 <chapsel name="select_chapter" />
 <pt name="jump_to"/>
 <console name="console0" height="80" vspace="0">Welcome to MPlayer</console>
 <txt name="man" file="manpage.txt"/>
 <pref name="general_pref" title="General">
      <e property="osdlevel" name="OSD level"/>
      <e property="speed" name="Speed"/>
      <e property="loop" name="Loop"/>
 </pref>
 <pref name="demuxer_pref" title="Demuxer">
 </pref>
 <pref name="osd_sub_pref" title="Subtitles">
      <e property="sub" name="Subtitles"/>
      <e property="sub_visibility" name="Visibility"/>
      <e property="sub_forced_only" name="Forced sub only"/>
      <e property="sub_alignment" name="Alignment"/>   
      <e property="sub_pos" name="Position"/>
      <e property="sub_delay" name="Delay"/>
      <e property="sub_scale" name="Scale"/>
 </pref>
 <pref name="audio_pref" title="Audio">
      <e property="volume" name="Volume"/>
      <e property="balance" name="Balance"/>
      <e property="mute" name="Mute"/>
      <e property="audio_delay" name="Delay"/>
 </pref>
 <pref name="colors_pref" title="Colors">
      <e property="gamma" name="Gamma"/>
      <e property="brightness" name="Brightness"/>
      <e property="contrast" name="Contrast"/>
      <e property="saturation" name="Saturation"/>
      <e property="hue" name="Hue"/>
 </pref>
 <pref name="video_pref" title="Video">
      <e property="fullscreen" name="Fullscreen"/>
      <e property="panscan" name="Panscan"/>
      <menu menu="colors_pref" name="Colors ..."/>
      <e property="ontop" name="Always on top"/>
      <e property="rootwin" name="Root window"/>
      <e property="framedropping" name="Frame dropping"/>
      <e property="vsync" name="VSync"/>
 </pref>
 <cmdlist name="pref_main" title="Preferences" ptr="<>" >
    <e name="General ..." ok="set_menu general_pref"/>
    <e name="Audio ..." ok="set_menu audio_pref"/>
    <e name="Video ..." ok="set_menu video_pref"/>
    <e name="Subtitles ..." ok="set_menu osd_sub_pref"/>
    <e name="Back" ok="menu cancel"/>
 </cmdlist>
 <pref name="properties" title="Stream Properties">
      <e txt="${filename}" name="Name"/>
      <e txt="${video_format}" name="Video Codec"/>
      <e txt="${video_bitrate}" name="Video Bitrate"/>
      <e txt="${width} x ${height}" name="Resolution"/>
      <e txt="${audio_codec}" name="Audio Codec"/>
      <e txt="${audio_bitrate}" name="Audio Bitrate"/>
      <e txt="${samplerate}, ${channels}" name="Audio Samples"/>
      <e txt="${metadata/Title}" name="Title"/>
      <e txt="${metadata/Artist}" name="Artist"/>
      <e txt="${metadata/Album}" name="Album"/>
      <e txt="${metadata/Year}" name="Year"/>
      <e txt="${metadata/Comment}" name="Comment"/>
      <e txt="${metadata/Track}" name="Track"/>
      <e txt="${metadata/Genre}" name="Genre"/>
      <e txt="${metadata/Software}" name="Software"/>
 </pref>
 <cmdlist name="main" title="Menu" ptr="<>" >
      <e name="Pause" ok="pause"/>
      <e name="Chapter ..." ok="set_menu select_chapter"
                            left="seek_chapter -1" right="seek_chapter +1"/>
      <e name="Prev/Next ..." ok="set_menu jump_to"
                            left="pt_step -1" right="pt_step 1"/>
      <e name="Open ..." ok="set_menu open_file"/>
      <e name="Open playlist ..." ok="set_menu open_list"/>
      <e name="Help" ok="set_menu man"/>
      <e name="Pref" ok="set_menu pref_main"/>
      <e name="Properties" ok="set_menu properties"/>
      <e name="Console" ok="set_menu console0"/>
      <e name="Quit" ok="quit"/>
 </cmdlist>

要启用它,你必须在与“menu.conf”相同的目录下的“input.conf”文件中包含类似以下的键绑定

m menu main

“m”可以是任何键(或鼠标按钮(例如 MOUSE_BTN2))。然后用 -menu 开关启动 mplayer(或者你可以在“config”文件中添加 menu=yes)。

首选项

[编辑 | 编辑源代码]

Mencoder

[edit | edit source]

MEncoder 是一个命令行视频解码、编码和过滤工具,大多数 MPlayer 包中都包含它。它是 MPlayer 的一个近亲,可以使用不同的编解码器将 MPlayer 识别的所有格式转换为各种压缩和未压缩格式。

功能

[edit | edit source]

由于它构建于与 MPlayer 相同的代码,因此它可以读取 MPlayer 可读取的每个源,解码 MPlayer 可解码的所有媒体,并支持 MPlayer 可使用的所有过滤器。MPlayer 也可以用来在运行 MEncoder 之前查看大多数过滤器(或整个过滤器管道)的输出。如果系统无法实时处理此操作,可以使用 -nosound 禁用音频,以允许顺利查看视频过滤结果。

也可以将音频和/或视频未经修改地复制到输出文件中,以避免由于重新编码而造成的质量损失,例如,只修改音频或视频,或者只是将音频/视频数据未经修改地放入不同的容器格式中。

由于它使用与 MPlayer 相同的代码,因此它还具有相同数量的大量可高度配置的视频和音频过滤器来转换视频和音频流:过滤器包括裁剪、缩放、垂直翻转、水平镜像、扩展以创建黑边、旋转、亮度/对比度、更改视频的纵横比、颜色空间转换、色调/饱和度、特定颜色的伽马校正、用于减少由 MPEG 压缩引起的压缩伪影可见度的过滤器(去块、去振铃)、自动亮度/对比度增强(自动校准)、锐化/模糊、降噪过滤器、几种不同的隔行扫描方法以及反转电影院。

帧速率转换和慢动作

[edit | edit source]

此外,还可以使用 -ofps 或 -speed 选项来更改帧速率,此外还可以使用 framestep 过滤器来跳过帧。降低帧速率可以用来创建快速运动的“速度”效果,这种效果有时会在电影中看到。

使用 tfields 过滤器,可以在不复制或变形帧的情况下将隔行扫描素材的帧速率加倍,从隔行扫描视频一帧中的两个场创建两个不同的帧。这允许在逐行扫描显示器上播放,同时保留隔行扫描视频的完整分辨率和帧速率,这与任何隔行扫描方法都不一样。它还使素材更适合帧速率转换,以及使用以标准视频/电视帧速率拍摄的素材创建慢动作场景,例如使用廉价的消费级摄像机。如果过滤器获取了关于顶部/底部场顺序的错误信息,则生成的输出视频将出现抖动运动,因为创建的两个帧将以错误的顺序显示。

常见任务

[edit | edit source]

从一系列静态图像创建动画

[edit | edit source]

要将目录中的所有 png 图像组合在一起以创建 avi 电影,请执行以下操作

mencoder mf://*.png -mf w=400:h=400 -ovc lavc -lavcopts vcodec=xvid -of avi -o output.avi

将视频拆分为一系列静态图像

[edit | edit source]

要将输入电影拆分为具有特定质量的子目录“dirname”,请执行以下操作。

mplayer input.avi -vo jpeg:outdir=dirname:quality=80

合并多个视频

[edit | edit source]

要将两个或多个视频文件合并为一个文件,请执行以下操作

mencoder -oac copy -ovc copy -idx -o whole.avi part1.avi part2.avi ...

这只有在文件中包含的视频具有相同分辨率并使用相同编解码器时才有效。当然,这适用于 MPlayer 可以播放的任何文件格式,而不仅仅是 AVI 文件。如果你的文件不是 AVI 文件,则必须指定输出格式 -of。否则,合并的 mpeg 电影将驻留在 AVI 容器中。这是因为 AVI 是默认的输出格式。(要查看可用的输出格式,请键入 mencoder -of help。)

将 DVD 转换为原始视频

[edit | edit source]

mplayer 可以制作相当准确的“原始流”DVD 复制,例如(将 DVD 轨道 1 保存到文件 dvdout.mpg)

mplayer -dumpstream dvdnav://1 -nocache -dvd-device d: -dumpfile dvdout.mpg

如果你是 Windows 用户,你可能需要将上面的“mplayer”替换为类似“C:\Program Files (x86)\MPlayer for WindowsUI\mplayer\mplayer.exe”的内容才能使它工作。(在这个例子中,是从 Mulder 的 Mplayer for Windows 安装运行的)。你的路径可能不同。

如果你是 Mac 用户,并且下载了像 mplayerx 这样的东西并将其安装到你的应用程序文件夹中,那么上面的“mplayer”可能看起来像“/Applications/MPlayerX.app/Contents/Resources/binaries/m32/mplayer”之类的东西。或者,如果你通过 macports 安装了 mplayer,那么是 /opt/local/bin/mplayer

Mencoder 也可以从 dvd 复制原始视频流

mencoder dvdnav://2 -nocache -oac copy -ovc copy -of mpeg -o dvdout.mpg

虽然 mencoder 似乎存在一个错误,它有时会在标题结尾处省略大约 20 分钟。

另一个选择可能是 dvd://2 而不是 dvdnav://2 -nocache,虽然据说 dvdnav -nocache 与更多 DVD 兼容。

请注意,mpeg 是一种真正的“原始”复制,这意味着它的索引可能被搞乱了,如果它来自一个在中途重置 MPEG TS 时间戳的 DVD(很多 DVD 都是这样,通常在 1 小时左右的时间)。你可以对文件运行 mencoder -idx 来修复它们。如果它们坏了,那么绝对寻址/EDL 的寻址行为可能会很奇怪。

将 DVD 复制到高质量压缩 AVI

[edit | edit source]

要执行 DVD 上第二个标题的双遍编码到 MPEG-4 AVI,同时复制音频轨道,请按以下顺序执行这两个命令

mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o output.avi

第一遍创建一些临时文件(名称以.log结尾)大小为几兆字节。不要在两次遍之间删除这些临时文件。在第二遍中,使用来自临时文件的比特率数据创建输出文件。生成的文件将比单遍编码产生的文件具有更好的图像质量,因为额外的步骤允许在需要的时候有更高的比特率,在不需要的时候有更低的比特率,从而保持稳定的质量水平,而不是保持稳定的比特率,同时仍然保持所需的平均比特率。

对于字幕,请使用 -slang(例如,要让视频中包含英文字幕,请使用 -slang en)或 -sid(例如 -sid 0)开关。当使用多种语言时,字幕可能会出现在所有对话中,包括主要语言。−forcedsubsonly 可能会(取决于 DVD 的制作方式)只对非主要语言的对话进行字幕。例如,在一个包含英语和德语对话的电影中,主要语言是英语,使用 -forcedsubsonly 可能会阻止英语对话和德语对话的字幕。例如,在一个包含英语和德语对话的电影中,主要语言是英语,使用 -forcedsubsonly 可能会阻止英语对话和德语对话的字幕。

对于更改音频(例如在加拿大,视频通常以法语和英语提供),请指定 -alang-switch(例如 -alang en

你可能还想对较新的 DVD 使用 dvdnav:// -nocache

分割视频/视频子部分

[edit | edit source]

你可以使用 -ss 和 -endpos 参数来指定起点和终点,但它只能从最近的关键帧开始。因此,根据关键帧在视频中的放置频率,实际的开始时间可能会延迟多达 10 秒(mp4)或 0.5 秒(MPEG-2 [DVD] 每个关键帧至少出现 15 帧,或 0.5 秒)。停止时间将相对于调整后的开始时间。

示例:注意 -endpos 开关中的 mb 后缀

mencoder -ovc copy -oac copy -ss 0 -endpos 700mb -o movie_part1.avi movie.avi

假设你想要分割 video_input.avi,这样你就可以跳过“大约”前 3.2 秒,并获取接下来的 2 秒视频(直到“大约”第 5.2 秒)

mencoder -ss 3.2 -endpos 2 -oac copy -ovc copy video_input.avi -o video_output.avi

一般来说

mencoder -ovc copy -oac copy -ss hh:mm:ss -endpos hh:mm:ss video_input.avi -o video_output.avi

这会将 video_input.avi 的一部分复制到 video_output.avi。部分从 -ss time 开始,到 -endpos time 结束。这些时间也可以使用 mb 后缀表示兆字节。

如果你的音频/视频编解码器支持精确定位(例如,像 MJPEGhuffyuv 这样的全帧编解码器,用于音频的 PCM 等),mencoder 能够将音频/视频容器无损地切割成片段。

你也可以先使用“keyint”设置为 1 重新编码你的流,这将使每一帧都成为关键帧,从而使它随后支持精确定位。

如果你的流支持精确定位,那么以下命令可以用于将视频无损地切割成 1 分钟的片段

mencoder -ss 0 -endpos 59.999 -oac copy -ovc copy video_input.avi -o video_output-001.avi
mencoder -ss 60 -endpos 59.999 -oac copy -ovc copy video_input.avi -o video_output-002.avi
mencoder -ss 120 - endpos 59.999 ...

还要注意,-hr-edl-seek 选项可能有助于它在某些流中更加准确,请参见 http://betterlogic.com/roger/2011/06/mplayer-hr-edl-seek

将 FLV 转换为 AVI

[编辑 | 编辑源代码]

您可以使用 mencoder 将来自 YouTube 和 Google Video 等网站的 FLV 文件转换为 AVI。

mencoder input.flv -ovc lavc -oac mp3lame -o output.avi


使用过滤器

[编辑 | 编辑源代码]
增加或减少伽马、对比度、亮度、饱和度
[编辑 | 编辑源代码]
mencoder -oac copy -ovc lavc input.flv -vf eq2=gamma:contrast:brightness:saturation -o output.avi

其中伽马 0.1 - 10(默认 1.0)、对比度 -2 - 2(默认 1.0)、亮度 -1 - 1(默认 0.0)、饱和度 0 - 3(默认 1.0)。

华夏公益教科书