基于NDK、C++、FFmpeg的android视频播放器开发实战
夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
夏曹俊

¥272.00
立即订阅

扫码下载「CSDN程序员学院APP」,1000+技术好课免费看

APP订阅课程,领取优惠,最少立减5元 ↓↓↓

订阅后:请点击此处观看视频课程

视频教程-基于NDK、C++、FFmpeg的android视频播放器开发实战-Android

学习有效期:永久观看

学习时长:1504分钟

学习计划:26天

难度:

口碑讲师带队学习,让你的问题不过夜」

讲师姓名:夏曹俊

CEO/董事长/总经理

讲师介绍:夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。

☛点击立即跟老师学习☚

「你将学到什么?」

课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并精确显示和控制播放进度: 1讲解如何编译Android平台的ffmpeg库,使其支持neon技术和硬解码,并测试性能 2使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优(GPU) 3代码支持硬解码(省电不耗cpu)和多线程解码(高性能每秒解码240帧1080p) 4支持网络流媒体(rtmp,rtsp,http)可直接拉流播放电视并支持rtsp摄像头访问 5课程将设计模式应用到实践 - 观察者,构建者,门面,代理,适配器,单件模式

「课程学习目录」

第1章:课程介绍及音视频基础知识
1.课程介绍
2.音视频基础知识Mpeg4封装格式音视频编码格式讲解
3.音视频解封装和解码原理分析
4.图形像素格式RGB和YUV格式分析
5.PCM音频采样率_通道_planar等格式参数分析
6.MP4标准和h264格式的NAL的GOP分析(下载课件是ppt)
第2章:AndroidStudio开发工具和开发环境准备
1.开发所用到的工具和sdk介绍
2.AndroidStudio开发工具安装使用讲解
3.Android SDK目录内容分析
4.AndroidNDK工具目录功能分析
5.安卓模拟器安装和第一个c++安卓程序编译运行
第3章:Android NDK交叉编译FFMpeg并添加测试AS项目
1.安卓NDK相关概念ABI、NEON、JNI和CMAKE分析
2.NDK中CPU的应用二进制界面ABI
3.ubuntu虚拟机及常用工具安装并配置samba共享目录
4.ffmpeg源码下载在android下的编译参数分析讲解
5.在ubuntu下交叉编译ffmpeg的android版本库
6.ffmpeg通用编译bash脚本编写、硬解码、neon、多线程解码性能对比
7.AndroidStudio项目配置权限、jni库路径、ABI和CMake参数和讲解
8.cmake配置(导入库、头文件、链接)分析
9.创建支持ffmpeg的AndroidStudio项目并调用其接口在界面显示库配置信息
10.JNI和c传递文件路径并设置app的读写权限
第4章:FFmpeg解封装(C++ NDK)
1.ffmpeg SDK软硬解码流程说明
2.ffmpeg音视频解封装用到的函数和结构体详解
3.avformat_open_input函数详解并示例打开mp4文件
4.AVFormatContext结构分析和清理代码示例
5.avformat_find_stream_info探测获取封装上下文的格式信息
6.AVStream和AVCodecParameters分析
7.通过遍历获取AVStream音视频流信息并打印参数
8.通过av_find_best_stream获取音视频流索引
9.av_read_frame读取帧数据函数分析和产生的空间问题分析
10.AVPacket结构解析空间申请-初始化-复制-引用计数函数讲解
11.av_seek_frame改变播放进度函数详解
12.av_read_frame和av_seek_frame代码示例并分析内存占用和清理情况
第5章:FFmpeg软硬解和多线程解码(C++ NDK)
1.AVCodecContext解码上下文初始化讲解和视频解码器打开的代码演示
2.打开音频解码器上下文
3.AVFrame格式解析和空间处理函数
4.avcodec_send_packet和avcodec_receive_frame函数讲解
5.音视频多线程解码代码演示
6.音视频解码性能测试neon单线程和八线程解码测试代码
7.ffmpeg调用MediaCodec实现硬解码代码演示
第6章:FFMpeg音频重采样和视频格式转换和显示
1.sws_getContext和sws_scale像素格式和尺寸转换函数讲解
2.sws_scale像素格式转换代码演示
3.音频重采样SwrContext格式和swr_convert相关函数详解
4.swr_init音频重采样上下文初始化和swr_convert音频重采样代码示例
5.分析GLSurfaceView和NDK接口直接显示RGB视频数据相关函数
6.使用NDK通过GLSurfaceView双缓冲空间复制完成视频的播放
7.安卓视频播放窗口去掉标题栏、全屏、横屏
第7章:OpenSLES音频播放
1.OpenSLES播放音频步骤和接口讲解
2.创建OpenSLES音频播放测试项目并完成引擎初始化
3.完成OpenSLES混音器CreateOutputMix初始化
4.配置OpenSL的PCM音频输入格式
5.读取pcm音频文件并使用OpenSL播放
第8章:EGL和OpenGLES Shader显示YUV视频
1.egl和opengl_shader_glsl讲解
2.testopengles_shader项目配置和创建_完成java部分代码
3.使用NDKC++完成EGL、display、surface、contex配置和初始化
4.Opengl ES Shader顶点坐标和材质坐标分析
5.顶点着色器代码glsl代码编写
6.yuv420p片元着色器glsl编写
7.shader初始化完成并编译顶点和片元着色器代码
8.program渲染程序初始化给shader传递顶点和材质顶点数据
9.opengl的yuv纹理的创建和初始化
10.OpenglES纹理数据修改和显示
11.通过OpenglES纹理修改完成yuv文件的播放显示
第9章:视频播放器项目实战一 需求和设计模式
1.视频播放器项目设计说明和UML类图知识讲解
2.模块分解和用到的7个设计模式讲解
3.适配器、建造者、代理模式讲解
4.门面模式&生产者消费者模式
5.Observer观察者模式讲解和应用
6.解码显示帧数据处理顺序图和开发计划讲解
第10章:视频播放器项目实战二 音视频解码解封装
1.项目创建权限ABI和CMake相关库和头文件配置
2.创建安卓流媒体播放器XPlay项目并配置添加了解封装模块代码及其依赖日志类
3.FFDemux的Open实现打开媒体文件
4.FFdemux的Read读取帧数据接口编写
5.完成XThread线程类IDemux继承后在线程中读取帧数据
6.添加了XSleep完成XThread线程函数的停止和超时判断
7.观察者Observer模式的代码实现并使用IDemux进行测试
8.IDecode和FFDecode模块代码创建
9.FFDecode的Open打开解码器接口编写和Observer基类添加
10.添加IDemux的GetVPara获取视频XParamter参数接口用IDecode的Open测试
11.封装FFDecode解码的Send和Recv接口
12.读取媒体帧数据获取类型信息(音频、视频)存入XData
13.完成音视频解码和并重构解码器加入观察者模式
14.加入生产者消费者模式控制音视频缓冲
第11章:视频播放器项目实战三 音视频播放
1.IVideoView显示模块架构讲解和代码创建
2.IEGL类初始化封装java部分添加XPlay窗口类
3.XShader基于yuv420p的初始化Init代码完成并测试
4.XTexture初始化并完成GLVideoView的调用
5.GLVideoView完成使用shader显示视频
6.完成音频重采样IResample模块初始化代码
7.完成音频重采样IResample模块的处理功能
8.完成了IAudioPlay和SLAudioPlay的音频播放环境初始化
9.IAudioPlay的Update将音频压入缓冲队列并测试
10.SLAudioPlay音频播放完成并测试对MP4文件音视频播放
11.完成硬解码并完成NV21和NV12格式的shader显示编写
12.解决android8.0下opengles不能播放的问题和音频播放的回音问题
第12章:频播放器项目实战四 完成架构解决同步和seek
1.完成facade模式的IPlayer并实现Open接口
2.完成Iplayer开始播放和窗口初始化接口
3.完成Builder模式的IPlayerBuilder构建IPlayer对象
4.完成IPlayerProxy代理模式并进行测试架构搭建完成
5.统一换算pts为毫秒使用IPlayer完成音视频同步播放
6.IDemux&FFdemux;线程安全和Close清理函数编写
7.FFdecode和FFResample线程安全处理和Close清理函数编写
8.SLAudioPlay的线程安全处理和Close清理函数编写
9.XEGL的线程安全处理和Close清理函数编写
10.XShader线程安全处理和Close清理函数编写
11.XTexture和GLVideoView的线程安全和清理函数编写
12.IPlayer完成Close清理函数编写并完成多次打开视频文件的测试
13.添加打开视频按钮和进度滑动条并响应打开事件
14.添加视频打开路径和香港卫视rtmp打开路径的界面
15.完成通过界面多次打开视频文件,修正了多次打开显示出现的bug
16.在835cpu的手机中测试并修正了音频播放Close的bug
17.完成了播放进度的显示并修正了硬解码参数传递错误
18.滑动条拖动Seek视频开发策略详细分析
19.完成了IDemux的Seek和界面SeekBar的事件响应
20.添加了视频播放的暂停和恢复
21.修改了视频播放到结尾再次打开会锁死的bug
22.通过手动解码帧数据完成了IPlayer控制视频播放进度的功能

