Android - 将录制的 H.264 Main Profile 视频转换为 H.264 Baseline Profile 的最佳解决方案

标签 android ffmpeg codec exoplayer vitamio

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

最佳答案

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 主编解码器,但同样,如果它一开始就不存在,那么性能可能是一个问题。

关于Android - 将录制的 H.264 Main Profile 视频转换为 H.264 Baseline Profile 的最佳解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35505521/

相关文章:

android - 在android studio中隐藏logcat左侧菜单

android - 如何在android中使用get方法在url中设置json数组?

android - 如何在 Android 微调器中设置数据?

python - 解码 7 位 GSM

java - DatePickerDialog 将选项限制为最长一周

python - Boto3 视频从 Heroku 上传 0 字节

image - ffmpeg 只显示一张图片?

ffmpeg - 有人可以解释 ffmpeg 中 rtsp 输入的 reorder_queue_size 选项吗?

audio - 允许频率高于 18khz 的 ffmpeg 格式

python-3.x - 如何跳过python3中的枚举编码异常?