基于FFmpeg的安卓直播播放器技术总结

本文总结了基于FFmpeg开发Android直播播放器的技术要点,包括项目目标、直播协议RTMP的优缺点、FFmpeg在媒体处理中的作用、JNI用于Java和C++交互,以及实现思路,涉及FFmpeg拉流、音频解码、Java层MediaCodec解码等关键步骤。
摘要由CSDN通过智能技术生成

项目目标

做一个能在VRGlass上观看直播的APP,输入一个rtmp直播链接,即可观看该链接的直播。

预备知识

直播协议总结

各种直播协议调研总结

演进中视频流媒体容器格式与传输协议

RTMP协议

  RTMP(Real-Time Messaging Protocol实时消息传送协议)的缩写,它是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的协议。这是一个标准的,未加密的实时消息传递协议

RTMP协议应用优势

  使用RTMP技术的流媒体系统有一个非常明显的特点:使用 Flash Player 作为播放器客户端,而Flash Player 现在已经安装在了全世界将近99%的PC上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的。用户只需要打开网页,就可以直接收看流媒体,十分方便。

RTMP协议有效的保证了媒体传输质量,使用户可以观看到高质量的多媒体。RTMP采用TCP协议作为其在传输层的协议,避免了多媒体数据在广域网传输过程中的丢包对质量造成的损失。此外RTMP协议传输的FLV封装格式支持的H.264视频编码方式可以在很低的码率下显示质量还不错的画面,非常适合网络带宽不足的情况下收看流媒体。

RTMP协议应用劣势

  当然RTMP协议也有一些局限,RTMP基于TCP协议,而TCP协议实时性不如UDP,也非常占用带宽。目前基于UDP的RTMFP协议能很好的解决这些问题,如Adobe的AMS和800li media server。

  RTMP协议的播放依赖于Flash Player,优势是直接将直播内容很容易就嵌入网页进行流媒体内容直播。那么它的一个局限也自然是这个协议的播放依赖于Flash Player。 如果没有这个播放媒介,这个协议就没有用武之地了,如苹果的MacOS电脑,苹果iOS手机和移动设备都是屏蔽Flash Player的。 目前谷歌公司也宣布安卓Android系统也不再继续支持Flash Player。

FFmpeg

  FFmpeg is a free and open-source software project consisting of a large suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the FFmpeg program itself, designed for command-line-based processing of video and audio files, and widely used for format transcoding, basic editing (trimming and concatenation), video scaling, video post-production effects, and standards compliance (SMPTE, ITU).[From Wiki]

  我们接下来会使用FFmpeg拉流,视音频分离,音频解码。因此也参考了雷神以下文章:

   [总结]FFMPEG视音频编解码零基础学习方法

   最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值