在 Linux 中转换的视频无法在移动浏览器中播放

Mar*_*iel 2 video android ffmpeg avconv

我使用avconvffmpeg来转换视频文件,但此过程后的这些文件在移动浏览器上不起作用。它们仅适用于 VLC 或任何其他桌面浏览器(Linux 或 Windows)。

我只是使用了 StackOverflow 中看到的所有转换代码!使用 H264 或 VP9 编解码器的 MP4 或 WebM 不起作用。

我使用的最后一个代码是这样的:

ffmpeg -i buck.webm -b 1500k -vcodec libx264 -profile:v baseline -g 30 "example.mp4"
Run Code Online (Sandbox Code Playgroud)

在 PC 上运行良好,但在移动浏览器(Chrome 或 Firefox)中不起作用。

我应该如何进行?

and*_*.46 6

为android开发人员仔细看看这个文档:

支持的媒体格式

请注意,这仅提供基线设置,任何给定的移动设备都可能支持表中未列出的其他格式或文件类型。

基于此,您选择的视频编解码器和此编解码器的设置似乎是可以接受的,但您最好在命令行中为音频编解码器指定 aac 。这有望允许各种设备成功播放。

FFmpeg 的建议命令行是:

ffmpeg -i input \
        -c:v libx264 -preset slow -crf 22 \
        -profile:v baseline -level 3.0 \
        -movflags +faststart -pix_fmt yuv420p \
        -c:a libfdk_aac -b:a 128k \
        output.mp4
Run Code Online (Sandbox Code Playgroud)

这种命令行选择的一些要点:

  1. 为了与各种设备的最大兼容性,建议使用-profile:v baseline -level 3.0
  2. -movflags +faststart如果您的文件要在线显示,请添加一个想法,使用此设置它应该完全下载之前开始播放
  3. 使用-pix_fmt yuv420p,以允许播放在更广范围的装置中
  4. libfdk_aac 提供比原生 FFmpeg AAC 编码器更好的 AAC 声音(当该编码器仍被标记为“实验性”时)

我在这里提供了一个工作示例用于使用此命令行进行测试。