什么 ffmpeg 命令可以为 iPad/iPhone/iPod 转换视频?

Ric*_*ard 25 video iphone ffmpeg ipad

我目前正在使用一个批处理文件(除其他外)运行以下 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
Run Code Online (Sandbox Code Playgroud)

不是很有帮助。

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

  1. 不工作(无法识别命令行选项)- 常见!
  2. 导致文件比原始文件大 - 很常见!
  3. 扭曲图片,尤其是在转换了意外的视频大小时(例如,非宽屏 PAL)
  4. 删除音频
  5. 导致 iPhone、iPod 或 iPad 无法播放的视频

是否有一个体面的通用 ffmepg 命令行,它可以让任何视频在所有 Apple 设备上愉快地运行,并减少文件大小?

如果它也会缩小(但不会扭曲)超过 720p 的任何视频,则奖励积分。

Ely*_*Ely 35

这是我的看法。我将以 iPhone 4 或更新版本(包括所有 iPad)为目标:H.264 Main profile, level 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
Run Code Online (Sandbox Code Playgroud)

您可以自由更改的值:

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

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

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

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

  • 您可以改用`-vf "scale=-2:720:flags=lanczos"`。如果文件将通过渐进式下载(例如在浏览器中)查看(如果不是,该选项肯定不会受到伤害),则建议添加 `-movflags +faststart`。 (3认同)