调整大小并降低 mp4 的比特率

Reg*_*egs 5 linux ffmpeg ubuntu x264

我想执行以下命令:

x264 --level 30 --profile baseline --bitrate 900 --keyint 30 -o test.mp4 video01.mp4 --vf resize:720,480
Run Code Online (Sandbox Code Playgroud)

但我得到以下输出(错误)

raw [error]: raw input requires a resolution.
x264 [error]: could not open input file `video01.mp4' via any method!
Run Code Online (Sandbox Code Playgroud)

我尝试过的: - 在输入文件旁边添加分辨率,但没有运气 - 尝试更改--vf--video-filter resize:

我做错了什么?是否可以像这样调整 mp4 文件的大小?如果第一个错误是指输入文件,我该如何指定分辨率?我需要这个命令工作,因为我需要在 bash 脚本和 JAVA 代码中实现它。根据我所做的研究,我可能需要 avisynth,但没有用于 linux 的端口,有吗?

如果你有更好的东西给我,请帮助我。我在 64 位 Ubuntu 11.04 上运行,具有 ffmpeg 和 x264 的所有必需(可能)库

Bre*_*ugh 2

您的输出表明输入文件正在被解码为 RAW,而不是使用正确的 libav、Avisynth 或 ffms 解码器。有关更多详细信息,请参阅Ubuntuman页面。我相信正确的语法应该是:

x264 --level 30 --profile baseline --bitrate 900 --keyint 30 --vf resize:720,480 -o test.mp4 video01.mp4 
Run Code Online (Sandbox Code Playgroud)

如果仍然遇到错误,则可能是您的 x264 二进制文件已过时,或者未在编译时支持 ffms。从man上面链接的页面:

Infile 可以是原始文件(在这种情况下需要解析)、[...] 或 Avisynth(如果编译时支持)(否)。或 libav* 格式(如果编译时使用 lavf 支持(否)或 ffms 支持(是))。

最后,从这个关于使用 ffms 支持编译 x264 的线程来看,最新的 x264 应该可以使用包管理器进行配置以查找 ffms 库。