我使用avconv
和ffmpeg
转换视频文件,但经过此过程后,这些文件无法在移动浏览器上运行。它们只能在 VLC 或任何其他桌面浏览器(Linux 或 Windows)上运行。
我刚刚使用了 StackOverflow 中看到的所有转换代码!使用 H264 或 VP9 编解码器的 MP4 或 WebM 不起作用。
我使用的最后一个代码是这样的:
ffmpeg -i buck.webm -b 1500k -vcodec libx264 -profile:v baseline -g 30 "example.mp4"
在 PC 上运行良好,但在移动浏览器(Chrome 或 Firefox)上无法运行。
我该如何继续?
答案1
仔细看看这个针对Android开发人员的文档:
请注意,这仅提供基线设置,任何给定的移动设备可能提供对表中未列出的其他格式或文件类型的支持。
基于此,你似乎选择视频编解码器和此编解码器的设置是可以接受的,但你最好为声音的codec。这有望让各种设备都能成功播放。
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
选择此命令行的一些要点:
- 为了与各种设备实现最大程度的兼容性建议使用
-profile:v baseline -level 3.0
-movflags +faststart
如果您的文件要在线显示,可以添加此设置,它应该开始播放前已完全下载- 用于
-pix_fmt yuv420p
允许在更广泛的设备上播放 libfdk_aac
比原生 FFmpeg AAC 编码器提供更好的 AAC 声音(当该编码器仍被标记为“实验性”)
我已经提供了一个工作样本这里使用此命令行进行测试目的;我注意到此文件与我的 Google Pixel 3a(Android)完美兼容。