7项超值权益,保障学习质量」

  • 大咖讲解

技术专家系统讲解传授编程思路与实战。

  • 答疑服务

专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。

  • 课程资料+课件

超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)

  • 常用开发实战

企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。

  • 大牛技术大会视频

2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。

  • APP+PC随时随地学习

满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。

「什么样的技术人适合学习?」

  • 想进入互联网技术行业,但是面对多门编程语言不知如何选择,0基础的你
  • 掌握开发、编程技术单一、冷门,迫切希望能够转型的你
  • 想进入大厂,但是编程经验不够丰富,没有竞争力,程序员找工作难。

「悉心打造精品好课,26天学到大牛3年项目经验」

【完善的技术体系】

技术成长循序渐进,帮助用户轻松掌握

掌握Android知识,扎实编码能力

【清晰的课程脉络】

浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。

【仿佛在大厂实习般的课程设计】

课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。

「你可以收获什么?」

1 课程由浅入深,原理讲解+代码实操演示,并提供全部课程源码2 讲解如何编译Android平台的ffmpeg库,使其支持neon和硬解码,并测试性能3 使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优

订阅课程 开始学习

视频教程-基于NDK、C++、FFmpeg的android视频播放器开发实战-Android相关推荐

  1. 基于NDK、C++、FFmpeg的android视频播放器开发实战-夏曹俊-专题视频课程

    基于NDK.C++.FFmpeg的android视频播放器开发实战-1796人已学习 课程介绍         课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和ht ...

  2. 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...

    立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...

  3. 基于Qt、FFMpeg的音视频播放器设计一

    前言:整个项目的源代码 https://download.csdn.net/download/hfuu1504011020/10672140 最近刚完成基于Qt.FFMpeg的音视频播放器相关C++程 ...

  4. 记一次Android视频播放器开发

    播放器入门 看小电影多年 当年甚至还是用QTplayer:而李开复,已经从技术员,技术总监,HR,出书,风投,隐退的华丽转身 而我们还只是个"程序员" 这么多年过去了,好像还真没认 ...

  5. Android视频播放器开发—— 探究MediaPlayer

    概述 之前在公司都是做金融和博彩相关的app,很少接触到视频播放类的应用开发,趁最近比较闲,想逐步学习相关的知识,给自己增加点视频类app开发的经验,也希望读者能够从我个人的学习当中得到一些启发. 一 ...

  6. 基于Qt、FFMpeg的音视频播放器设计四(视频播放进度控制)

    上面介绍了如何使用opengl绘制视频和Qt的界面设计,也比较简单,现在我们看下如何控制视频播放及进度的控制,内容主要分为以下几个部分 1.创建解码线程控制播放速度 2.通过Qt打开外部视频 3.视频 ...

  7. 学习笔记(01):基于qt和ffmpeg视频播放器开发实战-avformat_open_input函数详解

    立即学习:https://edu.csdn.net/course/play/3300/157129?utm_source=blogtoedu

  8. android视频播放器sdk对比,Android项目之android SDK视频播放与vitamio视频播放

    尊重原创,转载请注明:From zsml2016(http://blog.csdn.net/qq_29269233)Power byzsml2016侵权必究! 前言: 今天我想给大家分享Android ...

  9. android视频播放器设置圆角,Android设置上圆角和下圆角

    Android设置上圆角和下圆角 圆角背景多用于卡片等布局 1.正常的圆角 代码如下: android:shape="rectangle"> android:width=&q ...

最新文章

  1. javascript基础语法——表达式
  2. 成功解决ModuleNotFoundError: No module named ‘torch._C‘
  3. php画中画,画中画功能 怎么将两个视频叠加播放,制作成画中画效果
  4. James Shore:敏捷的衰落
  5. POJ3277(矩形切割)
  6. 操作系统基础:进程知识笔记(三)
  7. php去除所有标点符号的方法,php如何去除标点符号
  8. python 如何边改代码边调试_Python 代码调试神器:PySnooper
  9. python如何读取数据时出现错误_连接数据库时出现的错误,怎样解决??
  10. 小操作_js调出outlook
  11. PHP 判断字符的编码 并输出想要的编码格式字符 (转)
  12. 徐松亮算法教学-基于C语言的数独(九宫格)多种终盘生成方法(包含矩阵镜像旋转转置等相关算法)
  13. 平衡车gazebo仿真
  14. 同事说关键字查询用Mysql,我上去就是一个高压锅,用ElasticSearch不香吗?
  15. 对象base64转码_Base64编码转换
  16. 手机便签软件哪个好用?哪种手机便签软件好使用
  17. 外星人笔记本没有修复计算机,外星人笔记本的使用小技巧
  18. greenplum 添加mirror
  19. 解决不同版本jar包引入问题,修改jar包包名
  20. 多模态机器学习基础、应用及预训练模型介绍

热门文章

  1. transform的高级用法
  2. 什么是GIS!(1)
  3. 27个Asp.Net经常会用到的函数集
  4. 基于JSP+Servlet+MySQL+Css+Ajax的在线网上电子图书商城
  5. zephyr笔记 2.2.2 定时器
  6. python月球地球质量计算_科学网—天文计算PyEphem指南 - 张金龙的博文
  7. Android流式布局的实现原理
  8. java 对象和类 教程_Java从入门到放弃教程三 --java的对象和类
  9. Linux挂载(mount)后没有读写权限
  10. Seata-XA模式 原理