我发现MediaPlayer
不能播放由H.264 Main Profile
编码的视频,我试图ExoPlayer
和Vitamio
但它们都没有解决我的问题。最后我发现最好的解决方案是将视频转换为H.264 Baseline Profile
。 FFmpeg
差不多是9MB,对我的项目来说太重了,所以我不喜欢用它通过命令将视频转换成该配置文件。我的朋友建议在服务器端转换视频,但我们都知道它的性能不佳。我该怎么办?这个问题的最佳解决方案是什么?Android的 - 最好的解决方案转换记录标准H.264 Main Profile视频,H.264 Baseline Profile的
2
A
回答
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 Main编解码器,但是如果它不在首位,性能可能是一个问题。
相关问题
- 1. H.264视频编码
- 2. Flowplayer H.264视频编码
- 3. H.264到MPEG2转换
- 4. 将H.264转换为H.263的Android手机
- 5. Firefox中的H.264
- 6. 十进制到H.264的base64转换
- 7. H.264视频格式(YUV420p vs YUV420sp)
- 8. 将Raspivid的Netcat H.264视频转换为OpenCV
- 9. h.264 udp流解码
- 10. 使用FFmpeg编码H.264 CBR视频
- 11. FFMPEG H.264到JPEG实时视频
- 12. Android H.263或H.264文件?
- 13. h.264字节流解析
- 14. h.264解析训练
- 15. 将VP8 RTP视频流转换为H.264
- 16. H.264视频帧数据转换为UIImage
- 17. Openmax on Android for H.264解码器?
- 18. MP4 H.264中的Flash
- 19. 源代码整合了H.263,H.264,MPEG4视频会议
- 20. HTML的H.264/FLV最佳实践
- 21. 用于解码H.264 RTSP流的库
- 22. 哪一个是最好的Flash H.264 HTTP Streaming方法?
- 23. H.264解码器配置记录的格式取自.mp4
- 24. H.264变换用的FFmpeg(从RTP流)
- 25. 流H.264 + AAC,以在GStreamer
- 26. Android上的WebRTC H.264支持
- 27. 通过从Live555到VLC的RTP流式传输H.264视频
- 28. MPMoviePlayerController H.264和多音频流
- 29. 在Linux上自动转码H.264视频
- 30. Android:视频编码H.264和设置帧率不工作
我们已经在服务器端转换视频,但我们怀疑它的性能。我们认为像Instagram这样的应用以另一种方式处理这个问题。我们正在努力解决这个问题近两个月!如果你对这个问题及其解决方案有更多的了解,或者你亲身经历过这个问题,请与我们社区分享,包括我。 – Alireza
支持大多数Android设备需要提供H.264 Baseline。从主或高转换需要解码和编码以去除B帧以达到基线。在设备上这样做是不实际的,因为解码可能首先不被支持。对于拥有这些资源的公司,我怀疑他们会缓存多种格式和比特率的服务器端,然后根据设备支持的功能和网络质量,通过分段的MP4(或类似的)动态地提供它们。 – Kaleb