设备支持哪些功能

设备支持哪些功能

我想给我的女朋友发送几个视频,但我要确保它们可以在她的手机上播放。我想在我的 Arch Linux 机器上执行编码任务,因为我的 PC 是低端的。我只能使用 ffmpeg 或 mencoder 或其他 CLI 工具。她可以播放 YouTube 视频,但我不想将此类视频上传到 YouTube。是否有针对特定手机的预设?当她单击视频直接链接时,它会直接在手机上播放还是我应该将其嵌入 html5/flash 播放器中,就像在 YouTube 上一样?

答案1

设备支持哪些功能

根据Xperia U 白皮书该设备可以解码 MP4 容器中带有 AAC 音频的 H.264、High profile、3.2 级别视频。

示例ffmpeg命令

ffmpeg -i input -codec:v libx264 -crf 23 -preset medium -profile high -level 3.2 \
-pix_fmt yuv420p -movflags +faststart -codec:a aac -strict experimental out.mp4

这些选项的作用

  • -codec:v libx264– 选择视频编码器libx264对 H.264 视频进行编码。

  • -crf 23– 输出视频质量级别。23是默认值,值越低,质量越高。

  • -preset medium– 编码速度与压缩效率的权衡。默认值为medium

  • -profile high– 将 H.264 视频配置文件设置为高。

  • -level 3.2– 将 H.264 视频级别设置为 3.2。

  • -pix_fmt yuv420pffmpeg尝试最小化或避免色度二次采样(取决于输入、编码器、ffmpeg版本等)。从技术上讲,这是一件好事,但可能会导致非基于 FFmpeg 的播放器无法处理的输出。这确保了兼容的色度二次采样方案。

  • -movflags +faststart– 将“moov atom”重新定位到文件的开头,以便在渐进式下载的情况下(例如通过浏览器观看),可以在文件完全下载之前开始播放。

  • -codec:a aac -strict experimental– 使用实验性的原生 FFmpeg AAC 编码器对 AAC 音频进行编码。它不是最差的 AAC 编码器,但如果声音不好,请使用更高的比特率-b:a(默认为 128k)。

补充笔记

  • 使用最新版本的ffmpeg。旧版本在使用时不会强制使用正确的参考帧数-level(已修复错误 #3307),但由于您使用的是 Arch Linux,所以不必担心这一点。

  • Arch Linux Extra 存储库中的 ffmpeg 包仅支持本机 FFmpeg AAC 编码器。使用 ABS 重新编译--enable-libfdk-aac --enable-nonfree(使用 libfdk-aac 包作为依赖项)或使用 AUR 中的 ffmpeg-git 包来获得使用 libfdk_aac 编码的支持,这是 FFmpeg 支持的最佳 AAC 编码器。如果您想尝试此操作,建议使用 ABS 包而不是 AUR 包。

  • 如果输入视频和/或音频已经兼容,那么您可以简单地流复制它而不是重新编码,例如使用-codec:a copy

  • 移动设备可能还有其他我不知道的限制,所以你必须自己试验。我也不确定该设备是否能使用简单的视频链接,但这很容易测试。

  • 查看FFmpeg H.264 编码指南FFmpeg AAC 编码指南了解更多信息。

相关内容