VLC和WebRTC等开源库关于硬解软解的策略

简介: 一、移动端OS角度硬解能力支持情况Android4.1.2以前:    不支持4.1.2-5.0     Java侧MediaCodec5.0以上    Java侧MediaCodec,C侧nativeMediaCodecIOS8.
一、移动端OS角度硬解能力支持情况
Android
4.1.2以前:    不支持
4.1.2-5.0     Java侧MediaCodec
5.0以上    Java侧MediaCodec,C侧nativeMediaCodec

IOS
8.0以前    不支持硬编硬解,仅软编软解
8.0及以后    支持硬编硬解VideoToolboxDecoder

二、开源库角度
WebRTC
检测是否支持硬解,如果支持,使用OpenGL创建SurfaceView,设置给硬解

VLC
4.3及以上使用MediaCodec硬解
[4.1-4.3) 检测是否支持硬解


三、自研播放器&采集发布硬编解策略选择

【方案一】


【方案二】:仅判断操作系统,OS<5.0使用ffmpeg软解;OS>5.0使用ndkMediaCodec硬解码

 

【方案三】:完美方案:先判断操作系统版本:

小于4.1.2使用ffmpeg软解;

[4.1.2,4.3)优先使用javamediaCodec硬解,同时检测硬解效果是否达标,如果不达标切换为软解;

[4.3,5.0)使用javamediaCodec硬解;

[5.0,+),使用C层的ndkMediaCodec硬解;

因为4.3版本以后,mediaCodec硬解能力作为平台兼容性测试CTS(compatility test suit)必备基础,所以4.3及以上无需再检测硬解是否达标。

 

结论:鉴于当前软解效果也不错,因此我们使用方案二简单处理,后期看效果再判断是否启动方案三优化。


目录
相关文章
|
6月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
629 4
|
6月前
|
Web App开发 编解码 安全
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
2891 1
|
11月前
|
Web App开发 前端开发
ZLMediaKit解决webrtc前端replaceTrack断流问题
ZLMediaKit解决webrtc前端replaceTrack断流问题
|
2月前
|
编解码 Dart 网络协议
Flutter如何玩转超低延迟RTSP/RTMP播放,跨平台视频流体验大升级,让你的应用秒变直播神器!
【9月更文挑战第3天】Flutter作为谷歌推出的跨平台移动UI框架,凭借高性能和丰富的生态系统广受好评。本文详细介绍如何在Flutter应用中实现低延迟的跨平台RTSP/RTMP播放,并提供具体示例代码。首先介绍了如何使用`flutter_vlc_player`播放RTSP流,然后讨论了优化视频播放以降低延迟的方法,包括调整播放器配置等。通过选用合适的播放器插件并进行优化,Flutter可在视频流播放领域提供卓越的用户体验。随着生态的发展,Flutter有望成为视频流媒体开发的首选框架。
306 6
|
3月前
|
安全 Linux 图形学
Linux平台Unity下RTMP|RTSP低延迟播放器技术实现
本文介绍了在国产操作系统及Linux平台上,利用Unity实现RTMP/RTSP直播播放的方法。通过设置原生播放模块的回调函数,可将解码后的YUV数据传递给Unity进行渲染,实现低延迟播放。此外,还提供了播放器启动、参数配置及停止的相关代码示例,并概述了如何在Unity中更新纹理以显示视频帧。随着国产操作系统的发展,此类跨平台直播解决方案的需求日益增长,为开发者提供了灵活高效的开发方式。
|
编解码 开发工具 Android开发
Flutter下实现低延迟的跨平台RTSP/RTMP播放
为什么要用Flutter? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
470 0
|
编解码 缓存 Linux
对话音视频牛哥:如何设计功能齐全的跨平台低延迟RTMP播放器
对话音视频牛哥:如何设计功能齐全的跨平台低延迟RTMP播放器
158 0
|
Web App开发 编解码 网络性能优化
《WebRTC源码深入剖析》总结
我精心打造的新课 **《WebRTC源码深入剖析》** 终于更新完了!!!2021年年初,在完成了我的处女作《WebRTC音视频实时互动技术——原理、实战与源码分析》一书之后,我终于下定决心,出一部WebRTC源码分析的课程了...
《WebRTC源码深入剖析》总结
|
编解码 网络协议 编译器
QT软件开发: 基于FFMPGE设计的流媒体播放器(rtmp/rtsp)
QT软件开发: 基于FFMPGE设计的流媒体播放器(rtmp/rtsp)
1014 0
QT软件开发: 基于FFMPGE设计的流媒体播放器(rtmp/rtsp)
|
编解码 Windows 内存技术
QT应用编程: 基于FFMPEG设计的流媒体播放器(播放rtmp视频流)
QT应用编程: 基于FFMPEG设计的流媒体播放器(播放rtmp视频流)
737 0
QT应用编程: 基于FFMPEG设计的流媒体播放器(播放rtmp视频流)