Android - 将录制的H.264主要配置文件视频转换为H.264基线配置文件的最佳解决方案

时间:2016-02-19 12:35:40

标签: android ffmpeg codec exoplayer vitamio

我发现MediaPlayer无法播放由H.264 Main Profile编码的视频,我尝试了ExoPlayerVitamio,但没有一个能解决我的问题。最后我发现最好的解决方案是将视频转换为H.264 Baseline ProfileFFmpeg差不多9MB,对我的项目来说太重了,所以我不喜欢用它来通过命令将视频转换为该配置文件。我的朋友建议在服务器端转换视频,但我们都知道它的性能不佳。我该怎么办?这个问题的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:6)

Android技术上仅支持H.264 Baseline,但许多较新的(通常是高端设备)也将播放H.264 Main Profile。例如,Nexus 4,5,6,7和10都可以。所以,你有几个选择......你要么只使用H.264 Main而不关心不支持它的旧设备,要么在服务器端进行转换。在设备上进行转换是个坏主意。如果它不支持H.264 Baseline,可能是出于性能原因而在设备上进行转换,然后解码就会破坏CPU。

值得注意的是,ExoPlayer将使用与MediaPlayer相同的设备编解码器,因为它只是MediaCodec的包装器。 Vitamio是ffmpeg的包装器,有可能提供一个带有自定义ffmpeg构建的H.264主编解码器,但同样,如果它首先不存在,性能可能是一个问题。