哪个ffmpeg命令可以将视频转换为iPad / iPhone / iPod?


24

我当前正在使用一个批处理文件,该批处理文件(除其他事项外)运行以下handbrakecli命令行来转换视频:

HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"

这已经为我服务了很多年,产生的视频文件比原始文件小(当您只有16Gb设备时很好),看起来足够好,并且几乎可以在我放置的任何iPod,iPad和iPhone上使用。

但是随着时间的流逝,handbrakecli努力将越来越多的视频转换成我需要寻找替代视频的地步。日志绝对不提供有关崩溃原因的事实,这无济于事。举例来说,此视频在转换过程中崩溃了71%,这是最后4行:

AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0

不是很有帮助。

我看过使用ffmpeg作为替代方法,但是我在互联网上看到的所有示例都执行以下一项或多项操作:

  1. 不起作用(命令行选项无法识别)-常见!
  2. 结果文件大于原始文件-非常常见!
  3. 使图片失真,尤其是在转换了意外的视频尺寸(例如非宽屏PAL)时
  4. 删除音频
  5. 导致无法播放iPhone,iPod或iPad的视频

是否有一个不错的通用ffmepg命令行,它将使任何视频在所有Apple设备上都能愉快地运行,并实现文件大小的减小?

如果它也会缩小(但不会扭曲)720p以上的任何视频,则有加分。


您上次升级handbrakecli的时间是什么时候?
基因

希望经常修复崩溃的错误。我目前正在运行0.10.2(2015060900)-MinGW x86_64。
理查德

我有一个无法在iOS上运行的mp4视频,这是我能想到的最短的命令,可以将其修复:ffmpeg -i broken_video.mp4 -pix_fmt yuv420p working_video.mp4
Bemmu

Answers:


30

这是我的看法。我将iPhone 4或更高版本(包括所有iPad)作为目标:H.264 Main profile,级别3.1

ffmpeg -i input.mp4 -vcodec libx264 -profile:v main -level 3.1 -preset medium -crf 23 -x264-params ref=4 -acodec copy -movflags +faststart output.mp4

您可以自由更改值:

  • -crf 23:恒定质量设置。值越高=质量越差,文件越小。较低=质量较好,文件较大。Sane值为[18-24]
  • -preset medium:如果这对您来说太慢,请使用更快的预设。如果您有足够的耐心,请使用慢一点的方法。有关更多信息,请参见此处
  • -acodec copy:尝试将音轨复制到MP4容器中。如果无法复制,则必须将其重新编码为AAC / MP3 / AC3 ...例如-acodec libmp3lame

如果您的视频大于720p,请在输入后添加以下内容:

-vf "scale=-2:720:flags=lanczos"

这会将您的视频缩小到720p,并保持宽高比。使用的缩放算法将是lanczos,因为它比默认算法好得多。


3
您可以-vf "scale=-2:720:flags=lanczos"改用。-movflags +faststart如果通过逐步下载(例如在浏览器中)查看文件,则建议添加文件(如果没有,则该选项肯定不会受到损害)。
llogan

我使用的Zeranoe版本不支持x264-params。除了自己构建之外,还有没有办法解决这个问题?
理查德

我使用Zeranoe构建自己,并且-x264-params工作正常。您确定没有错过什么吗?该选项主要是为了避免出现较旧的解码器无法处理的超过4个参考帧的安全性。
2015年

-acodec libmp3lame对我不起作用。为了在我的iPad Mini上启用音频,我重新制作ffmpegnonfree变体并使用了libfdk_aac编码。
Vitaly S.

0

这是基本的操作,但在iPad 3上对我直接起作用

ffmpeg -i inputfile outputfile.m4v
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.