Video ffmpeg:“错误设置配置文件”;如何保持原始分辨率odf奇数大小的视频;获得Quicktime兼容的输出;固定像素格式

Video ffmpeg:“错误设置配置文件”;如何保持原始分辨率odf奇数大小的视频;获得Quicktime兼容的输出;固定像素格式,video,ffmpeg,Video,Ffmpeg,我在使用ffmpeg将视频压缩为quicktime可读的内容时遇到了问题。我最终的目标是有一个简单的命令,我可以用它来压缩高比特率视频,即屏幕截图,使之更合理,以便与人们共享 我想使用我找到的命令作为起点: ffmpeg -i input-file.avi -codec:v libx264 -profile: high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -codec:a

我在使用ffmpeg将视频压缩为quicktime可读的内容时遇到了问题。我最终的目标是有一个简单的命令,我可以用它来压缩高比特率视频,即屏幕截图,使之更合理,以便与人们共享

我想使用我找到的命令作为起点:

ffmpeg -i input-file.avi -codec:v libx264 -profile: high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -vf scale=-1:480 -threads 0 -codec:a libfdk_aac -b:a 128k output_file.mp4
不幸的是,我得到了这个错误:

[libx264 @ 0x7f92ab81c200] Error setting profile high.
[libx264 @ 0x7f92ab81c200] Possible profiles: baseline main high high10 high422 high444
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
如果我去掉-profile:high命令,则命令会起作用,但输出仍然不会在quicktime中打开,而在VLC中会打开。我在ffmpeg手册页上找不到关键字配置文件:所以我不知道这是否重要,也不知道该怎么做

有人知道是什么导致了我的问题吗?我应该如何尝试和调试此问题?我会说自己没有经验,如果我遗漏了一些明显的东西,我很抱歉

提前感谢您的帮助, 彼得

这是我的ffmpeg版本:

ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 7.0.2 (clang-700.1.81)

可能是像素格式的问题。试一试

ffmpeg -i input-file.avi -vf scale=-2:480,format=yuv420p -c:v libx264 -profile:v high -preset slow -b:v 500k -maxrate 500k -bufsize 1000k -threads 0 -c:a libfdk_aac -b:a 128k output_file.mp4

我已经添加了对YUV420P的转换。这也可以通过-pix_fmt yuv420p指定为一个单独的选项

有关ffmpeg命令行工具的交互式使用的问题已脱离主题。请在超级用户或视频制作网站上询问他们。我现在希望使命令尽可能通用,特别是我希望避免在视频的高度和宽度上更改分辨率。删除-vf scale=-2:480,format=yuv420p,并替换为-pix_fmt yuv420p,无法为“yuv420p”找到合适的输出格式。有什么建议吗?对不起,我在命令中出错了,所以我不会发布它。更正的命令是:ffmpeg-i input-file.avi-pix_fmt yuv420p-c:v libx264-profile:v high-preset slow-b:v 500k-maxrate 500k-bufsize 1000k-threads 0-c:a libfdk_aac-b:a 128k output_file.mp4,第一个错误是[libx264@0x7ff584007e00]宽度不能被2 669x529整除。视频是一个奇数大小的屏幕捕获添加-vf scale=iw:-2@P.Reid没有理由将配置文件设置为高。任何能够解码high profile的东西都可以解码main和baseline,如果可以,编码器将使用high。如果要将配置文件设置为main或baseline,则只需使用-profile:v,具体取决于您愿意支持的设备、浏览器、播放器等。您也不需要-threads 0,这意味着自动选择适当数量的线程,这是默认的。最后,-maxrate和-bufsize通常用于流媒体,因此您不需要它们来进行本地播放。当我运行以下命令时:ffmpeg-I input-file.avi-vf scale=iw:-2-pix_fmt yuv420p-c:v libx264-profile:v main-preset slow-b:v 400k-maxrate 400k-bufsize 800k-threads 0-c:a libfdk_aac-b:a 128k output_file.mp4我仍然得到:[libx264@0x7f875181c200]宽度不能被2 669x530整除。感谢您的帮助