ffmpeg h264问题:XP上的“预设文件...未找到”

时间:2011-01-31 21:01:10

标签: ffmpeg preset

我有xp,因为我不熟悉编译我下载的winf-static版本的ffmpeg,svn-r26251。我想调整mp4(最初的1280x720)视频的大小,以获得更小的文件大小,质量大致相同。我的命令是:

ffmpeg -i ma.mp4 -vcodec libx264 -vpre hq -s 640x360 ma2.mp4

然而它说“未找到'预设'hq'文件”。我试过-fpre,没有任何区别。如果没有libx264,生成的文件ma2.mp4将无法在jwplayer中播放,您只需听到音频。 (原因是它不是“mpeg4(h264)”,它只是“mpeg4”)。我该怎么办?

6 个答案:

答案 0 :(得分:19)

对于x264预设,而不是使用“-vpre”,新版本将使用“-preset”,因为这将直接调用x264预设。

答案 1 :(得分:1)

这个问题似乎与XP有关,它适用于Win2K。我检查了filemon,它显示它在X:\ usr \ local \ share \ ffmpeg中查找文件libx264-veryslow.ffpreset或veryslow.ffpreset - 其中X是您运行ffmpeg的驱动器。我在驱动器上创建了路径,复制了所有预设,现在它可以工作了!

答案 2 :(得分:0)

ffmpeg表示在您的情况下无法找到您的预设文件hq.ffpreset。更多信息ffmpeg docs

[EDIT]预设只是为了方便起见。如果您有hq.ffpreset文件,那么只需从中获取所有内容并直接放入命令行

答案 3 :(得分:0)

ffmpeg项目已重命名为avconv,因此目录名称已更改以反映此情况。 文档说明:

  

首先在ffmpeg中搜索名为arg.ffpreset的文件   目录'$ FFMPEG_DATADIR'(如果设置)和'$ HOME / .ffmpeg',以及   配置时定义的datadir(通常是   'PREFIX / share / ffmpeg')或沿着可执行文件的'ffpresets'文件夹   在win32上,按顺序。例如,如果参数是libx264-max,   它将搜索文件'libx264-max.ffpreset'。

这意味着它现在会查看$HOME/.avconvPREFIX/share/avconv,通常为/usr/share/avconv

答案 4 :(得分:0)

这里介绍两种Windows用户解决方案,帮助FFmpeg找到x264预设文件夹。随附每个解决方案的是批处理文件,以完整地自动化解决方案。

只使用其中一种解决方案。

第一个解决方案最简单,但您必须在每个要使用FFmpeg的驱动器上重复此操作。如果您不希望这样做,请使用第二种解决方案。它有点复杂,但批处理文件使这个过程变得轻松。

同样,不要同时使用这两种解决方案。我强烈赞成解决方案2。


解决方案1 ​​

FFmpeg在 C:\usr\local\share\ffmpeg中查找x264预设,需要在Windows中创建的目录:

  • 创建文件夹C:\usr\local\share\ffmpeg
  • 将所有预设文件从~ffmpeg\presets复制到新文件夹中。

或者将以下内容作为批处理文件运行:

    ::BEGIN SOLUTION 1 BATCH FILE
    md C:\usr\local\share\ffmpeg
    copy "C:\Program Files (x86)\ffmpeg\presets" C:\usr\local\share\ffmpeg
    ::END SOLUTION 1 BATCH FILE

在运行此批处理文件之前,请务必将 C:\Program Files (x86)\ffmpeg\presets 更改为 ~\ffmpeg\presets 文件夹的当前位置。

解决方案2

FFmpeg在 %HOME%\.ffmpeg中寻找x264预设,需要在Windows中创建的环境:

首先,创建两个文件夹:

  • 创建文件夹HOME(在此示例中,我将在C:\Users\your_user_name\HOME}找到它;
  • 在文件夹HOME内创建另一个名为.ffmpeg的新文件夹(记下文件名开头的句点);
  • 将文件夹~\ffmpeg\presets中的所有预设文件复制到新文件夹C:\Users\your_user_name\HOME\.ffmpeg
  • 请务必将your_user_name更改为实际用户名

然后将文件夹HOME建立为环境变量%HOME%

  • 打开资源管理器窗口;
  • 导航至Control Panel\System and Security\System;
  • 选择Advanced system settings(窗口左侧);
  • 选择Environment Variables(靠近底部的按钮);
  • 选择New...(在系统变量下,为所有用户提供预设);
  • Variable name:中输入HOME
  • Variable value:中输入C:\Users\your_user_name\HOME
  • 请务必将your_user_name更改为实际用户名

或者将以下内容作为批处理文件运行:

    ::BEGIN SOLUTION 2 BATCH FILE
    md %userprofile%\HOME
    md %userprofile%\HOME\.ffmpeg
    copy "C:\Program Files (x86)\ffmpeg\presets" %userprofile%\HOME\.ffmpeg
    setx HOME %userprofile%\HOME\ /m
    ::END SOLUTION 2 BATCH FILE

在运行此批处理文件之前,请务必将 C:\Program Files (x86)\ffmpeg\presets 更改为 ~\ffmpeg\presets 文件夹的当前位置。

答案 5 :(得分:0)

由于您正在运行Windows,除非您更改%HOME%变量,否则您需要输入“hq.ffpreset”的完整路径。它可能被命名为“libx264-hq.ffpreset”。 此外,这可能适用也可能不适用,但请确保您的构建是使用libx264支持。 如果我知道我是否被允许,我会链接到我的个人ffmpeg 1.2共享版本的win32。我可以确认此命令适用于此版本。

如果你根本没有HQ预设文件,我在这里找到了一个版本的链接: https://raw.github.com/joeyblake/FFmpeg-Presets/master/libx264-hq.ffpreset

将它放在任何你想要的地方(%PATH%上的某个地方可能会运作良好)。